NATPT协议转换网关的设计与实现.docx

上传人:b****1 文档编号:828263 上传时间:2022-10-13 格式:DOCX 页数:11 大小:70.61KB
下载 相关 举报
NATPT协议转换网关的设计与实现.docx_第1页
第1页 / 共11页
NATPT协议转换网关的设计与实现.docx_第2页
第2页 / 共11页
NATPT协议转换网关的设计与实现.docx_第3页
第3页 / 共11页
NATPT协议转换网关的设计与实现.docx_第4页
第4页 / 共11页
NATPT协议转换网关的设计与实现.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

NATPT协议转换网关的设计与实现.docx

《NATPT协议转换网关的设计与实现.docx》由会员分享,可在线阅读,更多相关《NATPT协议转换网关的设计与实现.docx(11页珍藏版)》请在冰豆网上搜索。

NATPT协议转换网关的设计与实现.docx

NATPT协议转换网关的设计与实现

第35卷场互35

第6期

No.6

文章维号t

计算机工程

ComputerEngineering

1000--3428(2009)06--0127----03

2009年3月March

文簟标识码l

2009

・网络与通信・

中田分类号lTP393.02

NAT-PT协议转换网关的设计与实现

李随意

(南京陆军指挥学院军事训练与管理系,南京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

to

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网络的互通。

(1)IPv4,IPvzu[1l报头之间的转换。

在IPv4中需要根据报头标志字段判断数据包在何处分片。

而在IPv6中数据包的分片在主机上完成。

因此,如果在数据传输时,IPv4的数据包发生分片,那么进行IPv4/IPv6报头转换处理时,就需要在IPv6报头后加上分片扩展头。

(2)ICMPv4/ICMPv6121之闻的转换。

IcMP协议主要负责为路由器或主机提供路径信息、路由可达信息以及报告传输过程中出现的错误信息。

在纯IPv4节点和纯IPv6节点之间通信时,需要进行ICMPv4和ICMPv6问的转换。

它们之问的转换较简单,主要内容是重新计算校验和以及对包含错误信息IP报头的转换。

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网关发送或接收数据包时,可以像使用本地网络一样,感觉不到网络间的差异。

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;struct

in_addr4Destination_address;

}IPv4;

struct

structin6一addr’Source—address;struct

in6_addr*Destination_address;

lIPv6:

l;

在nat.pt_global.h头文件中声明了宏#define

IPv6一

PREFIX

HOST“fe80:

0000:

0000:

0000:

0000:

0000”用来表示

IPv6网络侧所有主机的地址前缀,这些主机的默认路由器是NAT-PT网关。

nat.pt.c主要以双网卡系统实现,一个网卡(eth0)用来连接IPv4网络,另一个网卡(ethl)用来连接IPv6网络。

nat.pt.c程序实现IPv4与IPv6之间地址翻译和协议转换的步骤如下:

先为IP数据包分配内存缓冲区pBufferlPin和pBufferlPout,为ARP和NeighbourDi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1