1.在中型企业分支机构网络中实现和验证NAT和AC以及排除故障php
2.阐述NAT的基本工做原理html
3.根据网络需求配置NAT(包括CLI/sdm)服务器
4.排除NAT故障
网络
要真正了解NAT就必须先了解如今IP地址的适用状况,私有 IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球惟一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,以下:dom
A 类:10.0.0.0~10.255.255.255ide
B 类:172.16.0.0~172.31.255.255性能
C 类:192.168.0.0~192.168.255.255测试
上述三个范围内的地址不会在因特网上被分配,所以能够没必要向ISP 或注册中心申请而在公司或企业内部自由使用spa
随着接入Internet的计算机数量的不断猛增,IP地址资源也就越发显得捉襟见肘。事实上,除了中国教育和科研计算机(CERNET)外,通常用户几乎申请不到整段的C类IP地址。在其余ISP那里,即便是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本没法知足网络用户的需求,因而也就产生了NAT技术。debug
虽然NAT能够借助于某些代理服务器来实现,但考虑到运算成本和网络性能,不少时候都是在路由器上来实现的。
须要链接到互联网
更换的ISP要求对网络进行从新编址
须要合并两个使用相同编址方案的内联网
优势 |
缺点 |
节省合法的注册地址 | 地址转换将增长交换延时 |
在地址重叠时提供解决方案 | 致使没法端到端的IP跟踪 |
提供链接到因特网的灵活性 |
致使有些应用程序没法运行 |
在网络发生变化时从新编址 |
静态NAT: 在本地地址和全局地址进行一对一的映射.即每台须要上网的主机都须要一个公网IP
动态NAT: 将未注册的IP地址映射到注册IP地址池中的一个地址,即须要足够的地址池
NAT重载: 也是动态NAT,它利用源端口将多个非注册IP地址映射到一个IP地址(多对一),也称为PAT(端口地址转换),经过这个只须要一个IP地址便可让局域网的几千台主机上网
借助于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。
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须要一个地址池,用于内部用户提供公有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进行主机过滤
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
R1#show ip nat statistics #查看nat状态 R1#show ip nat translations #查看nat地址转换 R1#debug ip 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数据包