Network Address Translation (NAT)
什么是NAT
NAT(Network Address Translation)
私有IPv4地址
私有地址空间
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
为什么需要NAT
IPv4地址紧缺
NAT术语
内部本地:转换之前内部源地址的名字
外部本地:转换之前目标主机的名字
内部全局:转换之后内部主机的名字
外部全局:转换之后外部主机的名字
NAT可以私网转公网,也可以私网转私网
NAT三种类型
1.静态NAT
将内部本地地址与内部全局地址进行一对一的明确转换。这种方法主要用在内部网络中有对外提供服务的服务器,如WEB、MAIL服务器时。该方法的缺点是需要独占宝贵的合法IP地址。即,如果某个合法IP地址已经被NAT静态地址转换定义,即使该地址当前没有被使用,也不能被用作其它的地址转换。
端口映射
http -> 80/8080
https -> 443
配置静态NAT转换
Router(config)#ip nat inside source static local-ip global-ip
在内部本地地址和内部全局地址之间建立静态转换
Router(config)#ip nat inside
将接口指定为inside接口
Router(config-if)#ip nat outside
将接口指定为outside接口
Router#show ip nat translations
查看转换表
2.动态NAT
动态地址转换也是将内部本地地址与内部全局地址进行一对一的转换。但是,是从内部全局地址池中动态地选择一个未使用的地址对内部本地地址进行转换。该地址是由未被使用的地址组成的地址池中在定义时排在最前面的一个。当数据传输完毕后,路由器将把使用完的内部全局地址放回到地址池中,以供其它内部本地地址进行转换。但是在该地址被使用时,不能用该地址再进行一次转换。
配置动态NAT转换
Router(config)#ip nat pool name start-ip end-ip netmask netmask|prefix-length prefix-length
定义一个地址池
Router(config)#access-list access-list-number permit source [source-wildcard]
使用ACL匹配需要配转换的网段
Router(config)#ip nat inside source list access-list-number pool name
建立动态转换源和ACL匹配网段的关联
Router#show ip nat translations
查看转换表
配好后用show不会立即看到,一般触发后才会看到
3.端口复用
复用地址转换也成为端口地址转换(Port Address Translation,PAT),首先是一种动态地址转换。路由器将通过记录地址、应用程序端口等唯一标识一个转换。通过这种转换,可以使多个内部本地地址同时与同一个内部全局地址进行转换并对外部网络进行访问。对于只申请到少量IP地址甚至只有一个合法IP地址,却经常有很多用户同时要求上网的情况,这种转换方式非常有用。
理想状态下,一个单一的IP地址可以使用的端口数为4000个。
配置PAT地址转换(Overloading)
Router(config)#access-list access-list-number permit source source-wildcard
定义一个标准ACL,该ACL匹配需要转换的内部地址
Router(config)#ip nat inside source list access-list-number interface interface overload
创建PAT,调用上一步创建的ACL
Router#show ip nat translation
查看转换表
单出口多线路
方案1
按照内部流量源选择出口线路
PBR策略路由 你
方案2
按照流量目的IP选择出口线路
联通走联通,电信走电信