设为首页 收藏本站
查看: 1190|回复: 0

[经验分享] Network Address Translation 网络地址转换

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-24 11:04:08 | 显示全部楼层 |阅读模式
NAT (Network AddressTranslation)
NAT的本意是通过利用较少的公有IP地址来表示大量私有IP地址的方式来降低IP地址空间的耗用速度。
wKiom1XZO6yQhTN5AAD9uczygV4765.jpg
NAT术语:
CiscoNAT设备将NAT世界划分为内部inside和外部outside两部分,内部网络通常是私有企业或isp,外部网络是公共internet或面向internet的服务提供商。
本地地址是内部网络中设备看见的地址,全局地址则是外部网络设备所看见的地址。

内部本地inside local:转换之前内部源地址的名字;分配给内部设备的地址,这些地址不会被宣告到外部网络。
外部本地outside global:转换之前目标主机的名字;分配给外部设备的地址,这些地址不会被宣告到内部网络中。
内部全局inside global:转换之后内部主机的名字;内部设备被外部网络所知晓的地址。
外部全局outside local:转换之后外部目标主机的名字;外部设备被内部网络所知晓地址。
IG地址被映射到IL地址,OL地址被映射到OG地址,Nat设备在地址转换表中跟踪地址映射情况。

Eg:
Router#showip nat translations
Pro  Inside global     Inside local       Outside local      Outside global
icmp203.10.5.23:86    192.168.2.23:86    192.31.7.130:86    172.16.80.91:86
icmp203.10.5.23:87    192.168.2.23:87    192.31.7.130:87    172.16.80.91:87
icmp203.10.5.23:88    192.168.2.23:88    192.31.7.130:88    172.16.80.91:88

NAT 与IP地址保护:
当内部设备向internet发送数据包时,NAT设备会从内部全局地址池中动态地选择一个公有ip地址,并将其映射到该设备的内部本地地址,该映射操作将被记录在nat表中。
当表项第一次进入NAT表时,同时启动了一个定时器,该定时器的周期被称为转换超时时间。每当该表项被用于转换数据包的源地址和目的地址后,该定时器就被重置,如果定时器到期,则将从NAT表中删除该表项,而动态分配的地址也将回到地址池中,cisco默认超时时间为86400,可以利用ip nat translationtimeout来更改默认时间。一定要确保NAT地址池足够大且装换超时时间足够小,从而保证动态地址池永远不会被耗尽。

对多对一应用来说,没有严格的本地地址空间与地址池大小的比例限制。

几乎所有的企业都拥有邮件,web及ftp服务器等需要从外部可以发访问,而这些地址需保持不变,这些系统不能使用动态NAT,必须将他们的IL地址静态映射到IG地址上,而这些静态映射的地址不能进入动态地址池。

NAT与ISP迁移:
CIDR的一个缺陷是会增加用户更改ISP时的难度。如果用户已经从ips1处分配到了地址块,但又希望将internet服务提供商更换为isp2,则只能将isp1的地址归还给isp1,并从isp2处重新换取ip地址。

假设ISP1为其用户分配一个地址空间:205.113.50.0/23,当用户迁移到ISP2 ISP2又为用户分配一个地址空间207.36.76.0/23此时用户无需为其内部系统重新分配IP地址,只要使用NAT即可。用户可以使用ISP1地址空间作为IL地址,将来自ISP2地址空间207.36.76.0/23作为IG地址,并将IL地址映射到这些IG地址上即可。
改NAT方案风险是内部本地地址可能被泄露到公众internet上,那么被泄露地址将于合法改地址的ISP1相冲突,如果ISP2S使用了严格路由过滤机制,那么这种错误将不会泄露到internet上。
另一个问题是ISP1很可能将该地址分配给用户B那么A将无法访问用户B,上述案例可以降低NAT迁移难度,但用户最终应该将内部网络重新编址为私有地址。
wKioL1XZPd6x_BNLAADERGAvl9o345.jpg
NAT与多归属自治系统:
CIDR的另一个不足之处是很难实现多归属到不同的服务提供商。
wKiom1XZO-jz79BpAADWgVP3hh4464.jpg
为了与internet建立正确的通信关系,ISP1和ISP2都需要宣告该用户的地址空间205.113.50.0/23,如果ISP2不宣告该地址,那么该用户的所有入站流量都经过ISP1;如果ISP2宣告了205.113.50.0/23而ISP1仅宣告自己的CIDR地址块那么该用户入站流量将匹配精确路由 ,从而全部选择ISP2,这样将产生如下问题:
  • 1.    ISP1必须在其CIDR地址块中打孔,这就意味着可能需要在很多路由器上修改相应的过来路由和路由策略。
  • 2.    ISP2必须宣告其竞争对手的部分地址空间。
  • 3.    宣告用户的精确地址空间,那么意味着会弱化CIDR在控制internet路由表规模方面的效率。
  • 4.    某些全国性的服务提供商不收受长于/19的前缀,也意味着internet上的某些地方无法知道该用户经过ISP2的路由。


