出现背景:公有IP不够用,私有IP出现,公网上的路由器不给私有ip做路由,缺少一种“桥梁”将两者联系起来,这时NAT出现了
1.配置ip及重命名(太简单不演示)
2.配置路由
1)R2配置:
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip add 100.1.1.2 29
[R2-GigabitEthernet0/0/0]int g 0/0/1
[R2-GigabitEthernet0/0/1]ip add 200.1.1.254 24
2)R3配置
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 100.1.1.1 29
[R3-GigabitEthernet0/0/1]q
[R3]ip route-s 0.0.0.0 0 100.1.1.2
此时192.168.1.0网段设备均访问不了server1(数据包能过去回不来)
2.1配置静态NAT
2.11静态NAT特点
一个私网ip对应一个公网ip,通过NAT会话表进行地址转换,在出口设备的出口端进行配置;
2.12 配置静态NAT
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]nat static global 100.1.1.3 inside 192.168.1.1
#这里之所以是100.1.1.3是由于我们选择的是100.1.1.0 /29网段,可用ip地址只有100.1.1.1-100.1.1.6这六个地址,其中1.1是边界路由的出口端ip,1.2是公网路由的入网ip,只能选择从1.3开始用了
此时PC就可以访问Server1
2.13抓包验证
在R2的g0/0/0端口上抓包,发现源ip地址已经由192.168.1.1转换为100.1.1.3了
2.14静态NAT小结
静态NAT虽然完成了从私网ip到公网ip的连接,但是却极其浪费公网ip,不满足公司的实际上网需求,由此,动态NAT出现。
2.2动态NAT
2.21 动态NAT特点
动态NAT可以将多个私网ip通过轮询方式共用多个ip,但同一时间一个公有ip只能允许一个私有ip使用
2.22 配置动态NAT
做之前记得将静态NAT undo掉!
1)配置公网ip地址池
[R3-GigabitEthernet0/0/1]undo nat static glo 100.1.1.3 in 192.168.1.1
[R3-GigabitEthernet0/0/1]q
[R3]nat address-group 1 100.1.1.3 100.1.1.5
2)配置ACL(Acess Control List)
[R3]acl 2000
[R3-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255 #配置允许做NAT的网段即想上网的都加进来
[R3-acl-basic-2000]q
3)在出口设备的出口端口配置NAT调用ACL
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
#pat就是port address translation 端口地址转换
2.23 抓包验证
由图可知数据包由出口设备出口端口向外发出时,源私有ip转换成了公有ip,回包时公有目的ip转换成了私有ip,而且可以看到存在丢包现象 。
2.24 动态NAT小结
动态NAT在静态NAT的基础上进一步节省了公网ip(静态NAT也节省了,但不多),通过轮流使用多个公网ip实现多个私网地址对应多个公网地址(虚假的多对1),但是动态NAT却无法实现并发,2.23抓包也表明动态NAT是以一种很“笨拙”的方式实现用户上网,随着互联网的发展,用户对上网的需求不断上升,一台主机需要开很多端口用不同app进行上网,每个端口都伴随着请求公网ip的动作,用动态NAT的话一台主机需要“抢占”多个公网ip,而动态NAT的轮询方式无法响应庞大的端口请求,出现大量丢包情况,由此,NAPT出现了。
2.3 NAPT(Network Address Port Translation)
2.31 NAPT特点
NAPT实现了真正的多个私有ip对应1个公有ip,通过在出口设备的出口端口设置端口转换,将原本同一个端口发出的数据转换拆分出多份数据,而用到的公有ip却始终如一,有多少可用端口号就可以同时请求使用多少次一个公有地址,大大节省了公网ip,是中大型企业的不二之选。
2.32 配置NAPT
跟动态NAT只有一步之差,即最后一步
[R3-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
没错,就少了“no-pat”关键词
2.33 抓包验证
[R3]dis nat session all
NAT Session Table Information:
Protocol : TCP(6)
SrcAddr Port Vpn : 192.168.1.10 264
DestAddr Port Vpn : 200.1.1.1 20480
NAT-Info
New SrcAddr : 100.1.1.5
New SrcPort : 10240
New DestAddr : ----
New DestPort : ----
Total : 1
由图可知经过NAPT转换后,源ip和源端口在经过出口设备的出口端口时,源ip和源端口发生了转换,在回包时,目的ip和目的端口发生了转换。
2.34 NAPT小结
在中大型企业中,由于大量员工数量产生了大量的上网需求,NAPT无疑是最优质的选择,一个应用平均需要端口数按5来计数,一个用户同时间平均需要使用的应用数按20计数,则每个用户平均需要100个端口同时使用,那么就需要100个公网ip来支持上网,NAPT通过将数据包中端口号字段提炼使用,将一个公网ip拆分成2^32个使用(端口号占16bit,当然,0-1024端口一般不用来做NAPT转换),大大节省了公网ip,但现实往往更“现实”,大多企业都达不到中大型企业的员工规模,也没有那么多的上网需要,这时,easy NAT出现了。
2.4 Easy NAT
2.41 Easy NAT特点
多个私有ip对应一个公网ip,最节省公网ip的方案,小型企业最有性价比的选择,将出口设备的出口端口ip作为公网ip进行使用,不得不说,创造Easy NAT的家伙是个人才。
2.42 配置Easy NAT
记得先将NAPT在g0/0/1和系统视图下的公网ip地址池的配置undo掉!
[R3]acl 2000
[R3-acl-basic-2000]rule 10 permit source 192.168.1.0 0.0.0.255
[R3-acl-basic-2000]q
[R3-GigabitEthernet0/0/1]nat outbound 2000
简单吗?知道为啥叫”Easy“NAT了吧。
2.43 抓包验证
[R3]dis nat session all
NAT Session Table Information:
Protocol : ICMP(1)
SrcAddr Vpn : 192.168.1.1
DestAddr Vpn : 200.1.1.1
Type Code IcmpId : 0 8 41837
NAT-Info
New SrcAddr : 100.1.1.1
New DestAddr : ----
New IcmpId : 10280
Protocol : ICMP(1)
SrcAddr Vpn : 192.168.1.1
DestAddr Vpn : 200.1.1.1
Type Code IcmpId : 0 8 41841
NAT-Info
New SrcAddr : 100.1.1.1
New DestAddr : ----
New IcmpId : 10284
Protocol : ICMP(1)
SrcAddr Vpn : 192.168.1.1
DestAddr Vpn : 200.1.1.1
Type Code IcmpId : 0 8 41840
由图可以看出,数据包在出口设备的出口端口上源ip和源端口发生转换,回包时目的ip和目的端口发送转换
2.44 Easy NAT小结
Easy NAT解决了小公司用不到那么多公网ip导致公网ip冗余的问题,节省了公网ip及公司资金,最重要的是,它太简单了!(好配还好用)一般适用于子网掩码是 /30的时候,是没有办法的办法。