NATPT协议转换网关的设计与实现Word下载.docx
- 文档编号:13750824
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:11
- 大小:70.61KB
NATPT协议转换网关的设计与实现Word下载.docx
《NATPT协议转换网关的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《NATPT协议转换网关的设计与实现Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
(南京陆军指挥学院军事训练与管理系,南京210045)
囊薹:
介绍NAT-PT的技术原理,给出NAT-PT协议转换网关的概念和系统结构。
根据RFC2766文档和RFC2765文档的相关说明,参照Linux内核关于IPv4/IPv6网络实现部分的源代码,设计并实现NAT-PT网关应用程序。
该程序由主体模块、应用层网关模块、网络地址
转换模块和协议转换模块组成。
关t词:
NAT-PT协议转换网关;
NAT-PT网关应用程序;
Linux内核
Designand
ImplementationofNAT-PTProtocolTranslationGateway
LISui-yi
(Departn帖ntofMilitaryTminingandManagement。
NanjingArmyCommandCollege,Nanjing210045)
IAbstractlThispaperintroducesNAT-PT’Stechnologyprinciple,depictstheconceptofNAT-PTprotocoltranslationgatewayanditssystem
framework.According
to
RFC2766documentandRFC2765document,andreferring
sour∞codesabouttherealizationofIPv4/IPv6networkin
ofmainmodel,applicationlevelgatewaymodel
Linuxkernel,itdesignsandimplementsNAT-PTgatewayapplicationprogram,whichis.composed
networkaddresstranslationmodelandprotocoltranslationmodel.
[Keywords]NAT-PTprotocoltranslationgateway;
NAT-PTgatewayapplicati彻program;
Linuxkernel
本文研究NAT-PT协议转换网关,探讨如何在IPv4向iPv611-2]过渡的过程中构建下一代路由器。
在不改变原有网络节点的情况下,实现了IPv4网络与IPv6网络的互通。
l
(1)IPv4,IPvzu[1l报头之间的转换。
在IPv4中需要根据报头标志字段判断数据包在何处分片。
而在IPv6中数据包的分片在主机上完成。
因此,如果在数据传输时,IPv4的数据包发生分片,那么进行IPv4/IPv6报头转换处理时,就需要在IPv6报头后加上分片扩展头。
(2)ICMPv4/ICMPv6121之闻的转换。
IcMP协议主要负责为路由器或主机提供路径信息、路由可达信息以及报告传输过程中出现的错误信息。
在纯IPv4节点和纯IPv6节点之间通信时,需要进行ICMPv4和ICMPv6问的转换。
它们之问的转换较简单,主要内容是重新计算校验和以及对包含错误信息IP报头的转换。
2
NAT-PT技术原理
NAT_PTt3]是用于实现IPv4向IPv6平滑过渡的协议转换
技术。
它通常与SIlT技术14J结合以实现地址、协议的转换,与DNSALG技术结合实现IPv4和IPv6间的域名系统解析或寻址。
NAT-PT由网络地址翻译技术(NetworkAddressTranslation,NAT)和协议翻译技术(ProtocolTranslation,PT)2个部分组成。
NAT技术是IPv4和IPv6间的网络地址转换技术,一般需要设置一个IPv4地址池,当IPv6地址转换成IPv4地址时,从地址池中获取一个IPv4地址,并把IPv6源地址转换成该IPv4地址,提取IPv6目的地址中的主机地址部分作为IPv4目的地址,并重新计算包头的校验和。
把该地址转换记录在地址映射表中。
将IPv4地址转换成IPv6地址时,可以根据地址映射表中的地址转换记录来实现。
NAT技术存在局限性,当IPv4地址池的地址使用完后,其他IPv6节点不能与网络外部的IPv4节点建立会话连接。
因此,研究者提出NAPT(Network
AddressPort
NAT-PT协议转换网关
NAT-PT协议转换网判副又称为NAT-PT翻译两关,一般
被配置在边界路由器上,用来连接IPv4网络和IPv6网络,负责IPv4和IPv6网络地址和协议的翻译工作,实现纯IPv4节点和纯IPv6节点之间的网络通信。
为了保证IPv4网络和IPv6网络间的互连互通,需要在边界路由器上安装IPv4/IPv6双协议栈。
NAT-PT协议转换网关的网络拓扑如图1所示。
NAT-PT协议转换网关的系统结构如图2所示,其中,2个网络设备接口层分别连接IPv4网络和IPv6网络。
在NAT-PT协议转换网关中,使用一个全球可路由的IPv4地址池。
当会话穿越IPv4/IPv6边界路由器时,NA(P)T-PT层根据IPv4地址池中的IPv4地址进行地址翻译和协议转换,并在IPv4/IPv6地址映射表中为每个转换建立相应信息。
IPv4/IPv6协议转换管理层对IPv4/IPv6数据包进行转换、路由等控制管理。
最上面的ALG模块层对数据包负载中包含的IP地址进行转换,作者筒介:
李随意(1980--),男,助教、硕士,主研方向:
嵌入式系
统,计算机网络
Translation)技
术,它允许多个IPv6节点通过一个IPv4地址和IPv4节点进行通信,IPv6节点的TCP/UDP端IZl被转换为合法IPv4地址的TCP/UDP端口。
NAPT解决了NAT无法解决的问题,当预留的IPv4地址耗费完毕时,它能够提供6.3X104个TCP或UDP会话。
但该方法只适用于有端口号的协议类型(如TCEUDP协议)。
盯技术是IPv4和IPv6间的协议转换技术。
它主要根据
IPv4和IPv6在语义上的不同对IP包头的对应字段进行转换,构建新的数据包。
P1r技术基于SlIT协议,在SIlT协议中定义了以下2种转换形式:
收稿日捆:
2008-09-09
E-mall:
flying_wind2008@163.COIn
—127.一
万方数据
ALG与NAT-PT配合使用可以提供对多种应用层(如DNS,FrP)的支持。
圈1
NAT-PT协议转换两关的同络拓扑
DNS-ALG
FTP.ALG
其他高层的ALGTCP/UDP协议IPv4flPv6协}义转换管理
NAfP)T.PT
坤~4
IIPv4nPv6地址映射I
・fPv6
IPv4地址池
网络设备接口层网络设备接口层
啊2NAT-PT协议转挟罔关盼系统结构网络间的会话必须在一个NAT-PT两关上完成,因为它会跟踪它支持的所有会话,并要求进出的数据包通过同一个NAT-PT转换器。
NAT-PT网关允许大量应用程序在纯IPv4节点和纯IPv6节点间进行互操作,是目前实现从IPv4向IPv6过渡的较理想方法。
IPv4网络使用者或IPv6网络使用者通过NAT-PT网关发送或接收数据包时,可以像使用本地网络一样,感觉不到网络间的差异。
3
NAT.PT罔关应用程序的设计与实现
根据文献【3—41的相关说明,参照Linux内核关于
IPv4/IPv6网络实现部分的源代码,设计并实现NAT-PT网关应用程序。
该程序由以下4个模块组成:
(1)主体模块nat-pt.c是NAT-PT的主体程序,它通过初始化数据包过滤器packetfiler来接收IPv4或IPv6的数据包,将经过协议转换处理后的新数据包转发到其他网络上。
它还负责处理ARP(地址解析协议)请求响应以及NeighbourDiscovery(邻居发现协议)的请求响应。
其中,对ARP和
Neighbour
Discovery的处理是为了获取IPv4目的主机和IPv6
目的主机的以太网地址。
(2)网络地址转换模块address_p001.c提供了将IPv4地址转换为IPv6地址的地址转化功能,它使用一个IPv4的地址池,用来在一个会话中实现IPv4与IPv6的地址映射。
(3)协议转换模块protocol—translator.e主要负责将IPv4数据包的IPv4和ICMPv4报头翻译成语义上等价的IPv6数据包的IPv6和ICMPv6报头,反之亦然。
(4)应用层网关模块alg—managenc主要用来判断数据包是否需要交由上层ALG(应用层网关)进行进一步处理,如果
在数据包的载荷中包含IP地址应用,那么必须由ALG进行
特定的地址翻译和协议转换,目前在该模块中主要实现了DNSALG功能。
在上述4个模块中,主体模块nat—pt.c是核心程序,用来检测网卡接口是否有新的数据包到来,若有则通过地址翻译和协议转换,根据数据包的目的地址将转换后的数据包转发到其他网络上。
其他3个模块程序实现具体的功能函数,主体模块nat-pt.c通过调用它们来实现新数据包的地址翻译和协议转换。
~128一
nat.pt.c是在Linux下实现的源程序,需要包含Linux内核的一些头文件-如<net/bpf.h>,<net/if.h>,<neffif_arp.h>,
<netinet/in.h>.<netinet/if_ether.h>,<netinet/icmp6.h>。
<arpa/
inet.11>,<net/route.h>等。
在nat—pt_.global.h头文件中建立了一些nat.pt.c和其他3个模块需要使用的全局数据结构和函数。
例如,数据结构IP_header_info用来存储IPv4和IPv6的报头信息,在nat.pt.c中被经常使用,其格式如下:
struct
IP_header_info,书数据结构IP—header_info的格式+,
{
Network_Source
Network_.souree;
严定义数据包的源网络+/
Network—Destination
Network_destination;
,宰定义数据包的目的网络,/
unsigned
short
Payload_length;
/*IP数据包中载荷的字节长度・/
Packet_Type
Payload_type;
严数据包使用的协议+/
unsignedchar
TTL:
,幸数据包的生存周期+/
StruCt
{structin_addr+Source—address;
in_addr4Destination_address;
}IPv4;
structin6一addr’Source—address;
in6_addr*Destination_address;
lIPv6:
l;
在nat.pt_global.h头文件中声明了宏#define
IPv6一
PREFIX
HOST“fe80:
0000:
0000”用来表示
IPv6网络侧所有主机的地址前缀,这些主机的默认路由器是NAT-PT网关。
nat.pt.c主要以双网卡系统实现,一个网卡(eth0)用来连接IPv4网络,另一个网卡(ethl)用来连接IPv6网络。
nat.pt.c程序实现IPv4与IPv6之间地址翻译和协议转换的步骤如下:
先为IP数据包分配内存缓冲区pBufferlPin和pBufferlPout,为ARP和NeighbourDi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NATPT 协议 转换 网关 设计 实现