首页 NAT是将IP地址从一组地址映射到另一组地址

NAT是将IP地址从一组地址映射到另一组地址

举报
开通vip

NAT是将IP地址从一组地址映射到另一组地址NAT是将IP地址从一组地址映射到另一组地址 Traditional NAT Basic NAT是将IP地址从一组地址映射到另一组地址,而对终端用户透明的一种方法。 网络地址端口转换(NAPT)是将多个网络地址和端口转换为一个地址和端口的方法。 以上两种操作都被认为是传统NAT,提供私有地址域到外部地址域的连接。 采用地址转换的局限性在于:属于同一个会话的请求和响应都必须经过同一个NAT。如果一个私有网络有两个NAT来加强网络的健壮性时,如果一个NAT坏了,在会话从一个NAT转到另一个NAT时,会出现暂时会话失败...

NAT是将IP地址从一组地址映射到另一组地址
NAT是将IP地址从一组地址映射到另一组地址 Traditional NAT Basic NAT是将IP地址从一组地址映射到另一组地址,而对终端用户透明的一种方法。 网络地址端口转换(NAPT)是将多个网络地址和端口转换为一个地址和端口的方法。 以上两种操作都被认为是传统NAT,提供私有地址域到外部地址域的连接。 采用地址转换的局限性在于:属于同一个会话的请求和响应都必须经过同一个NAT。如果一个私有网络有两个NAT来加强网络的健壮性时,如果一个NAT坏了,在会话从一个NAT转到另一个NAT时,会出现暂时会话失败现象,因此需要采取 措施 《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施 使得两个NAT保持相同的会话信息。 地址转换是独立于应用的,通常需要与ALGs (application specific gateways)相互配合来监视净荷并对其作响应的转换。FTP是NAT上最流行的ALG,需要ALG干预的应用不能对净荷进行加密编码,除非ALG可以对封装的净荷解码。但是这种方法不能保证端到端的安全性,如对IPSec。 传统NAT允许私有网络中的主机与外部网络中的主机透明传输数据。在传统NAT中,会话流是单向的,只是从私有网络向外部网络传输数据。 基本NAT(basic NAT)和NAPT是传统NAT的两个变种。在基本NAT中,转换仅限于IP地址,而在NAPT中,转换包括IP地址和端口。如TCP/UDP端口或ICMP请求ID等。 1. 基本NAT 基本NAT的操作如下:私有网络中的主机地址的集合被映射到外部网中的全球唯一地址的一个子集中以实现私有网络与外部网络间的通信。如果私有网络中的节点数小于或等于全局地址集合中的地址数,可以保证每个内部地址都可以唯一的被映射到一个外部地址。否则内部网中同时访问外部网的主机数受限于全局地址集合中的地址数。 2. NAPT 当一个私有网络通过广域链路与服务商相连时,私有网络的出口路由器需要有一个全球唯一有效的IP地址,而在私有网内部采用保留IP地址,内部地址只在本地有效。在这种情况下,内部网可以采用NAPT来提供内部网访问外部的机制。NAPT将把(本地IP地址,本地TU端口号)映射到(注册IP地址,分配的TU端口号)。 如上图,stub A采用A类保留地址10.0.0.0/8,stub A广域网接口分配C类地址块138.76.28.4。 当stub A主机10.0.0.1向主机138.76.29.7发送telnet数据包时,它采用全球唯一IP地址138.76.29.7作为目的IP地址,并将包发到它的首选路由器。经过NAPT转换,NAPT将源IP头和TCP头中的源IP地址10.0.0.10和源TCP端口号3017转换为全球唯一的IP地址138.76.28.4和一个唯一分配的端口号,如1024。 在这种过程中,只允许建立TCP/UDP会话,并且会话 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 由内部主机发起。然而有些服务如DNS,外部主机要求对内部主机进行访问。可以通过今天配置TU端口服务来定向访问内部主机。 除TCP/UDP会话,ICMP消息,NAPT路由器还需要监视重定向类型消息。ICMP询问类型包的转换类似于TCP/UDP包,ICMP消息头中的标志域被唯一的映射到注册IP地址的询问标志。ICMP消息中的标志由发送者设置,在返回过程中,该标志应保持不变。因此(本地IP地址,本地ICMP询问标志)映射为(注册IP地址,分配的询问标志)。 在NAPT过程中,注册IP地址和端路由器(stub router)的广域网地址相同。路由器需要分辨TCP、UDP、和ICMP询问会话是由内部主机发起的还是外部主机发起的。所有进入的会话都将被定向到NAT路由器。除非目标服务端口被静态映射到内部网的不同节点。 3. 会话的转换阶段 a) 地址绑定 对基本NAT,当一个私有主机发起一个会话时,一个私有地址与一个外部地址绑定。 该主机后来的会话都将采用相同的IP地址来绑定。 对NAPT,多个私有地址映射到一个外部地址,因此需要将(私有地址,私有TU端口) 和(分配的地址,分配的TU端口)绑定。 当一个内部主机发起多个会话时,对一对(私有地址,私有端口),可以采用一个绑定, 所有属于该地址-端口对的会话都采用相同的绑定。 b) 地址查找和转换 在地址绑定之后,需要为每个绑定维护一个软状态。 c) 地址去绑定 当一个地址对(地址,TU端口)的最后一个会话结束时,绑定也将终止。 4. 包转换 a) IP、TCP、UDP和ICMP头操作 在基本NAT模式中,每个包的IP头都会被修改,这些修改包括:IP地址(对出IP包为 源IP地址,对入IP地址为目的IP地址)和IP校验和。 对TCP和UDP会话,修改必须包括TCP/UDP头部的校验和,因为TCP/UDP校验和 包括源、目的IP地址。一种例外是:如果UDP校验和为0,则不应修改校验和。对ICMP 询问包,不需要对ICMP头作改动,因为ICMP头校验和不包括IP地址。 在NAPT模式中,IP头的修改类似于基本NAT模式。对TCP/UDP会话,修改还包括 TCP/UDP头的TU端口。对ICMP询问包,需要修改其头部的询问标志(query ID)和ICMP 校验和。私有主机询问ID必须替换为分配的ID,同时,ICMP头校验和要做相应改动。 b) 校验和调整 NAT的修改是针对每个包的,因而是一项费时的工作,因为他们涉及一个或多个校验 和的修改,而不仅仅是一个域的修改。幸运的是,已经有一个简单而高效的算法来对 IP、TCP、UDP、ICMP头校验和作调整。算法如下: void checksumadjust(unsigned char *chksum, unsigned char *optr, int olen, unsigned char *nptr, int nlen) /* assuming: unsigned char is 8 bits, long is 32 bits. - chksum points to the chksum in the packet - optr points to the old data in the packet - nptr points to the new data in the packet */ { long x, old, new; x=chksum[0]*256+chksum[1]; x=~x & 0xFFFF; while (olen) { old=optr[0]*256+optr[1]; optr+=2; x-=old & 0xffff; if (x<=0) { x--; x&=0xffff; } olen-=2; } while (nlen) { new=nptr[0]*256+nptr[1]; nptr+=2; x+=new & 0xffff; if (x & 0x10000) { x++; x&=0xffff; } nlen-=2; } x=~x & 0xFFFF; chksum[0]=x/256; chksum[1]=x & 0xff; } c) ICMP错误包修改 ICMP错误消息的改变包括:IP和外层的ICMP头的改变,同时需要改变ICMP净荷消 息。 为了使NAT对终端主机透明,ICMP错误消息的净荷中的IP地址是嵌入在IP头中的, 需要对IP地址进行修改,从而影响了ICMP错误消息净荷。嵌入在IP头中的校验和需 要修改,因而ICMP头校验和必须修改以反应净荷的改变。 在NAPT建立中,如果嵌入在ICMP中的IP消息恰好是TCP、UDP或ICMP询问包,就需要将TCP、UDP和ICMP询问包头中的TU端口号作适当修改。 最后,ICMP包中的IP头需要做修改。 d) 对FTP的支持 作为最流行的应用之一,FTP需要采用应用层网关ALG来对每个会话进行监控以保证每个会话参数。FTP NAT是NAT实现的一部分。 FTP ALG要求建立一个表来 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 源端口或目的端口的序列号和应答号。每个表现应包含:源地址、目的地址、源端口号、目的端口号、序列号的δ值、时间戳等。只有出现FTP PORT命令或PASV响应时,才会创建新的表项。序列号的δ值对每个FTP PORT命令和PASV响应可能会增加或减小。对外出包,序列号增加一个δ值,对进入包,响应号减小一个δ值。 对基本NAT,FTP净荷转换仅限于私有地址和他们的分配的外部地址。对NAPT,转换必须包括TCP端口号字节。 e) DNS的支持 内部网中的DNS服务器为内部主机及可能的一些外部主机维护一个名字到IP地址的映射。外部网中的DNS服务器则为外部主机维护一个名字到IP地址的映射,并不为任何内部主机提供服务。如果私有网络没有内部DNS服务器,所有的DNS请求都被定向到外部DNS服务器,实现对外部主机的查找。 f) IP选项处理 带IP路由选项的IP数据报,严格源路由或松散源路由涉及采用给定路由的中间路由器。一个NAT中间路由器可能不支持这些选项或者对这些选项不进行转换。该操作的结果是:端到端的源路由可能将一些私有地址暴露无疑。 5. 其它问题 a) 本地和全局地址的划分 私有地址与外部地址必须无重叠。 b) 私有地址空间的建议 RFC1918给出了私有地址范围,规定10.0.0.0/8,172.16.0.0/12,192.168.0.0/16为私有地址空间。 c) 路由交叉NAT(Routing across NAT) 运行NAT的路由器不能将私有网中的地址通告到外部网中,然而外部网中的可以通过NAT路由器通告到内部网中。 典型地,一个NAT端路由器将有一条配置的静态路由,所有外部业务都通过该静态路由转发。而在服务提供商也采用静态配置来向内部网传送业务。 d) 从基本NAT向NAPT的切换。 在基本NAT建立中,当内部主机数超过外部IP地址数时,会出现IP地址不够用的情 况。在这种情况下,可以通过从基本NAT向NAPT切换的方式很容易解决问题。 6. NAT的局限性 a) 秘密和安全性 传统NAT可以看作为内部网用户提供了一种保密机制,由于采用单向会话机制,会话 只能由内部网用户发起,外部网对内部网不可见。 当然,同时也带来另一问题。当内部网用户恶意攻击外部主机时,将很难对用户进行追 查。这同时也带来安全隐患。 b) ARP对LAN接口NAT映射全球地址的反应 NAT只能在边缘路由器上使用。当NAT路由器与外部网相连的是一个LAN时,用于 映射的部分或全部IP地址属于同一个网段,此时NAT路由器需要提供ARP支持。对 基本NAT,NAT路由器必须对自己的MAC地址作出反应,否则将无法进行回应。 对NAPT是不会出现以上情况的,除非用于映射的IP地址不是NAT路由器的接口地址。 c) NAPT建立中外出TCP/UDP分段包的转换 在NAPT建立中外出TCP/UDP分段包的转换是注定要失败的。其原因是:只有第一段 包括TCP/UDP头,而后续的段都不含TCP/UDP头,因而无法判断后续段属于哪一个 会话流。比如,如果两个主机同时向一个主机发送信息,当都被分段时,对后来的段则 无法判断发来的数据属于哪一个会话。 7. 当前实现 以上NAT有一些商业实现。Linux发布的“IP masquerade”就包含NAT部分,FreeBSD包含NAPT的实现。
本文档为【NAT是将IP地址从一组地址映射到另一组地址】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_079973
暂无简介~
格式:doc
大小:38KB
软件:Word
页数:9
分类:
上传时间:2017-12-02
浏览量:39