NAT
Internet技术的飞速发展,使越来越多的用户加入到Internet,因此,IP地址短缺已成为一个十分突出的问题。NAT(NetworkAddressTranslation,网络地址翻译)是解决IP地址短缺的重要手段。
NAT概述
NAT是一个IETF标准,允许一个机构以一个地址出现在Internet上。NAT技术使一个私有网络可以通过Internet注册IP连接到外部世界,位于Inside网络和Outside网络中的NAT路由器在发送数据包之前,负责把内部IP地址翻译成外部合法的IP地址。NAT将每个局域网节点的IP地址转换成一个合法的IP地址,反之亦然。它也可以应用到防火墙技术中,把个别IP地址隐藏起来不被外界发现,对内部网络设备起到保护的作用,同时,它还可以帮助网络超越地址的限制,合理地安排网络中的公有Internet地址和私有IP地址的使用。
NAT有3种类型:静态NAT、动态NAT和端口地址转换(PAT)。
1.静态NAT
在静态NAT中,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。
2.动态NAT
动态NAT首先要定义合法地址池,然后采用动态分配的方法映射到内部网络。动态NAT是动态一对一的映射。
3.PAT
PAT则是把内部地址映射到外部网络的IP地址的不同端口上,从而可以实现多对一的映射。PAT对于节省IP地址是最为有效的。
实验1:静态NAT配置
1.实验目的
通过本实验可以掌握:
静态NAT的特征;
静态NAT基本配置和调试。
2.拓扑结构
实验拓扑图如图11-1所示。
图11-1静态NAT配置
3.实验步骤
(1)步骤1:配置路由器R1提供NAT服务
R1(config)#ipnatinsidesourcestatic192.168.1.1202.96.1.3
//配置静态NAT映射
R1(config)#ipnatinsidesourcestatic192.168.1.2202.96.1.4
R1(config)#interfaceg0/0
R1(config)#ipnatinside
//配置NAT内部接口
R1(config)#interfaces0/0/0
R1(config)#ipnatoutside
//配置NAT外部接口
R1(config)#routerrip
R1(config-router)#version2
R1(config-router)#noauto-summary
R1(config-router)#network202.96.1.0
(2)配置2:配置路由器R2
R2(config)#routerrip
R2(config-router)#version2
R2(config-router)#noauto-summary
R2(config-router)#network202.96.1.0
R2(config-router)#network2.0.0.0
4.实验调试
debugipnat
该命令可以查看地址翻译的过程。
在PC1和PC2上ping2.2.2.2(路由器R2的环回接口),此时应该是通的,路由器R1的输出信息如下:
R1#debugipnat
Mar402;02;12.779;NAT;s=192.168.1.1->202.96.1.3,d=2.2.2.2[20240]
Mar402;02;12.779;NAT;s=2.2.2.2,d=202.96.1.3->192.168.1.1[14435]
......
Mar402;02;12.779;NAT;s=192.168.1.2->202.96.1.4,d=2.2.2.2[25]
Mar402;02;12.779;NAT;s=2.2.2.2,d=202.96.1.4->192.168.1.2[25]
以上输出表明了NAT的转换过程。首先把私有地址”192.168.1.1”和”192.168.1.2”分别转换成公网地址”202.96.1.3”和”202.96.1.4”访问地址”2.2.2.2”,然后回来的时候把网地址”202.96.1.3”和”202.96.1.4”分别转换成私有地址”192.168.1.1”和”192.168.1.2”。
showipnattranslations
该命令用来查看NAT表。在静态映射时,NAT表一直存在。
R1#showipnattranslations
ProInsideglobalInsidelocalOutsidelocalOutsideglobal
---202.96.1.3192.168.1.1------
---202.96.1.4192.168.1.2------
以上输出表明了内部全局地址和内部局部地址的对应关系。
【术语】
内部局部(InsideLocal)地址:在内部网络使用的地址,往往是RFC1918地址;
内部全部(InsideGlobal)地址:用来代替一个或多个本地IP地址的、地外的、向NIC注册过的地址;
外部局部(OutsideLocal)地址:一个外部主机相对于内部网络所用的IP地址,不一定是合法的地址;
外部局部(OutsideGlobal)地址:外部网络主机的合法IP地址。
实验2:动态NAT
1.实验目的
通过本实验可以掌握:
动态NAT的特征:
动态NAT配置和调试
2.拓扑结构
实验拓扑如图11-1所示。
图11-1静态NAT配置
3.实验步骤
(1)步骤1:配置路由器R1提供NAT服务
R1(config)#ipnatpoolNAT202.96.1.3202.96.1.100netmask255.255.255.0
//配置动态NAT转换的地址池
R1(config)#ipnatinsidesourcelist1poolNAT
//配置动态NAT映射
R1(config)#access-list1permit192.168.1.00.0.0.255
//允许动态NAT转换的内部地址范围
R1(config)#interfaceg0/0
R1(config-if)#ipnatinside
R1(config-if)#interfaces0/0/0
R1(config-if)#ipnatoutside
4.实验调试
在PC1访问2.2.2.2(路由器R2的环回接口)的WWW服务,在PC2上分别Telnet和ping2.2.2.2(路由器R2的环回接口),调试结果如下:
(1)debugipnat
R1#debugipnat
IPNATdebuggingison
R1#clearipnattranslation//清除动态NAT表
Mar401;34;23.075;NAT;s=192.168.1.1->202.96.1.4,d=2.2.2.2[19833]
Mar401;34;23.087;NAT;s=2.2.2.2,d=202.96.1.4->192.168.1.1[62333]
......
Mar401;28;49.867;NAT;s=192.168.1.2->202.96.1.3,d=2.2.2.2[62864]
Mar401;28;49.875;NAT;s=2.2.2.2,d=202.96.1.3->192.168.1.2[54062]
......
【提示】
如果动态NAT地址池中没有足够的地址进行动态映射,则会出现类似下面的信息,提示NAT转换失败,并丢弃数据包。
Feb2209;02;59.075;NAT;translationfailed(A),droppingpackets=192.168.1.2d=2.2.2.2
(2)showipnattranslations
R1#showipnattranslations
ProInsideglobalInsidelocalOutsidelocalOutsideglobal
tcp202.86.1.4;1721192.168.1.1;17212.2.2.2;802.2.2.2;80
---202.96.1.4192.168.1.1------
icmp202.96.1.3;3192.168.1.2;32.2.2.2;32.2.2.2;3
tcp202.96.1.3;14347192.168.1.2;143472.2.2.2;232.2.2.2;23
---202.96.1.3192.168.1.2------
以上信息表明当PC1和PC2第一次访问”2.2.2.2”地址时,NAT路由器R1为主机PC1和PC2动态分配两个全局地址”202.96.1.4”和202.96.1.3”,在NAT表中生成两条动态映射的记录,同时会在NAT表中生成和应用相对应的协议和端口号的记录(过期时间为60s)。在动态没有过期(过期时间为86400s)之前,再有应用从相同主机发起时,NAT路由器直接查NAT表,然后为应用分配相应的端口号。
(3)showipnatstatistics
该命令用来查看NAT转换的统计信息。
R1#showipnatstatistics
Totalactivetranslations;5(0static,5dynamic;3extended)
//有5个转换是动态转化
Outsideinterfaces;
Serial0/0/0
//NAT外部接口
Insideinterfaces;
GigabitEthernet0/0
//NAT内部接口
Hits;54Misses;6
CEFTranslatedpackets;60,CEFPuntedpackets;5
Expiredtranslations;12//NAT表中过期的转换
Dynamicmappings;//动态映射
--InsideSource
[Id;1]access-list1poolNATrefcount2
poolNAT;netmask255.255.255.0//地址池名字和掩码
start202.96.1.3end202.96.1.100//地址池范围
typegeneric,totaladdresses98,allocated2(2%),misses0
//共98个地址,分出去2个
QueuedPackets;0
实验3:PAT配置
1.实验目的
通过本实验可以掌握:
PAT的特征;
overload的使用;
PAT配置和调试
2.拓扑结构
实验拓扑图如图11-1。
图11-1静态NAT配置
3.实验步骤
(1)步骤1:配置路由器R1提供NAT服务
R1(config)#ipnatpoolNAT202.96.1.3202.96.1.100netmsask255.255.255.0
R1(config)#ipnatinsidesourcelist1poolNATover//配置PAT
R1(config)#access-list1permit192.168.1.00.0.0.255
R1(config)#interfaceg0/0
R1(config-if)#ipnatinside
R1(config-if)#interfaces0/0
R1(config-if)#ipnatoutside
R1(config-if)#iproute0.0.0.00.0.0.0s0/0/0
4.实验调试
在PC1访问2.2.2.2(路由器R2的环回接口)的WWW服务,在PC2上分别Telnet和ping2.2.2.2(路由器R2的环回接口),调试结果如下:
(1)debugipnat
R1#debugipnat
Mar401;53;47.983;NAT;s=192.168.1.1->202.96.1.3,d=2.2.2.2[20056]
Mar401;53;47.995;NAT;s=2.2.2.2,d=202.96.1.3->192.168.1.1[46201]
......
Mar401;54;03.015;NAT;s=192.168.1.2->202.96.1.4,d=2.2.2.2[20787]
Mar401;54;03.219;NAT;s=2.2.2.2,d=202.96.1.4->192.168.1.2[12049]
......
(2)showipnattranslations
R1#showipnattranslations
ProInsideglobalInsidelocalOutsidelocalOutsideglobal
tcp202.86.1.3;1732192.168.1.1;17322.2.2.2;802.2.2.2;80
icmp202.96.1.3;4192.168.1.2;42.2.2.2;42.2.2.2;4
tcp202.96.1.3;12320192.168.1.2;123202.2.2.2;232.2.2.2;23
以上输出表明进行PAT转换使用的是同一个IP地址的不同端口号。
(3)showipnatstatistics
Totalactivetranslations;3(0static,3dynamic;3extended)
Outsideinterfaces;
Serial0/0/0
Insideinterfaces;
GigabitEthernet0/0
Hits;762Misses;22
CEFTranslatedpackets;760,CEFPuntedpackets;47
Expiredtranslations;19
Dynamicmappings;
--InsideSource
[Id;1]access-list1poolNATrefcount3
poolNAT;netmask255.255.255.0
start202.96.1.3end202.96.1.100
typegeneric,totaladdresses98,allocated1(1%),misses0
QueuedPackets;0
【提示】
动态NAT的过期时间是86400s,PAT的过期时间是60s,通过”showipnattranslationsverbose”命令可看。也可以通过下面的命令来修改超时时间:
R1(config)#ipnattranslationtimeouttimeout
参数timeout的范围是0~2147483。
如果主机的数量不是很多,可以直接使用outside接口地址配置PAT,不必定义地址池,命令如下:
R1(config0#ipnatinsidesourcelist1interfaces0/0/0overload
NAT命令汇总
表11-1列出了本章涉及到的主要命令。
表11-1本章命令汇总
命令 作用 clearipnattranslation 清除动态NAT表 showipnattranslation 查看NAT表 showiopnatstatistics 查看NAT转换的统计信息
debugipnat 动态查看NAT转换过程 ipnatinsidesourcestatic 配置静态NAT ipnatinside 配置NAT内部接口 ipnatoutside 配置NAT外部接口 ipnatpool 配置动态NAT地址池 ipnatinsidesourcelistaccess-list-numberpoolname 配置动态NAT ipnatinsidesourcelistaccess-list-numberpoolnameoverload 配置PAT
|
|