Network Address Translation
1、起源:ip地址不够用
2、作用:让私网地址映射成公网地址,进而访问网络。
3、私网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
4、缺点:破坏了端到端的环境
【数据包传输过程】(两个过程相反)
1、数据包从内网到外网,先查看路由表,查看目的是否可达,如果可达,再对源ip进行转换,不可达就丢弃。
2、数据包从外网到内网,先转换成私有的ip地址,然后查看路由表。(公网回来不知道私网的IP地址)隐藏内部网络拓扑
NAT的相关术语
1.内部本地地址(inside local)转换之前的私有IP地址 192.168.10.1
2.内部全局地址(inside global)转换之后的公有IP地址 202.101.1.1
3.外部本地地址(outside local)
4.外部全局地址(outside global)
【nat分类】
1、静态nat
对私网的地址做一对一的映射,一个私有地址映射一个公有地址
ip nat inside source static 192.168.1.1 12.12.12.3
//对源ip地址192.168.1.1映射成公网12.12.12.3(与公网物理端口处于同一网段即可)
Router(config)#int e0/0
Router(config-if)#ip nat inside //制定nat内接口
Router(config)#int e0/1
Router(config-if)#ip nat outside //制定nat外接口
ip route 0.0.0.0 0.0.0.0 12.12.12.2 //默认路由
带端口的静态NAT
R3(config)#ip nat inside source static tcp 192.168.100.100 23 202.101.23.200 233 //将对202.101.23.200的233端口通过TCP连接的数据包,通过NAT转换给192.168.100.100的23端口
2、动态nat
通过地址池来实现,购买公网的一个ip地址范围,本质也是一对一的映射,如果ip地址不用了就收回来。
access-list 1 permit 192.168.1.0 0.0.0.255---匹配感兴趣流量
ip nat pool qq 12.12.12.10 12.12.12.20 netmask 255.255.255.0---公网地址池
ip nat inside source list 1 pool qq---转换
Router(config)#int e0/0
Router(config-if)#ip nat inside ---制定nat内接口
Router(config)#int e0/1
Router(config-if)#ip nat outside---制定nat外接口
ip route 0.0.0.0 0.0.0.0 12.12.12.2---默认路由
地址池复用:在地址池中,实现多对一的映射。
ip nat inside source list 1 pool qq overload
3、pat---port nat 端口nat
非常常见的NAT转换,经常使用在家庭或者公司,配置很简单。只允许用户主动访问互联网,不允许互联网访问用户。内网用户转换后产生的转换表30s清空一次
access-list 1 permit 192.168.1.0 0.0.0.255---匹配感兴趣流量
ip nat inside source list 1 interface e0/1 overload ---转换
Router(config)#int e0/0
Router(config-if)#ip nat inside ---制定nat内接口
Router(config)#int e0/1
Router(config-if)#ip nat outside---制定nat外接口c
ip route 0.0.0.0 0.0.0.0 12.12.12.2---默认路由
检查NAT:
Router#sh ip nat translations ----查看nat转换情况
Router#sh ip nat statitice ----查看nat静态转化情况
Router#sh access-list ---查看nat列表转化情况
Router#debug ip nat---查看数据包显示信息, PCping外网的时候在在边界路由上的抓包
Router#un all--关掉debug no debug all 真机谨慎使用