详解:NAT原理及在VxWorks上的实现.doc

详解:NAT原理及在VxWorks上的实现.doc

ID:28142787

大小:26.50 KB

页数:5页

时间:2018-12-08

详解:NAT原理及在VxWorks上的实现.doc_第1页
详解:NAT原理及在VxWorks上的实现.doc_第2页
详解:NAT原理及在VxWorks上的实现.doc_第3页
详解:NAT原理及在VxWorks上的实现.doc_第4页
详解:NAT原理及在VxWorks上的实现.doc_第5页
资源描述:

《详解:NAT原理及在VxWorks上的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、详解:NAT原理及在VxWorks上的实现  Internet的最初设计,并没有考虑到需要支持目前这样庞大的互联网,因此在IPv4的设计当中,IP地址仅使用了32bit来标识网络中的一个节点设备,虽然这很好地解决了IP数据报的对齐问题,但随着Internet的迅猛发展,加上一些不合理的地址分配方式,目前IP地址已严重缺乏,IP地址短缺已成为目前Internet所面临的最大问题之一。  为了节约IP地址资源,IETF抛弃了传统的地址分类方式(把IP地址空间人为地划分为A、B、C、D类地址的方式)。开始使用在RFC1918中指定的CIDR(

2、ClasslessInter-DomainRouTIng)。同时为了解决IP地址耗损的问题,在RFC1631中提出了使用NAT来解决共用IP地址访问Internet的问题。  1 NAT概况  NAT是把一个网络中使用的IP地址翻译成能被另一个网络识别的IP地址。一个网络被指定为内部网络,另一个为外部网络。通常,一个公司把自己的本地内部网络地址映射到一个或多个全局外部IP地址,并把收到的包中的全局IP地址解释成本地IP地址。这也有助于安全,因为每个出去和进来的请求都必须经过一个翻译过程,这是一个认证请求或把它与以前请求匹配的过程。  N

3、AT包含在路由器中,通常也是防火墙的一部分。网络管理员创建一个NAT表,用它来实现全局到本地和本地到全局地址的映射。NAT也可以和策略利用路由一起使用。NAT可以静态定义,也可以根据IP地址池动态进行。  NAT的描述详见RFC1631。它讨论了NAT与CIDR的关系,这是一个解决IP地址耗尽的方法。NAT通过区别公共IP地址和私有IP地址而减少了对公共IP地址的需求。CIDR把公共IP地址聚集在一起,减少了IP地址的浪费。  2 NAT原理  在传统的标准的TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说

4、的存储转发,路由器并不会对转发的数据包进行修改,比如对于以太网接口,路由器除了将源MAC地址换成自己的MAC地址以外,路由器不会对转发的数据包做任何修改。NAT(NetworkAddressTranslate,网络地址翻译)恰恰是出于某种特殊需要而对数据包的源IP地址、目的IP地址、源端口、目的端口进行改写的操作。  从原理的角度可以将NAT分成了两种类型,即源NAT(SNAT)和目的NAT(DNAT),顾名思义,所谓SNAT就是改变转发数据包的源地址,所谓DNAT就是改变转发数据包的目的地址。  3 NAT的VxWorks实现  3.

5、1 VxWorks的底层接口概况    3.1.1 VxWorksMUX接口层  在VxWorks中,TCP/IP协议栈使用MUX接口去和数据链路层通信,MUX接口的目的是隔离数据链路层和网络层。MUX接口之上是网络协议层,比如TCP/IP、MUX_PROTO_OUTPUT、MUX_PROTO_SNARF等协议,在MUX之下为网络硬件的驱动程序。MUX接口层提供一套接口去完成协议和驱动注册,协议和驱动之间数据接收、发送,MulTIcast地址访问,MUXioctl等工作。整个层次结构如图1所示。    3.1.2 VxWorks中对IP

6、数据包的截获  要在VxWorks中实现NAT,必须实现两个基本操作:IP数据包的截获与IP数据包的伪装处理。  对于VxWorks协议栈来讲,NAT的存在是透明的。所以,要实现NAT的功能,必须在VxWorks网络协议栈处理数据包之前截获数据。要实现这一点,VxWorks为我们提供了两类钩子函数,截获以太帧的EtherHook和截获IP数据包的IpFilterHook。  其中EtherHook又包括EtherInputHook和EtherOutputHook,分别用来截获接收和发送的以太帧。用户可以通过EtherInputHookA

7、dd和EtherOutputHookAdd来分别进行安装。  而IpFilterHook提供对IP数据包的截获,它只对应一个钩子函数,用IpFilterHookAdd来进行安装。当收到一个IP数据包的时候,IpFilterHook会被自动调用,从而达到对IP数据包截获的目的。  对比两种接口,EtherInputHookAdd将调用MuxBind去添加一个MUX_PROTO_SNARF协议,这样可以得到进入MUX接口层的所有数据包。而由IpFilterHookAdd安装的IpFilterHook,不属于MUX接口层,仅仅用来截获IP数据

8、包,而不会接收到非IP数据包。  鉴于以上的区别,我们使用IpFilterHookAdd函数安装的IpFilterHook来截获IP数据包比较合适,参见图2。  3.2 NAT伪装策略    3.2.1 网

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

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

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