# 1.掌握NAT技术
```bash
NAT网络地址转换(Network Address Translation)是一种在网络设备(如路由器或防火墙)上部署的技术,用于将私有地址转换为公有地址,从而实现内部网络与外部网络的通信。NAT技术不仅缓解了IPv4地址短缺的问题,还提高了网络的安全性。
```
# 2.静态NATs




```bash
静态NAT是一种一对一的地址映射方式,每个私有地址都有一个固定的公有地址对应。
静态NAT的特点如下:
固定映射:每个私有地址与一个固定的公有地址对应,不会发生变化。
双向访问:支持内外网的双向访问,外部网络可以通过公有地址访问内部网络的私有地址
地址浪费:由于每个私有地址都需要一个公有地址,即使内网主机长时间离线或不发送数据,对应的公有地址也会被占用
```
## 2.1主要配置命令
```bash
1 配置静态地址转换。
ip nat inside source static <内部本地IP地址><内部全局IP地址>
2 指定NAT 的内部接口
ip nat inside
3 指定NAT的外部接口
ip nat outside
```
```bash
1 按照拓扑图给计算机和服务器配置IP
2 Router0配置
给各接口配置IP
Router(config)#int g0/0
Router(config-if)#ip add 222.0.2.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int s0/0/0
Router(config-if)#ip add 222.0.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000 //配置时钟速率
Router(config-if)#exit
Router(config)#ip route 192.168.1.0 255.255.255.0 222.0.1.1 //所有目的地址不在本地网络中的数据包都要通过222.0.1.1 这个网关发送到外部网络
Router1配置
给各接口配置IP
Router(config)#int s0/0/0
Router(config-if)#ip add 222.0.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int g0/0
Router(config-if)#ip add 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 222.0.2.0 255.255.255.0 222.0.1.2 //所有目的地址不在本地网络中的数据包都要通过222.0.1.2 这个网关发送到外部网络
Router(config)#ip nat inside source static 192.168.1.2 222.0.1.3 //配置静态地址转换
定义内外部接口
Router(config)#int s0/0/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#int g0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#end
Router#show ip nat translations //查看当前设备上NAT(网络地址转换)的转换表信息
```
# 3.动态NAT




```bash
动态NAT通过创建地址池来避免地址浪费。当内部主机访问外部网络时,从地址池中临时分配一个未使用的公有地址,并在不再使用时回收该地址。
动态NAT的特点如下:
地址池:所有可用的公有地址组成地址池,动态分配给内部主机
临时映射:当内部主机访问外部网络时,临时分配一个公有地址,并在不再使用时回收
单向访问:动态NAT无法实现内外网的双向访问,因为映射表是动态变化的
```
## 3.1主要配置命令
```bash
1 创建地址池。
ip nat pool<地址池名称><起始IP地址><结束IP地址> netmask<子网掩码>
2 配置动态地址转换。
ip nat inside source list <访问控制列表>pool<地址池名称>
```
```bash
1 按照拓扑图给计算机和服务器配置IP
2 Router0配置:
给各接口配置IP
Router(config)#int g0/0
Router(config-if)#ip add 192.168.1.1 255.255.255.0
Router(config-if)#n shutdown
Router(config-if)#exit
Router(config)#int g0/1
Router(config-if)#ip add 192.168.2.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int s0/0/0
Router(config-if)#ip add 200.1.1.1 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.2 //所有目的地址不在本地网络中的数据包都要通过200.1.1.2这个网关发送到外部网络。
定义内部接口和外部接口
Router(config)#int g0/0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int g0/1
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#int s0/0/0
Router(config-if)#ip nat outside
Router(config-if)#exit
Router(config)#ip nat pool to_internet 200.1.1.1 200.1.1.1 netmask 255.255.255.252 //创建地址池
Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 //创建了编号为1的标准ACL,允许源IP地址属于 192.168.1.0/24 网段的流量通过
Router(config)#access-list 1 permit 192.168.2.0 0.0.0.255 //创建了编号为1的标准ACL,允许源IP地址属于 192.168.2.0/24 网段的流量通过
Router(config)#ip nat inside source list 1 pool to_internet overload //实现指定内部网段的设备借助地址池中的公网IP访问外部网络
Router(config)#end
Router#show ip nat translations //查看当前设备上NAT(网络地址转换)的转换表信息
Router1配置:
给各接口配置IP
Router(config)#int s0/0/0
Router(config-if)#ip add 200.1.1.2 255.255.255.252
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#int g0/0
Router(config-if)#ip add 210.1.1.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit