NAT(地址翻译)的相关概念及其工作原理

IP 地址耗尽促成了 CIDR 的开发,但 CIDR 开发的主要目的是为了有效的使用现有的 internet 地址。而同时根据 RFC 1631 IP Network Address Translator )开发的 NAT 却可以在多重的 internet 子网中使用相同的 IP ,用来减少注册 IP 地址的使用。
NAT 技术使得一个私有网络可以通过 internet 注册 IP 连接到外部世界,位于 inside 网络和 outside 网络中的 NAT 路由器在发送数据包之前,负责把内部 IP 翻译成外部合法地址。内部网络的主机不可能同时于外部网络通信,所以只有一部分内部地址需要翻译。
   NAT 的翻译可以采取静态翻译( static translation )和动态翻译( dynamic translation )两种。静态翻译将内部地址和外部地址一对一对应。当 NAT 需要确认哪个地址需要翻译,翻译时采用哪个地址 pool 时,就使用了动态翻译。采用 portmultiplexing 技术,或改变外出数据的源 port 技术可以将多个内部 IP 地址影射到同一个外部地址,这就是 PAT port address translator )。
  当影射一个外部 IP 到内部地址时,可以利用 TCP load distribution 技术。使用这个特征时,内部主机基于 round-robin 机制,将外部进来的新连接定向到不同的主机上去。注意: load distributiong 只有在影射外部地址到内部的时候才有效。
   NAT 使用的几种情况:
   a ,连接到 internet ,但却没有足够的合法地址分配给内部主机。
   b ,更改到一个需要重新分配地址的 ISP
   c ,有相同的 IP 地址的两个 internat 合并。
   d ,想支持负载均衡(主机)。
  采用 NAT 后,一个最主要的改变就是你失去了端对端 IP traceability ,也就是说,从此你不能再经过 NAT 使用 ping traceroute ,其次就是曾经的一些 IP IP 的程序不再可以正常运行,潜在的不易被观察到的缺点就是增加了网络延时。
   NAT 可以支持大部分 IP 协议,但有几个协议需要注意,首先 tftp rlogin,rsh,rcp ipmulticast 都被 NAT 支持,其次就是 bootp snmp 和路由表更新全部给拒绝了。
   NAT 的几个相关概念:
   Inside Local IP address: 指定于内部网络的主机地址,全局唯一,但为私有地址。
   Inside Global IP address: 代表一个或更多内部 IP 到外部世界的合法 IP
   Outside Global IP address: 外部网络主机的合法 IP
   Outside Local IP address: 外部网络的主机地址,看起来是内部网络的,私有地址。
   Simple Translation Entry: 影射 IP 到另一个地址的 Entry
   Extended Translation Entry: 影射 IP 地址和端口到另一个 pair Entry
采用 NAT ,可以实现以下几个功能:
   a Translation inside local addresses
   b Overloading inside global addresses
   c TCP load distribution
   d Handing overlapping networks
  下面我们一一叙述它们的工作原理。
a ,内部地址翻译( Translation inside local addresses)
  这是比较通用的一种方法,将内部 IP 一对一的翻译成外部地址。
  在内部主机连接到外部网络时,当第一个数据包到达 NAT 路由器时, router 检查它的 NAT 表,因为是 NAT 是静态配置的,故可以查询出来( simply entry ),然后 router 将数据包的内部局部 IP (源地址)更换成内部全局地址,再转发出去。外部主机接受到数据包用接受到的内部全局地址来响应, NAT 接受到外部回来的数据包,再根据 NAT 表把地址翻译成内部局部 IP ,转发过去。
   b ,内部全局地址复用( overloading inside glogal addresses
  使用地址和端口 pair 将多个内部地址影射到比较少的外部地址。这也是所谓的 PAT 。和内部地址翻译一样, NAT router 同样也负责查表和翻译内部 IP 地址,唯一的区别就是由于使用了 overloading router 将复用同样的内部全局 IP 地址,并存储足够的信息以区分它和其他地址,这样查询出来的是 extended entry NAT router 和外部主机的通讯采用翻译过的内部全局地址,故同一般的通信没有差别, router 到内部主机通讯时,同样要查 NAT 表。
   c TCP 负载重分配( TCP load distributing )和以上两种操作不同,这是 NAT 由外到内的翻译,所以那种以为 WEB server 一定要放置到
   NAT 外部的说法是错误的。
  工作原理:外部主机向虚拟主机(定义为内部全局地址)通讯, NAT router 接受外部主机的请求并依据 NAT 表建立与内部主机的连接,把内部全局地址(目的地址)翻译成内部局部地址,并转发数据包到内部主机,内部主机接受包并作出响应。 NAT router 再使用内部局部地址和端口查询数据表,根据查询到的外部地址和端口做出响应。
  此时,如果同一主机再做第二个连接, NAT router 将根据 NAT 表将建立与另一虚拟主机的连接,并转发数据。
   d ,处理重叠网络。
  这种方法主要用于两个 intranet 的互连,同样给我们处理两个重叠网络提供了方法。它的实现要求 DNS server 的支持(用于区别两个不同的主机)。
   1 ,主机 A 要求向主机 C 建立连接,先象 DNS server 做地址查询。
   2 NAT router 截获 DNS 的响应,如果地址有重叠,将翻译返回的地址。它将创建一个 simply entry 把重叠的外部全局地址(目的地址)翻译成外部局部地址。
   3 ,路由器转发 DNS 响应到主机 A ,它已经把主机 C 的地址(外部全局地址)翻译成外部局部地址。
   4 ,当路由器接受到主机 C 的数据包时,它将建立内部局部、全局,外部全局、局部地址间的转换,主机 A 将由内部局部地址(源地址)翻译成内部全局地址,主机 C 将由外部全局地址(目的地址)翻译成外部局部地址。
   5 ,主机 C 接受数据包并继续通讯。
   NAT 的具体配置和校验不再叙述
  测试题目:
   1 ,请问 NAT 实现四种功能时查询的 NAT 表格是否相同,如果不同,说出它们的区别。
   2 ,在使用动态地址翻译时,要使用 ACL ,请问标准的和扩展的 ACL 都可以使用吗?
   3 ,在配置 NAT 后,所有数据包的交换可以走 fast-switch 吗?
   4 ,如果 NAT router 没有在 NAT 表格中查询到 NAT 地址影射,它如何处理发自内部主机的数据包?
   5 NAT 操作时,由外到内和由外到内的翻译是否相同?
   6 ,我们是否可以将我们的 WEB SERVER 放置到配置了 NAT router 后的 LAN 里?
   7 ,使用 simply entry 的是 NAT 的哪种操作方式?
   8 ,在哪种操作中更换 IP 数据包的目的地址,又在实现什么功能时更改源地址? 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值