实验目标

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台主机都要连接到互联网.

screenshot.png

在路由器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捕获数据包:

Selection_017.png

可以看到只有192.0.2.29与192.0.2.30的icmp数据包交换而没有LAN内的主机与192.0.2.30的icmp数据包

转自黑影博客:CCNA实验之:网络地址转换(NAT)实验