一、相关知识
NAT(网络地址转换)是将一个IP地址域转到另一个地址域的技术
NAT技术的出现是为了解决日益减少的IP地址问题,将多个内部IP地址映射为少数几个甚至一个公网地址,这样就可以实现内部网络中的主机(通常位私有地址)透明地访问外部网络的资源。同时,外部网络的主机也有选择地访问内部网络。
NAT能使内外部网络隔壁,起到一定的安全作用
什么是私有地址和公有地址?
答:私有地址是只能在一个组织或机构的内部使用,不能在Internet范围内使用,其范围是10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255
相对而言,其他范围的IP地址就是公有地址、可路由地址或合法地址,必须正式向Internet注册的组织申请并按照分配的地址范围使用。
什么是内部网络?
答:指那些由机构或企业拥有的网络,与NAT路由器上被定义的inside接口相连。
什么是外部网络?
答:指除了内部网络外的所有网络,常为Internet网络,与NAT路由器上被定义的outside接口相连。
什么是内部本地地址?
答:内部网络主机使用的IP地址,这些地址一般为私有IP地址,它们不能直接在Internet上路由,因而也不能直接用于对Internet的访问,必须通过网络地址转换(NAT),以合法的IP地址身份来访问Internet。
什么是内部全局地址?
答:内部网络使用的公有IP地址,这些地址是向ICANN申请才可取得的公有IP地址,当使用内部本机地址的主机要与Internet通信时,NAT转换时使用的地址
什么时外部本机地址?
答:外部网络主机使用的IP地址,这些地址不一定是公有IP地址。
什么是外部全局地址?
外部网络主机使用的IP地址,这些地址是全局可路由的公有IP地址。
NAT的工作原理图:
NAT的应用环境:
1、使用NAT技术与外部网络进行隔离,有一定的安全性
2、通过NAT功能实现多个用户同时公用一个合法IP与外部Internet 进行通信。
3、如果有两个内网需要互联,而它们采用的内部私有地址范围有重合时,也可以采用NAT技术进行转换。
NAT分成三类:
1、静态地址转换;2、动态地址转换;3、地址端口转换
二、例子
1、(静态NAT)某企业内部网络中有两台PC机,它们使用的是内部本地地址。要求正确配置静态地址转换,使这两台PC能访问Internet。其中PC1和PC2使用的内部全局地址分别为210.68.166.2和210.68.166.3, 路由器内部网络接口f0/0的IP地址为192.168.10.1,外部网络接口s1/2的IP地址为210. 68.166.1。
拓扑结构:
代码:
NAT路由器:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#host
Router(config)#hostname NAT
NAT(config)#int
NAT(config)#interface g
NAT(config)#interface gigabitEthernet 0/1
NAT(config-if)#ip add
NAT(config-if)#ip address 192.168.10.1 255.255.255.0
NAT(config-if)#no sh
NAT(config-if)#no shutdown
NAT(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#interface gigabitEthernet 0/0
NAT(config-if)#ip address 210.68.166.1 255.255.255.0
NAT(config-if)#no sh
NAT(config-if)#no shutdown
NAT(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up
NAT(config)#ip na
NAT(config)#ip nat
NAT(config)#ip nat i
NAT(config)#ip nat inside s
NAT(config)#ip nat inside source s
配置静态NAT
NAT(config)#ip nat inside source static 192.168.10.2 210.68.166.2
NAT(config)#ip nat inside source static 192.168.10.3 210.68.166.3
NAT(config)#interface gigabitEthernet 0/1
NAT(config-if)#ip nat inside 两个接口分别要设置inside 和outside
NAT(config-if)#e 跟内网相连的是inside,跟外网相连的是outside
NAT(config-if)#exit
NAT(config)#interface gigabitEthernet 0/0
NAT(config-if)#ip nat outside
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#end
NAT#
%SYS-5-CONFIG_I: Configured from console by console
查看NAT
NAT#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 210.68.166.2 192.168.10.2 --- ---
--- 210.68.166.3 192.168.10.3 --- ---
Internet路由器(当成Internet,只需配接口的IP地址)
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hos
Router(config)#hostname Internet
Internet(config)#in
Internet(config)#interface g
Internet(config)#interface gigabitEthernet 0/0
Internet(config-if)#ip add
Internet(config-if)#ip address 210.68.166.4 255.255.255.0
Internet(config-if)#no sh
Internet(config-if)#no shutdown
Internet(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to u
Internet(config-if)#e
Internet(config-if)#exit
结果:原先跟Internet ping不通,配置NAT后就可以了
2、(动态NAT)假设某企业局域网使用的内部本地地址为192.168.10.0/24,申请到的内部全局地址范围为210.68.166.5~210.68.166.16,要求在边界路由器上正确配置动态NAT转换,以实现局域网与Internet的通信。
拓扑结构:
主机的设置
代码:
NAT:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#hos
Router(config)#hostname NAT
NAT(config)#in
NAT(config)#interface g
NAT(config)#interface gigabitEthernet 0/1
NAT(config-if)#ip add
NAT(config-if)#ip address 192.168.10.254
NAT(config-if)#ip address 192.168.10.254 255.255.255.0
NAT(config-if)#no sh
NAT(config-if)#no shutdown
NAT(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/1, changed state to up
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#interface gigabitEthernet 0/0
NAT(config-if)#ip add
NAT(config-if)#ip address 210.68.166.1 255.255.255.0
NAT(config-if)#no sj
NAT(config-if)#no sh
NAT(config-if)#no shutdown
NAT(config-if)#
%LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to up
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up
动态NAT的设置,标红的三句是重点
NAT(config)#ip nat pool abc 210.68.166.5 ?
A.B.C.D End IP address
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.16?
A.B.C.D
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.16 ne
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.16 netmask ?
A.B.C.D Network mask
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.16 netmask 255.255.255.0
(建一个NAT的映射地址池,范围从210.68.166.5~210.68.166.16,最后是掩码 )
NAT(config)#ac
NAT(config)#access-list 1 p
NAT(config)#access-list 1 permit 192.168.10.0 0.0.0.255
NAT(config)#ip n
NAT(config)#ip na
NAT(config)#ip nat
NAT(config)#ip nat i
NAT(config)#ip nat inside s
NAT(config)#ip nat inside source l
NAT(config)#ip nat inside source list 1 p
NAT(config)#ip nat inside source list 1 pool abc
NAT(config)#in
NAT(config)#interface g
设置接口的进出
NAT(config)#interface gigabitEthernet 0/1
NAT(config-if)#ip nat
NAT(config-if)#ip nat i
NAT(config-if)#ip nat inside
NAT(config-if)#interface gigabitEthernet 0/0
NAT(config-if)#ip nat outside
NAT(config-if)#e
NAT(config-if)#exit
NAT(config)#end
NAT#
%SYS-5-CONFIG_I: Configured from console by console
主机ping Internet 后查看地址的转换
NAT#show ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 210.68.166.7:5 192.168.10.3:5 210.68.166.2:5 210.68.166.2:5
icmp 210.68.166.7:6 192.168.10.3:6 210.68.166.2:6 210.68.166.2:6
icmp 210.68.166.7:7 192.168.10.3:7 210.68.166.2:7 210.68.166.2:7
icmp 210.68.166.7:8 192.168.10.3:8 210.68.166.2:8 210.68.166.2:8
icmp 210.68.166.8:13 192.168.10.1:13 210.68.166.2:13 210.68.166.2:13
icmp 210.68.166.8:14 192.168.10.1:14 210.68.166.2:14 210.68.166.2:14
icmp 210.68.166.8:15 192.168.10.1:15 210.68.166.2:15 210.68.166.2:15
icmp 210.68.166.8:16 192.168.10.1:16 210.68.166.2:16 210.68.166.2:16
icmp 210.68.166.9:5 192.168.10.2:5 210.68.166.2:5 210.68.166.2:5
icmp 210.68.166.9:6 192.168.10.2:6 210.68.166.2:6 210.68.166.2:6
icmp 210.68.166.9:7 192.168.10.2:7 210.68.166.2:7 210.68.166.2:7
icmp 210.68.166.9:8 192.168.10.2:8 210.68.166.2:8 210.68.166.2:8
3、端口地址转换(跟动态地址转换差不多,只是需要在NAT(config)#ip nat inside source list 1 pool abc后加上overload):
例:把上面动态NAT的例子改一下,全部内部地址映射为外部地址210.68.166.5,这时候就需要用到端口复用NAT
拓扑结构:
代码跟动态NAT大部分相同,下面只指出不同的地方:
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.5 n
NAT(config)#ip nat pool abc 210.68.166.5 210.68.166.5 netmask 255.255.255.0 (开始地址跟结束地址一样)
NAT(config)#access-list 1 permit 192.168.10.0 0.0.0.255
NAT(config)#ip nat
NAT(config)#ip nat i
NAT(config)#ip nat inside s
NAT(config)#ip nat inside source l
NAT(config)#ip nat inside source list 1 p
NAT(config)#ip nat inside source list 1 pool abc ?
overload Overload an address translation
NAT(config)#ip nat inside source list 1 pool abc o
NAT(config)#ip nat inside source list 1 pool abc overload (NAPT的关键字)
这篇文章就写到这里啦,有什么不好的地方欢迎指出,谢谢!