通过NAT可以解决CIDR在多归属环境中的问题:在连接isp2的路由器上配置nat,将IG地址池设置为isp2分配的CIDR地址块,这样isp2就不用在宣告isp1的地址空间,isp1也无需再宣告用户的精确路由。
wKioL1XZPhnTFFzGAADchEHK6M8255.jpg
更有效的设计方案:在两台边缘路由器上都实施NAT,来自每个isp的CIDR地址块都设置为各自的NAT中的IG地址池,IL地址来自私有地址10.0.0.0。
wKiom1XZPCaCkph8AAETrnpZHp0053.jpg
端口地址转换:
NAT有有一种特定功能,可以将多个地址同时映射到单个地址,cisco将这种功能称为PAT(port address translation).
TCP/IP会话并不是2个IP地址之间的的包交换,而是2个ip套接字之间的包交换。套接字就是(地址,端口)二元组,PAT会同时转换IP地址和端口号,来自不同地址的数据包可以被转换为同一个地址,但对应的端口号不相同,这样就可以共享同一个地址了。

PAT工作原理:
wKiom1XZPEXzyNknAAE1Al-DS8k520.jpg
NAT与TCP负载分发:
利用NAT可以将多台相同的服务器表示为单个地址 Eg:
wKiom1XZPGaj7mBcAADxl9jQV5s239.jpg
外部网络设备到达的服务器地址都是206.35.91.10 但实际是内网存在4台镜像服务器,nat路由器采用轮询方式在这4台服务器之间分发会话。4台服务器必须提供相同的可访问内容。

该应用方案与基于DNS的负载查询共享方式类似,基于NAT的负载均衡也不很稳定,因为路由器并不感知服务器的故障,任然会将数据包转换发到该故障服务器,这样一来故障服务器会出现路由黑洞。

NAT与虚拟服务器:
NAT技术不仅可以让外部通过同一个地址访问所有服务,还可以将多种服务分发到不同的地址。
wKioL1XZPpXQbripAAE4XCzsf1o320.jpg
当外部主机向内部网络发送数据包时NAT路由器除了要检查目的地址之外,还要检查目的端口号。如果目的端口号是25 NAT路由器将该数据包目的地址转换为邮件服务器地址 192.168.50.1;同一台主机发送目的端口为80的数据包,则被路由器将数据包的目的地址转换成web服务器地址 192.168.50.2.

NAT存在的问题:
NAT底层功能
  • 1.     头部检验
  • 2.     分段
  • 3.     加密:NAT路由器需放置在安全侧,而不能将其放置在被加密路径上
  • 4.     安全:NAT不能阻止拒绝服务或会话劫持等常见攻击
  • 5.     协议相关问题:cisco NAT所支持的IP流量和应用程序

http://www.cisco.com/en/US/technologies/tk648/tk361/tk438/technologies_white_paper09186a00801af2b9.html



Configuring Static Translation

Step 1 Router(config)# ip nat inside source static  local-ip  global-ip
Step 2 Router(config)# interface type number
Step 3 Router(config-if)# ip nat inside
Step 4 Router(config)# interface type number
Step 5 Router(config-if)# ip nat outside



Configuring Dynamic Translation with an Access List

Step 1 Router(config)# ip nat pool name start-ip end-ip {netmask netmask | prefix-length prefix-length}
Step 2 Router(config)# access-list access-list-number permit source [source-wildcard]
Step 3 Router(config)# ip nat inside source list  access-list-number pool name
Step 4 Router(config)# interface type number
Step 5 Router(config-if)# ip nat inside
Step 6 Router(config)# interface type number
Step 7 Router(config-if)# ip nat outside



Configuring Dynamic Translation with a Route Map

Step 1 Router(config)# ip nat pool name start-ip end-ip {netmask netmask | prefix-length prefix-length}
Step 2 Router(config)# route-map name permit sequence
Step 3 Router(config)# ip nat inside source route-map name pool name
Step 4 Router(config)# interface type number
Step 5 Router(config-if)# ip nat inside
Step 6 Router(config)# interface type number
Step 7 Router(config-if)# ip nat outside


Overloading an Inside Global Address
Step 1
Router(config)# ip nat pool name start-ip end-ip {netmask netmask | prefix-length prefix-length}
Step 2 Router(config)# access-list access-list-number permit source [source-wildcard]
Step 3 Router(config)# ip nat inside source list access-list-number pool name overload
Step 4 Router(config)# interface type number
Step 5 Router(config-if)# ip nat inside
Step 6 Router(config)# interface type number
Step 7 Router(config-if)# ip nat outside



Changing Translation Timeouts
Router(config)#ip nat translationtimeout seconds……………………not use overloading.  默认超时时间24H
Router(config)#ip nat translationudp-timeout seconds
Router(config)#ip nat translationdns-timeout seconds
Router(config)#ip nat translationtcp-timeout seconds
Router(config)#ip nat translationfinrst-timeout seconds
Router(config)#ip nat translationicmp-timeout seconds
Router(config)#ip nat translationsyn-timeout seconds



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103403-1-1.html 上篇帖子: MTU(最大传输单元) 下篇帖子: NetFlow Network 网络
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表