在VxWorks下实现NAT/NAPT的方法
。然后,根据新增加的表项,按照上面相同的步骤完成对IP包的处理。后续相同的IP包也都用这个表项来处理。
(2)处理由外到内的IP包
由外到内的IP包指的是从公共网通过NAT发送到私有用的IP包。它的源IP是公共IP,目的IP是NAT的公共IP。
当截获到1个由外到内的IP包时,NAT就以
IP包的目的IP和目的Port作为NATIP和NATPort的匹配条件,在映射表中进行搜索。如果找到1个对应的表项,就用表项的RealSrcIP和RealSrcPort来替换IP包的目的IP和目的Port,而保持IP包的源IP和源Port不变。然后,重新计算TCP或UDP的校验和,就可把IP包归还给VxWorks网络协议栈。
如果在映射表中没有搜索到对应的表项,则对IP包不作任何处理,直接归还给VxWorks网络协议栈。
(3)NAT映射表的配置
作为NAT完成IP包中IP和Port转换的依据,NAT映射表的管理关系到NAT的功能和性能。NAT映射表的配置可以分为2部分:静态配置部分和动态配置部分。
静态配置部分主要用于NATIP、NATPort和私有IP、私有Port的映射关系可以预见的应用,例如UDP通信和TCPServer运行在私网中某个主机等情况。NAT映射表静态配置部分可以在NAT运行前根据规划直接完成配置。
动态配置部分主要用于NATIP、NATPort和私有IP、私有Port的映射关系不可预见的应用,例如在私有网中某个主机上运行TCPClient来与公共网中某个主机上的TCPServer建立连接进行通信。因这种情况下,私有网主机使用的Port是动态分配的。为了实现需要NATIP、NATPort和私有IP、私有Port的转换,必须动态配置NAT映射表。相对于静态配置部分而言,动态配置部分的数据结构、数据组织和搜索算法的设计和实现的难度要大得多,关键是要实现一个高效的搜索算法。
《在VxWorks下实现NAT/NAPT的方法(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/144670.html
(2)处理由外到内的IP包
由外到内的IP包指的是从公共网通过NAT发送到私有用的IP包。它的源IP是公共IP,目的IP是NAT的公共IP。
当截获到1个由外到内的IP包时,NAT就以
IP包的目的IP和目的Port作为NATIP和NATPort的匹配条件,在映射表中进行搜索。如果找到1个对应的表项,就用表项的RealSrcIP和RealSrcPort来替换IP包的目的IP和目的Port,而保持IP包的源IP和源Port不变。然后,重新计算TCP或UDP的校验和,就可把IP包归还给VxWorks网络协议栈。
如果在映射表中没有搜索到对应的表项,则对IP包不作任何处理,直接归还给VxWorks网络协议栈。
(3)NAT映射表的配置
作为NAT完成IP包中IP和Port转换的依据,NAT映射表的管理关系到NAT的功能和性能。NAT映射表的配置可以分为2部分:静态配置部分和动态配置部分。
静态配置部分主要用于NATIP、NATPort和私有IP、私有Port的映射关系可以预见的应用,例如UDP通信和TCPServer运行在私网中某个主机等情况。NAT映射表静态配置部分可以在NAT运行前根据规划直接完成配置。
动态配置部分主要用于NATIP、NATPort和私有IP、私有Port的映射关系不可预见的应用,例如在私有网中某个主机上运行TCPClient来与公共网中某个主机上的TCPServer建立连接进行通信。因这种情况下,私有网主机使用的Port是动态分配的。为了实现需要NATIP、NATPort和私有IP、私有Port的转换,必须动态配置NAT映射表。相对于静态配置部分而言,动态配置部分的数据结构、数据组织和搜索算法的设计和实现的难度要大得多,关键是要实现一个高效的搜索算法。
《在VxWorks下实现NAT/NAPT的方法(第3页)》