在vxworks下实现nat-napt的方法

在vxworks下实现nat-napt的方法

ID:21418830

大小:51.50 KB

页数:3页

时间:2018-10-21

在vxworks下实现nat-napt的方法_第1页
在vxworks下实现nat-napt的方法_第2页
在vxworks下实现nat-napt的方法_第3页
资源描述:

《在vxworks下实现nat-napt的方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、在VxWorks下实现NAT/NAPT的方法

2、第1摘要:介绍NAT、NAPT的基本概念和工作原理;结合VxsoNormal>关键词:NATNAPT钩子函数网络协议栈截获转换校验和引言近年来,随着Inter的迅猛发展,连入Inter的主机数量成倍增长。由于最初设计Inter的时候并没有考虑到需要支持这么大的规模,因而Inter使用的Ipv4协议中IP地址的长度选择了32位,它可以使IP包的格式很好地对齐;但是,目前IP地址的短缺已经成为Inter面临的最大问题之一。为了解决IP地址短缺的问题,人们提出了许多解决方案,nter能够支持到新一代IP协议Ipv6的出台。在众多的解决

3、方案中,网络地址转换NAT(NetBlk、clBlk和Cluster。其中,Cluster保存的是实际的数据,mBlk和clBlk中保存的信息是用来管理Cluster中保存的数据的。为了满足传输不同大小数据的需要,Cluster是一些大小不同的内存块;缺省情况下,VxBlk中保存的只是指向数据的指针,因此,网络协议栈不同层之间的数据传输可以避免数据拷贝。此外,对于分布在多个Cluster中的数据,可以通过mBlk把它们链在一起,并且只需要传递链首的mBlk就可以了。VxBlk结构中,有2个指向其它mBlk的指针:1个指向同一个包的下一个mBlk;另一个指向下一个包的链首的m

4、Blk。ClBlk指向的就是实际存储数据的Cluster。3向VxWorks网络协议栈加入NAT为了向VxWorks网络协议栈中加入NAT,必须实现2个基本操作:IP包的截获得IP包的处理。3.1VxWorks下IP包的截获VxWorks网络协议栈在物理驱动层和IP层上分别提供了两类钩子函数:EtherHook和IpFilterHook。利用这两类钩子函数,可以实现对IP包的截获。(1)EtherHookEtherHook提供对以太帧的截获功能。它包括2个钩子函数:以太帧接收钩子函数EtherInputHook和以太帧发送钩子函数EtherOutPutHook。它们分别用函

5、数EtherInputHookAdd和EtherOutputHookAdd安装。安装了这些钩子函数后,每当有以太帧被接收到时,函数EtherInputHook就会在该以太帧被提交给上层处理前被自动调用;每当有以太帧被发送时,函数EtherOutputHook会在该以太帧被发送前被自动调用。通过截获以太帖,可以达到截获IP包的目的。(2)IpFilterHookIpFilterHook提供对IP包的截获功能。它只对应1个钩子函数,用函数ipFilterHookAdd就可以完成IpFilterHook的安装。安装了IpFilterHook后,每当有IP包被接收到时,函数IpFi

6、lterHook就会被自动调用,从而实现对IP包的截获。3.2NAT过程中IP包的处理利用钩子函数完成IP包的截获后,就可以根据需要对IP包进行处理。首先,可以从IP包中剥离出IP头,根据IP头中的“协议”域可以判断出是UDP包还是TCP包。然后,从IP包中剥离出UDP头或TCP头,利用IP头和UDP头或者TCP头中的相关信息,就可以根据需要进行IP地址和Port的转换处理。NAT一般采用1个映射表来实现IP地址和Port的转换。对于截获到的IP包,通过比较IP包的目的IP、目的Port、源IP、源Port和NAT映射表中的相应表现,对IP包的目的IP、目的Port、源IP

7、、源Port进行转换。典型的NAT映射表如图5所示。(1)处理由内到外的IP包由内到外的IP包指的是私有网主机通过NAT发送到公共网主机的IP包。它的源IP是私有IP,目的IP是公共IP。当截获到1个由内到外的IP包时,NAT首先以IP包的源IP和源Port作为RealSrcIP和RealSrcPort的匹配条件,在映射表中进行搜索。如果找到1个对应的表项,就用表项的NATIP和NATPort替换IP包的源IP和源Port,而保持IP包的目的IP和目的Port不变。然后,重新计算TCP或UDP的校验和,就可把IP包归还给VxWorks网络协议栈。如果在映射表中没有搜索到对应

8、的表项,NAT就会向映射表中添加1个新的表现。该表项中的RealSrcIP和RealSrcPort用IP包的源IP和源Port来填充;NATPort用NAT分配的1个空闲Port填充。然后,根据新增加的表项,按照上面相同的步骤完成对IP包的处理。后续相同的IP包也都用这个表项来处理。(2)处理由外到内的IP包由外到内的IP包指的是从公共网通过NAT发送到私有用的IP包。它的源IP是公共IP,目的IP是NAT的公共IP。当截获到1个由外到内的IP包时,NAT就以IP包的目的IP和目的Port作为NATIP和NATPo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。