首页 > 技术文章 > NAT地址转换

kkfollwme 2021-01-18 11:26 原文

随着网络设备的数量不断增长,对IPv4地址的需求也不断增加,导致可用IPv4地址空间逐渐耗尽。解决IPv4地址枯竭问题的权宜之计是分配可重复使用的各类私网地址段给企业内部或家庭使用。但是,私有地址不能在公网中路由,即私网主机不能与公网通信,也不能通过公网与另外一个私网通信。

NAT是将IP数据报文头部中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能。NAT一般部署在连接内网和外网的网关设备上。当收到的报文源地址为私网地址、目的地址为公网地址时,NAT可以将源私网地址转换成一个公网地址。这样公网目的地就能够收到报文,并做出响应。此外,网关上还会创建一个NAT映射表,以便判断从公网收到的报文应该发往的私网目的地址。

NAT分为五种:

静态NAT:静态NAT实现了私有地址和公有地址的一对一映射。如果希望一台主机优先使用某个关联地址,或者想要外部网络使用一个指定的公网地址访问内部服务器时,可以使用静态NAT。但是在大型网络中,这种一对一的IP地址映射无法缓解公用地址短缺的问题。

动态NAT:动态NAT通过使用地址池来实现 不能节约IP

NAPT(动态NAT端口复用):网络地址端口转换NAPT(Network Address Port Translation)允许多个内部地址映射到同一个公有地址的不同端口。 能节约IP 

Easy IP:Easy IP适用于小规模局域网中的主机访问Internet的场景。小规模局域网通常部署在小型的网吧或者办公室中,这些地方内部主机不多,出接口可以通过拨号方式获取一个临时公网IP地址。Easy IP可以实现内部主机使用这个临时公网IP地址访问Internet。即映射到网关公网

IPnat outbound 2000表示对ACL 2000定义的地址段进行地址转换,并且直接使用Serial1/0/0接口的IP地址作为NAT转换后的地址

NAT服务器:

NAT在使内网用户访问公网的同时,也屏蔽了公网用户访问私网主机的需求。当一个私网需要向公网用户提供Web和SFTP服务时,私网中的服务器必须随时可供公网用户访问。 NAT服务器可以实现这个需求,但是需要配置服务器私网IP地址和端口号转换为公网IP地址和端口号并发布出去。路由器在收到一个公网主机的请求报文后,根据报文的目的IP地址和端口号查询地址转换表项。路由器根据匹配的地址转换表项,将报文的目的IP地址和端口号转换成私网IP地址和端口号,并转发报文到私网中的服务器。

以下命令都是在接口上配置

静态NAT配置:nat static global xxxx inside xxxx (公网,私网)

动态NAT配置:nat outbound xxxx(访问控制列表名)  address-group x no-pat                 //

nat outbound命令用来将一个访问控制列表ACL和一个地址池关联起来,表示ACL中规定的地址可以使用地址池进行地址转换。ACL用于指定一个规则,用来过滤特定流量。 nat address-group命令用来配置NAT地址池。no-pat表示只转换数据报文的地址而不转换端口信息,即转换的IP地址跟内网一对一。

NAPT配置:不输入 no-pat 即可

Easy IP:Easy IP的配置与动态NAT的配置类似,需要定义ACL和nat outbound命令,主要区别是Easy IP不需要配置地址池,所以nat outbound命令中不需要配置参数address-group 直接nat outbound xxxxx 最大程度节约公网IP地址

NAT服务器:

nat server [ protocol {protocol-number | icmp | tcp | udp} global { global-address | current-interface global-port} inside {host-address host-port } vpn-instance vpn-instance-name acl acl-number description description ]命令用来定义一个内部服务器的映射表,外部用户可以通过公网地址和端口来访问内部服务器。 参数protocol指定一个需要地址转换的协议; 参数global-address指定需要转换的公网地址; 参数inside指定内网服务器的地址。nat server protocol xxx global current-interface xxxx inside xxxx

 

0.0.0.255是反掩码表示路由器判断是否匹配时 0表示精确匹配,1表示无关位置不用匹配根据二进制来判断 00000001

display nat address-group 用来查看NAT地址池配置信息
display nat outbound 用来查看动态NAT或者EasyIP (nat outbound)的配置信息
display nat static 用于查看静态NAT的配置
display nat server命令用于查看详细的NAT服务器配置结果

推荐阅读