实验目标
1.在中型企业分支机构网络中实现和验证NAT和AC以及排除故障
2.阐述NAT的基本工作原理
3.根据网络需求配置NAT(包括CLI/sdm)
4.排除NAT故障
关于NAT
要真正了解NAT就必须先了解现在IP地址的适用情况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下:
A 类:10.0.0.0~10.255.255.255
B 类:172.16.0.0~172.31.255.255
C 类:192.168.0.0~192.168.255.255
上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用
随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机(CERNET)外,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。
虽然NAT可以借助于某些代理服务器来实现,但考虑到运算成本和网络性能,很多时候都是在路由器上来实现的。
在什么情况下使用NAT
需要连接到互联网
更换的ISP要求对网络进行重新编址
需要合并两个使用相同编址方案的内联网
NAT的优点与缺点
优点 |
缺点 |
节省合法的注册地址 | 地址转换将增加交换延时 |
在地址重叠时提供解决方案 | 导致无法端到端的IP跟踪 |
提供连接到因特网的灵活性 |
导致有些应用程序无法运行 |
在网络发生变化时重新编址 |
NAT的类型
静态NAT: 在本地地址和全局地址进行一对一的映射.即每台需要上网的主机都需要一个公网IP
动态NAT: 将未注册的IP地址映射到注册IP地址池中的一个地址,即需要足够的地址池
NAT重载: 也是动态NAT,它利用源端口将多个非注册IP地址映射到一个IP地址(多对一),也称为PAT(端口地址转换),通过这个只需要一个IP地址即可让局域网的几千台主机上网
NAT工作原理
借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。
NAT将自动修改IP报文的源IP地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文
数据部分嵌入IP地址的应用程序就不能正常工作。
①client(终端) 的 gateway (网关)设定为 NAT 主机,所以当要连上 Internet 的时候,该封包就会被送到 NAT 主机,这个时候的封包 Header 之 source IP(源IP) 为 192.168.1.100 ;
②而透过这个 NAT 主机,它会将 client 的对外联机封包的 source IP ( 192.168.1.100 ) 伪装成 ppp0 ( 假设为拨接情况 )这个接口所具有的公共 IP ,因为是公共 IP 了,所以这个封包就可以连上 Internet 了,同时 NAT 主机并且会记忆这个联机的封包是由哪一个 ( 192.168.1.100 ) client 端传送来的;
③由 Internet 传送回来的封包,当然由 NAT主机来接收了,这个时候, NAT 主机会去查询原本记录的路由信息,并将目标 IP 由 ppp0 上面的公共 IP 改回原来的 192.168.1.100 ;
④最后则由 NAT 主机将该封包传送给原先发送封包的 Client。
配置静态NAT
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat inside source static 192.168.1.1 192.168.2.1 #把192.168.1.1转换为192.168.2.1
配置动态NAT
配置动态NAT需要一个地址池,用于内部用户提供公有IP地址.动态NAT不使用端口号,因此对于同时访问外网的内部主机,都需要一个公有IP地址.
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat pool lan 192.168.2.1 192.168.2.254 prefix-length 24 #创建一个NAT地址池 ip nat inside source list 10 pool lan #使用NAT地址池 access-list 10 permit 192.168.1.1 #利用ACL进行主机过滤
配置PAT(NAT重载)
interface Ethernet0/1 ip address 192.168.1.1 255.255.255.0 ip nat inside #指定NAT入口 half-duplex ! interface Ethernet0/2 ip address 192.168.2.1 255.255.255.0 ip nat outside #指定NAT出口 half-duplex ! ip nat pool lan 192.168.2.1 192.168.2.1 prefix-length 24 #创建一个PNAT地址,即公网地址(NAT后的地址) ip nat inside source list 10 pool lan overload #创建PNATaccess-list 10 permit 192.168.1.1 #利用ACL进行主机过滤
相比于前面的动态NAT不同的是PAT的地址池中只有一个IP地址,且命令ip nat inside source末尾包含关键字overload
验证NAT配置
R1#show ip nat statistics #查看nat状态 R1#show ip nat translations #查看nat地址转换 R1#debug ip nat
NAT实验
在下图中,配置的IP地址如图所示,且支配指了一台主机,然而需要在LAN中再添加25台主机,26台主机都要连接到互联网.
在路由器R1中配置DHCP服务器让LAN中的主机自动获取IP地址
ip dhcp pool lan network 192.168.76.0 255.255.255.0 default-router 192.168.76.94 domain-name lan
在R1路由器配置ACL
access-list 10 permit 192.168.76.0 0.0.0.255
R1路由器配置NAT
ip nat pool lan 192.0.2.29 192.0.2.29 prefix-length 30ip nat inside source list 10 pool lan overload interface e0/0 ip nat inside interface s1/0 ip nat outside
在路由器R1和R2上配置静态路由
R1#ip route 192.0.2.28 255.255.255.252 192.0.2.30 R2#ip route 192.168.76.0 255.255.255.0 192.0.2.29
测试NAT是否成功
用LAN中的主机ping因特网中的192.0.2.30
在路由器R1上查看NAT映射:
R1# show ip nat translations Pro Inside global Inside local Outside local Outside globalicmp 192.0.2.29:30318 192.168.76.2:30318 192.0.2.30:30318 192.0.2.30:30318icmp 192.0.2.29:29294 192.168.76.1:29294 192.0.2.30:29294 192.0.2.30:29294icmp 192.0.2.29:32366 192.168.76.3:32366 192.0.2.30:32366 192.0.2.30:32366icmp 192.0.2.29:30574 192.168.76.2:30574 192.0.2.30:30574 192.0.2.30:30574icmp 192.0.2.29:29550 192.168.76.1:29550 192.0.2.30:29550 192.0.2.30:29550icmp 192.0.2.29:28526 192.168.76.1:28526 192.0.2.30:28526 192.0.2.30:28526icmp 192.0.2.29:32622 192.168.76.3:32622 192.0.2.30:32622 192.0.2.30:32622icmp 192.0.2.29:31854 192.168.76.3:31854 192.0.2.30:31854 192.0.2.30:31854icmp 192.0.2.29:30830 192.168.76.2:30830 192.0.2.30:30830 192.0.2.30:30830icmp 192.0.2.29:28782 192.168.76.1:28782 192.0.2.30:28782 192.0.2.30:28782icmp 192.0.2.29:32878 192.168.76.3:32878 192.0.2.30:32878 192.0.2.30:32878icmp 192.0.2.29:32110 192.168.76.3:32110 192.0.2.30:32110 192.0.2.30:32110icmp 192.0.2.29:31086 192.168.76.2:31086 192.0.2.30:31086 192.0.2.30:31086icmp 192.0.2.29:30062 192.168.76.2:30062 192.0.2.30:30062 192.0.2.30:30062icmp 192.0.2.29:29038 192.168.76.1:29038 192.0.2.30:29038 192.0.2.30:29038
可以看到NAT配置成功,也可以用wireshark捕获数据包查看
wireshark捕获数据包:
可以看到只有192.0.2.29与192.0.2.30的icmp数据包交换而没有LAN内的主机与192.0.2.30的icmp数据包
转自黑影博客:CCNA实验之:网络地址转换(NAT)实验