资料介绍
嵌入式系统论文
在VxWorks下实现NAT/NAPT的方法
摘要:介绍NAT、NAPT的基本概念和工作原理;结合VxWorks的网络协议栈,描述一种利
用VxWorks操作系统提供的钩子函数来开发实现NAT和NAPT的方法。
关键词:NAT NAPT 钩子函数 网络协议栈 截获 转换 校验和
引言
近年来,随着Internet的迅猛发展,连入Internet的主机数量成倍增长。由于最初设
计Internet的时候并没有考虑到需要支持这么大的规模,因而Internet使用的Ipv4协议
中IP地址的长度选择了32位,它可以使IP包的格式很好地对齐;但是,目前IP地址的短
缺已经成为Internet面临的最大问题之一。
为了解决IP地址短缺的问题,人们提出了许多解决方案,nternet能够支持到新一代
IP协议Ipv6的出台。在众多的解决方案中,网络地址转换NAT(Network Address
Translation)技术提供了一种完全将私有网和公共网隔离的方法,从而得到了广泛的应
用。
图1 NAT工作原理示意图
1 NAT技术
NAT技术的基本功能就是,用1个或几个IP地址来实现1个私有网中的所有主机和公共
网中主机的IP通信。NAT技术可为TCP、UDP以及ICMP数据包提供透明转发。
1.1 NAT工作原理
NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将I
P包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如图1所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共
IP,为202.204.65.2;私有网络端口的IP地址是保留地址,为192.168.1.1。私有网中的
主机192.168.1.2向公共网中的主机166.111.80.200发送了1个