基于STUN协议的NAT路由器穿越算法设计与实现

基于STUN协议的NAT路由器穿越算法设计与实现刘胜辉1,刘油锤2(1.哈尔滨理工大学 软件学院, 黑龙江 哈尔滨 150080;2.哈尔滨理工大学 计算机科学与技术学院,黑龙江 哈尔滨 150080)2009-06-11摘 要: NAT穿越是多媒体传输技术中的一个重要研究课题,STUN解决方案能解决部分NAT的穿越问题,但是还有一定的弊端。在STUN技术的基础上,介绍了NAT路由器的识别方法,详细分析并设计一种解决NAT路由器穿越问题的算法,并对处于不同NAT路由器环境下的直接通信给出一种解决方案。既提高了NAT路由器的识别效率,也改善了通信质量。

关键词: NAT;STUN;直接通信;穿越

NAT是为了解决网络IP地址资源紧缺而出现的一种技术,由于其具有隐藏内网IP的功能,增加了内网的网络安全性,所以得到了广泛的应用。但是,由于外网主机不能首先发起对处于NAT后主机的访问,特别是处于两个内网主机不能直接进行通信,这对一些应用程序的部署造成一定的困难。比如说网络视频会议系统和VoIP系统。为了解决这个问题,也就是处于内网的主机之间能够穿越它们之间的NAT建立直接通信,已经提出了许多方法,STUN(Simple Traversal of UDP Through NetWork Address Translators)技术就是其中比较重要的一种解决方法,并得到了广泛的应用。

本文主要是基于STUN协议,对NAT路由器识别问题进行研究,对NAT类型的判断方法做了改进,详细分析并提出一种算法来解决NAT路由器穿越问题,对处于NAT路由器后的主机设计了直接通信方案。

1 NAT(Network Address Translator) 介绍

1.1 NAT简述

NAT即网络地址转换,是一个IETF(Internet Engineering Task Force)标准,它允许一个整体的组织或机构用一个公用的IP地址出现在网络上,归根到底,NAT就是把内部私有的IP地址翻译成公网上合法的IP地址的一种技术。 NAT负责把内部主机的数据包的源地址(私有IP地址)按照一定的规则翻译成合法的、唯一的公网IP地址,源数据包的端口转换成NAT的一个端口,目的IP地址和端口不变,最终数据包经过路由器发送到目的地址。同时,NAT也负责把外部主机返回的数据包的目的地址和端口转换成内网的私有地址和端口,源地址和端口不变。这种变换的本质是在NAT 内部维护着一张转换表,负责由内到外和由外到内的IP地址与端口的转换。

对于视频会议和VoIP软件来说,对位于不同NAT内部的主机通信需要靠服务器来转发完成,这样就会增加服务器的负担。为了解决这种问题,要尽量使位于不同NAT内部的主机建立直接通信,其中,最重要的一点就是要判断出NAT 的类型,然后才能根据NAT的类型,设计出直接通信方案。

1.2 NAT类型

根据STUN协议,把NAT分为以下几种类型

(1) 完全锥形(Full Cone)NAT:所有内部IP地址和端口的请求都被映射到相同的外部地址和端口,任何外部主机都可以通过映射的外部地址向内部主机发送数据包。

(2) 受限锥形(Restricted Cone)NAT:所有从相同内部IP和端口的请求都被映射为相同的外部地址和端口,与Full Cone不同的是,必须是内部主机已经向外部主机发送过数据包,外部主机才能通过IP地址向内部主机发送数据包。

(3) 端口受限锥形(Port Restricted Cone)NAT:和Restricted Cone类似,但是包括对端口的限制,外部主机(IP 地址X,端口P)向内部主机发送数据包当且仅当满足内部主机先前已经向(X,P)发送过数据包。

(4) 对称(Symmetric)NAT:限制最严格的NAT,所有来自同一内部IP地址和端口发送到某一特定目的IP地址和端口的请求,都会映射为同一个目的地址和端口。若同一台内部主机从同一个端口发送数据包,只是目的地址和端口不同,那么映射关系也是不同的。并且,只有曾经收到过内部主机请求的外部主机才能向内部主机发送数据包。

2 NAT路由器

2.1 STUN技术简介

STUN技术能使客户端应用程序发现它和公共互联网之间存在的NAT和防火墙及其类型,还能获得路由器分配给它的公网IP地址和端口号。它主要由三部分组成:STUN客户端、STUN服务器端、NAT路由器。如图1所示。

STUN客户端通过向服务器端发送不同的消息类型,根据服务器端不同的响应来判断客户端IP地址类型,如果是内部网络地址,还可以判断所经过的NAT类型,同时可以得到路由器分配给它的公网IP地址和端口(映射过的)。

STUN服务器端根据客户端不同的动作(客户端发送不同的消息类型)作出不同的处理,可以获得客户端的源地址与端口(映射过得公网IP地址和端口)并返回给客户端。根据客户端发送的消息类型,按照要求用不同的IP地址和端口返回给客户端。

2.2 NAT路由器类型判断

2.2.1 测试方案设计

根据RFC3489提供的解决方案,NAT类型的判断由客户端来完成。设计了下面两种测试方法。

测试1:客户端(IP:A,PORT:A)向服务器(IP:B,PORT:B)发送消息,服务器响应客户端的请求,做出动作,服务器(IP:B,PORT:B)发送Response给客户端(IP:A,PORT:A)。

测试2:客户端(IP:A,PORT:A)向服务器(IP:B,PORT:B)发送消息,服务器(IP:B,PORT:C)发送Response给客户端(IP:A,PORT:A)。

2.2.2 NAT 路由器类型判断

由图2可以得到客户端所处的网络环境有以下几种:

· 阻塞UDP 的防火墙;

·公开的互联网上(有公网IP);

·对称型UDP防火墙;

·完全锥形或受限锥形NAT;

·对称NAT;

·端口受限锥形NAT;

·受限锥形。

2.3 NAT路由器类型判断改进

RFC3489给出了判断NAT路由器类型的解决方案,它需要在公网上部署两台服务器才能对NAT路由器进行判断,这就需要两个IP地址才能完成测试,这在Windows环境下比较难实现,对于当今IP地址比较缺乏的情况下,往往要花费的成本比较大。本文对RFC3489所给的解决方案进行了改进,在同一台服务器上用不同的端口对客户端的消息进行响应,设计出以上的测试方案,来判断出NAT的类型。但是有些情况不能具体识别出固定类型,但是这并不影响后续工作,本文研究目的是为了在客户端之间建立直接联系。所以这种方法还是很有应用价值的。

3 NAT路由器穿越算法设计

3.1 NAT路由器穿越概述

通过以上的分析,很容易看出,对于处于不同网络环境的客户端来说,想进行直接通信,首先需要判断出NAT的类型,根据NAT路由器的类型来决定处于路由器后面的主机双方是否可以进行直接通信。以某个公司的网络为例,公司通过NAT路由器连接到公网上,公司内部通过NAT路由器建立了三个局域网。网络环境(见图1)处于路由器后面的主机双方要直接通信需要有STUN服务器的配合。根据判断的NAT路由器的类型确定路由器后面的双方客户端是否可以建立直接通信。

3.2 NAT路由器穿越算法

根据前面分析,NAT路由器的穿越算法可以描述如下:

(1) 终端A、B分别登录服务器,判断自己所处的网络环境,即各自所处网络中NAT的类型。

(2) 从服务器获得终端B所处的网络NAT的类型,确定是否可以建立直接通信。

(3) 不能建立直接通信的情况,程序直接退出

(4) 对于可以建立直接通信的网络,确定具体的解决方案。有下面几种情况

a.终端A、终端B处于同一网段时,终端A直接向终端B发送Message消息。终端B响应Message消息,回复Message 消息给终端A。

b.对于不同网段,分为两种情况。终端B为对称NAT的情况,终端A首先向终端B发送Message消息,然后终端A 往服务器发送Message2消息。服务器收到Message2消息后,服务器再向终端B发送Message3消息,终端B根据收到的消息类型做出响应,往终端A发送Message消息;对于终端B为非对称NAT的情况,终端A首先向服务器发送Message2消息,然后再发送Message消息给终端B。

(5) 终端A、终端B退出服务器。建立直接通信成功。

在发送消息时,要建立消息来源信息库,如IP地址,端口号,以及映射关系。方便处理消息时使用相关资源。算法流程如图3所示,终端A(图中用A标识) 与终端B(图中用B标识) 建立直接通信,STUN服务器为Server。消息类型有Message、Message 2、Message 3三种消息类型。

这里以终端B所处的NAT类型为对称NAT为例,终端A的IP为172.22.2.9,其公网IP为210.80.43.104,Server 的IP为202.120.58.178,终端B的IP192.168.101.6,终端B的公网IP是222.191.255.68。图4为终端A在与终端B 建立直接通信的时序图。

图4中,只对终端A与终端B处于不同的网段内作了一个分析。对于二者处于同一个网段内的情况,比较容易解决,终端A直接向终端B发送Message 消息即可建立直接通信。

对于终端B处于非对称NAT的情况,解决方案的差别之处就在于发送的消息顺序不一样。非对称NAT的情况下,终端A首先发送Message 2消息和服务器通信,然后在发送Message消息与终端B进行通信。这与对称NAT的情况刚好相反。

为了能够顺利的建立直接通信,在建立直接通信成功后,让客户端双方在相互通信3次,确认直接通信是否成功,在下面的仿真实验中可以体现出来。

有三种情况现在还没有找到比较好的解决办法:双方处于阻碍UDP防火墙的NAT路由器;双方都是对称NAT的防火墙;一方为对称NAT,另一方为端口受限NAT。

3.3 算法仿真结果

对于NAT路由器穿越算法,进行了实验测试,仿真中,发送的消息类型(TRANS,MESSAGE,Message3),客户端实验结果如图5、图6所示。

此外,对于双方客户端处于同一局域网内不同级别的NAT后面理论上是可以直接通信的,但是要取决于最外层的NAT 是否支持Loopback translate功能,也就是内网主机A向内网主机B的最外层NAT外网地址和端口发送数据,最外层的NAT是够能够将数据转发给主机B,如果最外层NAT支持此功能,则A和B可以建立直接通信,否则不能。

4 NAT路由器穿越算法的优缺点

NAT技术的优点决定了它的应用广泛性,但是根据STUN协议来实现NAT路由器的穿越问题往往需要的开销比较大,本文提出了一种比较方便的算法,在不增加成本的基础上能够准确地判断出来NAT路由器的类型,对NAT路由器穿越问题进行了详细的研究、设计。这对于中小型的企业来说,不仅节省了成本预算,而且达到了实际的效果。但是对于有些

公司部署对称NAT路由器,该算法还有一些不足之处,还需要进一步研究,对算法进行改进。

本文对STUN协议提出的NAT识别方法进行了有效地改进,并对NAT路由器的穿越问题进行了详细地研究,并设计出比较合理的算法。提高了效率,节省了成本。并指出了该算法的优点和不足。

参考文献

[1] Rosenberg J, Weinberger J. STUN-Simple Traversal of user Datagram Protocol (UDP) Trough Network Address Translators (NATs). RFC3489, 2003.

[2] Egevang K. The IP Network Address Translator (NAT). RFC1631, 2001.

[3] Hitema C. Short Term NAT Requirements for UDP Based Peer-to-Peer Applications. IETF Draft, 2001.

[4] P Srisuresh, M Holdrege . IP Network Address Translator(NAT) Terminology and Considerations. RFC2663, 1999.

IPsec 穿越NAT 配置

典型配置示例(对应新版本IPsec模块) 3.2.1组网需求: 某企业总部和分部通过两台路由器实现互联,但由于总部需要和分部建立IPsec VPN通道,总部增加了一台新的路由器用于和分部建立VPN之用,但是又不想改变现有的网络环境,所以把新增的路由器直接挂接在核心交换机下面。现网络环境描述如下: ●R2605,R4860都支持IPsec穿越NA T功能 ●总部(PC 1)通过交换机接入到R2605的F0/1口,网关地址为192.168.1.1; ●分部(PC 2)通过交换机接入到分部R2605的F0/1口,网关为172.16.1.1; ●总部的R2605的F0/0通过核心交换机连接到总部出口路由器R4860的G0/1口; ●总部R4860通过G0/0口接入互联网,分部R2605通过F0/0口接入到互联网; 网络管理员希望通过总部的R2605和分部的R2605通过IPsec VPN建立连接。 使用IPsec 穿越NA T功能实现该需求,进行如下配置: ●总部R2605作为NAT inside侧的IPsec设备,R4860作为NAT网关,分部R2622 作为分部的IPsec设备; ●总部R2605和分部R2622作为VPN设备,配置ipsec vpn与对端建立IPsec通道。 ●R4860作为总部的出口路由器配置NAT实现网络地址的转换。 组网图如图1 所示

图1 3.2.2典型实例配置: (1)分部R2605配置 5.01A R1# ! hostname R1 ! crypto isakmp key 0 bdcom address 0.0.0.0 0.0.0.0 //…定义预共享密钥…// crypto isakmp nat keepalive 20 crypto isakmp policy 10 authentication pre-share encryption 3des group 2

华为防火墙NAT配置命令

私网用户通过NAPT方式访问Internet (备注:在这种环境中,外网只能ping通外网口,公网没有写入到内网的路由,所以前提是内网只能ping通外网口,但走不到外网口以外的网络,做了NAT之后,内网可以通外网任何网络,但是外网只能ping到本地内网的外网口。) 本例通过配置NAPT功能,实现对少量公网IP地址的复用,保证公司员工可以正常访问Internet。组网需求 如图1所示,某公司内部网络通过USG9000与Internet相连,USG9000作为公司内网的出口网关。由于该公司拥有的公网IP地址较少(202.169.1.21~202.169.1.25),所以需要利用USG9000的NAPT功能复用公网IP地址,保证员工可以正常访问Internet。 图1 配置私网用户通过NAPT方式访问Internet组网图 配置思路 1.完成设备的基础配置,包括配置接口的IP地址,并将接口加入安全区域。 2.配置安全策略,允许私网指定网段访问Internet。 3.配置NAT地址池和NAT策略,对指定流量进行NAT转换,使私网用户可以使用公网IP 地址访问Internet。 4.配置黑洞路由,防止产生路由环路。

操作步骤 1.配置USG9000的接口IP地址,并将接口加入安全区域。 # 配置接口GigabitEthernet 1/0/1的IP地址。 system-view [USG9000] interface GigabitEthernet 1/0/1 [USG9000-GigabitEthernet1/0/1] ip address 10.1.1.10 24 [USG9000-GigabitEthernet1/0/1] quit # 配置接口GigabitEthernet 1/0/2的IP地址。 [USG9000] interface GigabitEthernet 1/0/2 [USG9000-GigabitEthernet1/0/2] ip address 202.169.1.1 24 [USG9000-GigabitEthernet1/0/2] quit # 将接口GigabitEthernet 1/0/1加入Trust区域。 [USG9000] firewall zone trust [USG9000-zone-trust] add interface GigabitEthernet 1/0/1 [USG9000-zone-trust] quit # 将接口GigabitEthernet 1/0/2加入Untrust区域。 [USG9000] firewall zone untrust [USG9000-zone-untrust] add interface GigabitEthernet 1/0/2 [USG9000-zone-untrust] quit 2.配置安全策略,允许私网网段10.1.1.0/24的用户访问Internet。 3.[USG9000] policy interzone trust untrust outbound 4.[USG9000-policy-interzone-trust-untrust-outbound] policy 1 5.[USG9000-policy-interzone-trust-untrust-outbound-1] policy source 10.1.1.0 0.0.0.255 6.[USG9000-policy-interzone-trust-untrust-outbound-1] action permit 7.[USG9000-policy-interzone-trust-untrust-outbound-1] quit [USG9000-policy-interzone-trust-untrust-outbound] quit

车棚搭建协议

龙阳镇史村小学 车棚搭建等施工协议 发包人:龙阳镇史村小学 承包人: 依照《中华人民共和国合同法》、《中华人民共和国建筑法》及其他有关法律、行政法规,遵循平等、自愿、公平和诚实信用的原则,双方就本工程施工事项协商一致订立本协议。 一、工作内容 搭建教师自行车、电动车停放车棚。 二、工程承包方式 采用包工包料的方式进行。固定单价合同,86.0元/m2,搭建面积以验收实际面积为准。 三、合同工期 2017年3月10日——2017年3月12日 四、工程做法及质量要求: 1、所用材料(10号工字钢,2.5寸柱子,檩条用4乘6钢管,彩 钢瓦0.4mm,板房材料:7.5公分复合板,主体用4乘6钢管搭 建。 2、承包人向发包方保证质量,如出现质量问题,承包人负责免费 维修。 3、施工完成后必须清理垃圾,运出校外,确保校园整洁。 4、施工过程中一定按照规范及有关操作规程进行施工,严格按照 发包方确定的施工范围及质量标准进行施工并接受发包方的监 督。

5、工程施工及验收过程中,如发现不符合质量要求,承包方必须 立即进行返工整改,整改合格后再进行验收,发生的费用由承 包方承担。 五、安全管理 工程施工过程中,施工单位必行执行“安全第一,预防为主” 的方针,严格按照安全操作规程进行安全文明施工,对施工中出现的安全隐患及时进行整改。若发生安全事故,一切责任由承包方负责。 六、结算方式 该项目采用固定单价合同,施工完成后必须经学校验收,验收合格后承包方提供合格的发票。款到付清。结算值为:数量×单价的结算方式。 七、质量处罚措 如施工项目不能满足上述质量要求,将视具体情况处以该单项 工程5%到10%的罚款。 八、本协议一式叁份,发包方承包方各持一份,发包方上报教育 局壹份。 九、本协议双方签字或盖章后生效。 发包人:承包人: 2017 年3月10 日

思科NAT配置实例

CISCONAT配置 一、NAT简介 NAT(Network Address Translation)的功能,就是指在一个网络内部,根据需要可以随意自定义的IP地址,而不需要经过申请。在网络内部,各计算机间通过内部的IP地址进行通讯。而当内部的计算机要与外部internet网络进行通讯时,具有NAT功能的设备(比如:路由器)负责将其内部的IP地址转换为合法的IP地址(即经过申请的IP地址)进行通信。 二、NAT 的应用环境: 情况1:一个企业不想让外部网络用户知道自己的网络内部结构,可以通过NAT将内部网络与外部Internet 隔离开,则外部用户根本不知道通过NAT设置的内部IP地址。 情况2:一个企业申请的合法Internet IP地址很少,而内部网络用户很多。可以通过NAT功能实现多个用户同时公用一个合法IP与外部Internet 进行通信。 三、设置NAT所需路由器的硬件配置和软件配置: 设置NAT功能的路由器至少要有一个内部端口(Inside),一个外部端口(Outside)。内部端口连接的网络用户使用的是内部IP地址。内部端口可以为任意一个路由器端口。外部端口连接的是外部的网络,如Internet 。外部端口可以为路由器上的任意端口。 设置NAT功能的路由器的IOS应支持NAT功能(本文事例所用

路由器为Cisco2501,其IOS为11.2版本以上支持NAT功能)。四、关于NAT的几个概念: 内部本地地址(Inside local address):分配给内部网络中的计算机的内部IP地址。 内部合法地址(Inside global address):对外进入IP通信时,代表一个或多个内部本地地址的合法IP地址。需要申请才可取得的IP地址。 五、NAT的设置方法: NAT设置可以分为静态地址转换、动态地址转换、复用动态地址转换。 1、静态地址转换适用的环境 静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。如果内部网络有E-mail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。 静态地址转换基本配置步骤: (1)、在内部本地地址与内部合法地址之间建立静态地址转换。在全局设置状态下输入: Ip nat inside source static 内部本地地址内部合法地址(2)、指定连接网络的内部端口在端口设置状态下输入:ip nat inside (3)、指定连接外部网络的外部端口在端口设置状态下输入:

IPSec的NAT穿越详细介绍

IPSec的NAT穿越详细介绍 1. 前言 IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持有限,AH协议是肯定不能进行NAT的了,这和AH设计的理念是相违背的;ESP协议在NAT环境下最多只能有一个VPN主机能建立VPN通道,无法实现多台机器同时在NAT环境下进行ESP通信。关于IPSec在NAT环境下的需求问题在RFC3715中进行了描述。 NAT穿越(NATTraversal,NAT-T)就是为解决这个问题而提出的,在RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP 头),使之可以在NAT环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec 主机建立VPN通道进行通信。 2. IKE协商使用UDP封装 RFC3947主要描述如何检测是否存在NAT设备,并如何在IKE中协商使用UDP来封装IPSec 数据包。 本帖隐藏的内容 2.1 检测 功能是检测通信中是否存在NAT设备和对方是否支持NAT-T。 正常的IKE协商使用的UDP包的源和目的端口都是500,如果存在NAT设备,大多数情况下该UDP包的源端口部分会改变,只有少数情况不改。接收方如果发现UDP源端口不是500,那可以确定数据是经过了NAT设备。另外,确定NAT的位置也是重要的,在检测对方失效(DPD)时,应该尽量由在NAT设备后面的一方主动进行DPD探测,而从另一方探测有可能会失败。检测对方是否支持NAT-T是通过交换vendor ID载荷来实现的,如果自身支持NAT-T,在IKE 开始交互就要发送这种载荷,载荷内容是“RFC 3947”的MD5值,也就是十六进制的“4a131c81070358455c5728f20e95452f”。 判断是否在NAT设备后面是通过发送NAT-D(NAT-Discovery)载荷来实现的,载荷内容是IP 地址和UDP端口的HASH值,NAT-D载荷格式如下,载荷类型值是20: 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 +---------------+---------------+---------------+---------------+ | Next Payload | RESERVED | Payload length | +---------------+---------------+---------------+---------------+ ~ HASH of the address and port ~ +---------------+---------------+---------------+---------------+ HASH值的计算方法如下,具体HASH是根据协商来确定的: HASH = HASH(CKY-I | CKY-R | IP | Port) CKY-I和CKY-R是协商发起方和响应方的cookie。 协商中双方各自至少要发送两个NAT-D载荷,第一个载荷是对方的地址和端口的HASH,后面的载荷是自己的地址和端口,如果本地有多个地址,则要发送多个载荷,包括所有地址和

Ns2.34上leach协议的完美移植

Ns2.34上leach协议的完美移植 经过几天的不断实验,以及网上各位前辈的帮助,终于成功将leach协议完美移植到ns2.34上,下面是我的安装笔记。 Step1 在ns-2.34的目录下新建一个leach文件夹,将leach.tar.gz放入这个文件夹 Step2 在终端中进入这个目录下,键入tar zxf leach.tar.gz Step3 ①将leach/mit整个目录复制到ns-allinone-2.34/ns-2.34中 ②将leach/mac目录下的https://www.360docs.net/doc/f018298119.html,, mac-sensor.h, https://www.360docs.net/doc/f018298119.html,, mac-sensor-timers.h四个文件复制到ns-allinone-2.34/ns-2.34/mac中 ③将leach/tcl/mobility目录下的四个文件复制到ns-allinone-2.34/ns-2.34/tcl/mobility中 ④将ns-allinone-2.34/ns-2.34/tcl/ex目录下的wireless.tcl重命名为wireless_1.tcl,再将leach/tcl/ex目录下的wireless.tcl复制到ns-allinone-2.34/ns-2.34/tcl/ex中⑤将leach目录下的test,leach_test,package_up三个文件复制到ns-allinone-2.34/ ns-2.34中 Step3 修改文件 ①需要修改的文件有: ns-allinone-2.34/ns-2.34/apps/https://www.360docs.net/doc/f018298119.html,,app.h ns-allinone-2.34/ns-2.34/trace/https://www.360docs.net/doc/f018298119.html,,cmu-trace.h ns-allinone-2.34/ns-2.34/common/https://www.360docs.net/doc/f018298119.html,,https://www.360docs.net/doc/f018298119.html,,packet.h ns-allinone-2.34/ns-2.34/mac/https://www.360docs.net/doc/f018298119.html,,ll.h,https://www.360docs.net/doc/f018298119.html,,https://www.360docs.net/doc/f018298119.html,,phy.h,wireless-phy.c c,wireless-phy.h ②修改方法: 对于leach目录下相应的文件(即刚才未复制的文件),将代码中以“#ifdef MIT_uAMPS”开始,并以“#endif”结束的部分复制到以上文件对应的位置 这个过此要小心核对修改,否则前功尽弃 ③特殊情况 <1> ns-allinone-2.34/ns-2.34/common/packet.h中大约185行,根据其他变量的格式将代码更改为 #ifdef MIT_uAMPS static const packet_t PT_RCA = 61; #endif 并将最后一个枚举值改为62 这个过程可以随情况改变,还要注意的是packet.h文件并不是只改这一部分,前面的修改依然要。 <2> ns-allinone-2.34/ns-2.34/mac/wireless-phy.h,给类WirelessPhy添加public变量,大约105行 #ifdef MIT_uAMPS MobileNode * node_;

华为_MSR路由器_教育网双出口NAT服务器的典型配置

华为 MSR路由器教育网双出口NAT服务器的典型配置 一、组网需求: MSR 的 G0/0 连接某学校内网, G5/0 连接电信出口, G5/1 连接教育网出口,路由配置:访问教育网地址通过 G5/1 出去,其余通过默认路由通过 G5/0 出去。电信网络访问教育网地址都是通过电信和教育网的专用连接互通的,因此电信主机访问该校 一、组网需求: MSR的G0/0连接某学校内网,G5/0连接电信出口,G5/1连接教育网出口,路由配置:访问教育网地址通过G5/1出去,其余通过默认路由通过G5/0出去。电信网络访问教育网地址都是通过电信和教育网的专用连接互通的,因此电信主机访问该校都是从G5/1进来,如果以教育网源地址(211.1.1.0/24)从G5/0访问电信网络,会被电信过滤。该校内网服务器192.168.34.55需要对外提供访问,其域名是https://www.360docs.net/doc/f018298119.html,,对应DNS解析结果是211.1.1.4。先要求电信主机和校园网内部主机都可以通过域名或211.1.1.4正常访问,且要求校园网内部可以通过NAT任意访问电信网络或教育网络。 设备清单:MSR一台 二、组网图:

三、配置步骤: 适用设备和版本:MSR系列、Version 5.20, Release 1205P01后所有版本。

四、配置关键点: 1) 此案例所实现之功能只在MSR上验证过,不同设备由于内部处理机制差异不能保证能够实现; 2) 策略路由是保证内部服务器返回外网的流量从G5/1出去,如果不使用策略路由会按照普通路由转发从G5/0出去,这样转换后的源地址211.1.1.4会被电信给过滤掉,因此必须使用策略路由从G5/1出去; 3) 策略路由的拒绝节点的作用是只要匹配ACL就变成普通路由转发,而不被策

业务搭建返佣协议

业务搭建返佣协议 甲方: 委托人: 乙方:梅森赫迩商务服务有限公司 返佣付款账号: 张家口银行 中国工商银行 中国建设银行 中国银行 根据《合同法》和相关法律法规,本着平等自愿、互惠互利、诚实守信的原 则,甲、乙双方自愿并达成如下协议,以共同遵守: 一、甲方经营项目范围:___________________________________________________ 二、甲、乙双方责任 甲方委托乙方负责产品销售或服务推广合同签订之前的业务引荐、接洽、运 作等相关工作。 三、乙方返佣比例 1、乙方以自身资源作为引荐、接洽搭建业务渠道作为返佣服务。乙方作为承 接业务,应享业务盈利的权利和返佣义务。 2、乙方返佣利润,无论任何原因甲方都不得追缴乙方的所得或要求乙方支付资金,否则由甲方承担一切经济和法律责任。 3、返佣分配计算方法:搭建业务整体额度乘以______ 作为乙方返佣金。 1,随每次业务交易到位,当日按每次进度款占比整体业务的同比例支付。 2,如果未及时支付,则按未按时支付金额的每天1%向乙方支付违约金。 五、双方责任 1、乙方负责整体业务引荐、接洽、签订合同、运作等相关工作。 2、甲方负责业务服务及产品质量。 3、甲方在业务合同履行中,若发生民事纠纷、经济纠纷、刑事纠纷、等由于业务产生所有责任均由甲方承担,乙方概不承担任何相关经济、法律及连带责任。 4、无论甲方名称和法定代表人或法人授权委托人发生变更或任何变化,转让等

都有不影响本协议的法律效力,甲方应支付给乙方的返佣金额。 六、其它约定 1、甲方在业务合同履行中所产生的债权债务,由甲方各自行承担,乙方不负任何连带责任。 2、甲方支付给乙方返佣利润由乙方自行分配,甲方不得干涉,甲方在支付时以乙方经办人的签字为准,其它人员签字无效。 七、违约责任及解决方法 1、当甲方与业主方洽谈合同签订生效后,本协议同时生效。若甲方或甲方签字人不履行本协议,乙方可凭此协议向甲方或甲方签字人追索返佣利润,同时可 向协议所签地人民法院提起诉讼。 2、若乙方未能促成甲方与业主方签订业务合同或产生业务关系,则本协议自行失效。 八、本协议一式两份,各执一份,签字盖章后与业务合同(或通过业务搭建产生的业务关系)同时生效。 九、本协议未尽事宜,双方协商解决或向所签协议地人民法院提起诉讼。甲方:乙方(签字):委托人: 日期:日期:

史上最详细H3C路由器NAT典型配置案例

H3C路由器NAT典型配置案列(史上最详细)神马CCIE,H3CIE,HCIE等网络工程师日常实施运维必备,你懂的。 NAT典型配置举例 内网用户通过NAT地址访问外网(静态地址转换) 1. 组网需求 内部网络用户使用外网地址访问Internet。 2. 组网图 图1-5 静态地址转换典型配置组网图 3. 配置步骤 # 按照组网图配置各接口的IP地址,具体配置过程略。 # 配置内网IP地址到外网地址之间的一对一静态地址转换映射。 system-view [Router] nat static outbound 使配置的静态地址转换在接口GigabitEthernet1/2上生效。 [Router] interface gigabitethernet 1/2 [Router-GigabitEthernet1/2] nat static enable [Router-GigabitEthernet1/2] quit 4. 验证配置 # 以上配置完成后,内网主机可以访问外网服务器。通过查看如下显示信息,可以验证以上配置成功。 [Router] display nat static Static NAT mappings:

There are 1 outbound static NAT mappings. IP-to-IP: Local IP : Global IP : Interfaces enabled with static NAT: There are 1 interfaces enabled with static NAT. Interface: GigabitEthernet1/2 # 通过以下显示命令,可以看到Host访问某外网服务器时生成NAT会话信息。[Router] display nat session verbose Initiator: Source IP/port: Destination IP/port: VPN instance/VLAN ID/VLL ID: -/-/- Protocol: ICMP(1) Responder: Source IP/port: Destination IP/port: VPN instance/VLAN ID/VLL ID: -/-/- Protocol: ICMP(1) State: ICMP_REPLY Application: INVALID Start time: 2012-08-16 09:30:49 TTL: 27s Interface(in) : GigabitEthernet1/1 Interface(out): GigabitEthernet1/2 Initiator->Responder: 5 packets 420 bytes Responder->Initiator: 5 packets 420 bytes Total sessions found: 1 内网用户通过NAT地址访问外网(地址不重叠) 1. 组网需求

几种方式解决SIP穿越NAT总结讲解

SIP穿越NAT的几种方式 多媒体会话信令协议是在准备建立媒体流传输的代理之间交换信息的协议,媒体流与信令流截然不同,它们所采用的网络通道也不一致。由于协议自身设计上的原因,使得媒体流无法直接穿透网络地址转换/防火墙(NAT/Firewall)。因为它们生存期的目标只是为了建立一个在信息中携带IP地址的分组流,这在遇到NAT/Firewall 时会带来许多问题。而且这些协议的目标是通过建立P2P(Peer to Peer)媒体流以减小时延,而协议本身很多方面却与NAT存在兼容性问题,这也是穿透 NAT/Firewall的困难所在。而NAT仍是解决当前公用IP地址紧缺和网络安全问题的最有力手段,所以解决NAT穿越成为首要问题。 以SIP通信为例,呼叫建立和媒体通信的建立是依赖SIP消息首部和SDP 消息所描述的地址和端口信息进行的,呼叫双方分别在内网和外网上,内网是通过NAT设备连接到外网,由于NAT设备工作在IP和TCP/UDP层,所以它不对SDP 等应用层数据进行NAT变换,因此会造成寻址失败,从而导致呼叫无法正常建立。另外,VOIP设备的主要通信协议(如SIP和H.323)要求终端之间使用IP地址和端口号来建立端到端的数据侦听外来的呼叫,而防火墙却通常被配置阻止任何不请自到的数据分组通过。需要网络管理者打开防火墙上的一个端口来接收呼叫建立数据分组,例如5060端口(SIP的通信端口),但IP语音和视频通信协议还要求打开许多别的端口接收呼叫控制信息来建立语音和视频通信,这些端口号事先并不知道,是动态分配的,也就是说网络管理者为了允许语音和视频通信将不得不打开防火墙上所有的端口,防火墙就失去了存在的意义。所以当前的问题还有需要解决监听端口的问题。如下图SIP呼叫不成功示意图

LEACH协议的算法结构及最新研究进展

LEACH协议的算法结构及最新研究进展 1 LEACH协议算法结构 LEACH这个协议的解释是:低功耗自适应集簇分层型协议。通过名字,我们就能想到这个协议的大概作用了。那么在这之中,我们先来研究一下它的算法。 该算法基本思想是:以循环的方式随机选择蔟首节点,将整个网络的能量负载平均分配到每个传感器节点中,从而达到降低网络能源消耗、提高网络整体生存时间的目的。仿真表明,与一般的平面多跳路由协议和静态分层算法相比,LEACH协议可以将网络生命周期延长15%。LEACH在运行过程中不断的循环执行蔟的重构过程,每个蔟重构过程可以用回合的概念来描述。每个回合可以分成两个阶段:蔟的建立阶段和传输数据的稳定阶段。为了节省资源开销,稳定阶段的持续时间要大于建立阶段的持续时间。蔟的建立过程可分成4个阶段:蔟首节点的选择、蔟首节点的广播、蔟首节点的建立和调度机制的生成。 蔟首节点的选择依据网络中所需要的蔟首节点总数和迄今为止每个节点已成为蔟首节点的次数来决定。具体的选择办法是:每个传感器节点随机选择0-1之间的一个值。如果选定的值小于某一个阀值,那么这个节点成为蔟首节点。 选定蔟首节点后,通过广播告知整个网络。网络中的其他节点根据接收信息的信号强度决定从属的蔟,并通知相应的蔟首节点,完成蔟的建立。最后,蔟首节点采用TDMA方式为蔟中每个节点分配向其传递数据的时间点。 稳定阶段中,传感器节点将采集的数据传送到蔟首节点。蔟首节点对蔟中所有节点所采集的数据进行信息融合后再传送给汇聚节点,这是一种叫少通信业务量的合理工作模型。稳定阶段持续一段时间后,网络重新进入蔟的建立阶段,进行下一回合的蔟重构,不断循环,每个蔟采用不同的CDMA代码进行通信来减少其他蔟内节点的干扰。 LEACH协议主要分为两个阶段:即簇建立阶段(setup phase)和稳定运行阶段(ready phase)。簇建立阶段和稳定运行阶段所持续的时间总和为一轮(round)。为减少协议开销,稳定运行阶段的持续时间要长于簇建立阶段。 在簇建立阶段,传感器节点随机生成一个0,1之间的随机数,并且与阈值T(n)做比较,如果小于该阈值,则该节点就会当选为簇头。在稳定阶段,传感器节点将采集的数据传送到簇首节点。簇首节点对采集的数据进行数据融合后再将信息传送给汇聚中心,汇聚中心将数据传送给监控中心来进行数据的处理。稳定阶段持续一段时间后,网络重新进行簇的建立阶段,进行下一轮的簇重建,不断循环。 2 LEACH协议的特点 1 为了减少传送到汇聚节点的信息数量,蔟首节点负责融合来自蔟内不同源节点所产生的数据,并将融合后的数据发送到汇聚点。 2 LEACH采用基于TDMA/CDMA的MAC层机制来减少蔟内和蔟间的冲突。 3 由于数据采集是集中的和周期性的,因此该协议非常适合于要求连续监控的应用系统。 4 对于终端使用者来说,由于它并不需要立即得到所有的数据,因此协议不需要周期性的传输数据,这样可以达到限制传感器节点能量消耗的目的。 5 在给定的时间间隔后,协议重新选举蔟首节点,以保证无线传感器网络获取同意的能量分布。

华为Eudemon防火墙NAT配置实例

[原创]华为Eudemon防火墙NAT配置实例Post By:2007-7-11 11:35:00 贴一下我公司里防火墙的配置,希望能够起到抛砖引玉的作用。具体外网IP和内网ARP绑定信息已经用“x”替代,请根据实际情况更换。“//”后面的部分是我导出配置后添加的注释。防火墙型号为华为Eudemon 200,E0/0/0口为外网接口,E0/0/1口为内网。另外此配置方法也完全适用于华为Secpath系列防火墙,略加改动也可适用于华为A R系列路由器。 ------------------------------------------传说中的分隔线------------------------------------------ # sysname Eudemon//设置主机名 # super password level 3 simple xxxxxxxx//Super密码为xxxxxxxx # firewall packet-filter default permit interzone local trust direction inbound firewall packet-filter default permit interzone local trust direction outbound firewall packet-filter default permit interzone local untrust direction inbound firewall packet-filter default permit interzone local untrust direction outbound firewall packet-filter default permit interzone local dmz direction inbound firewall packet-filter default permit interzone local dmz direction outbound firewall packet-filter default permit interzone trust untrust direction inbound firewall packet-filter default permit interzone trust untrust direction outbound firewall packet-filter default permit interzone trust dmz direction inbound firewall packet-filter default permit interzone trust dmz direction outbound firewall packet-filter default permit interzone dmz untrust direction inbound firewall packet-filter default permit interzone dmz untrust direction outbound//设置默认允许所有数据包通过 # 青岛IT社区提醒:本地交易眼见为实,当面验货!不要嫌麻烦!交易地点建议在人多地方,防止抢劫!

楼板搭建工程合同

楼板搭建工程合同 甲方(业主): 电话: 乙方: 身份证号码: 电话: 甲方楼板钢筋配置和梁的钢筋配置施工图给乙方,乙方确认后,经甲乙双方友好协商,就楼板搭建工程达成如下协议: 一、按双方确认的施工图,搭建钢筋混凝土楼板。工程量按门市建筑面积 m2,单价 元/m2,总价款元(包工包料打植筋孔、清理现场垃圾及胶水全包)。 二、工程质量工艺及材料要求乙方必须按照国家质量标准进行施工,确保工程质量,达到国家标准。 1、所有钢筋均采用国家允许用钢筋,业主有权找建筑材料质量检测中心检验,检测费用如合格由甲方自理,不合格乙方出检测费用且材料无条件出场。 2、植筋板钢筋均按图纸板筋间距双向双层设置。 3、梁板混凝土强度等级均为C30(商品混凝土),甲方随时可以抽检。 4、要求新增楼板与原结构结合处要将原结构的粉刷层清除并洗干

净,确保新增楼板与原结构结合严密。植筋处新旧混凝土结合面一律凿毛处理。 5、板筋植入梁、墙、柱等处的钢筋必须满足国家规范(如果不足的返工)。植筋孔必须用清水吹扫,不得留有灰层,植筋胶饱满。以保证质量。 6、植筋与楼板钢筋绑扎搭接长度按国家标准执行。 7、楼板倒好混凝土后拆模时间不得少于10天,楼板倒好后必须浇水养护且不得少于3天。 8、楼板倒好后必须保证水平,水平误差不得超过国家标准。 9、浇混凝土时需用震动器振捣,确保密实,楼板不得蜂窝麻面。搭建楼板必须符合国家标准,为保证业主居住安全,要高于国家标准,如果有争议以高于国家标准为基础,双方协商解决。 三、乙方保证按甲方提供的施工图施工,乙方在甲方提供的施工图上签字确认(图纸如果由乙方出,甲方必须签字确认)。 四、楼梯采用何种方式搭设另议(楼梯费用包含在总价报款内)。 五、清孔后需经业主验收后才能植筋,钢筋绑扎完毕后需经业主验收后才能浇筑混凝土。每结束一道工序在开始下道工序前必须经甲方验收并签字确认后才能开始进行以后工作。 六、由于甲方已提供施工图给乙方,乙方同意按施工图施工(双方签字确认)。现场需要同其他业主商议的,由甲方书面协调。施工场地内水、电必须满足施工要求,由甲方保证。 七、工程款支付

IPSEC NAT 穿越 (两种解法) 小余出品

IPSEC NAT 穿越(两种解法) 需求分析:如图,R2是上海总公司的路由器,R1是苏州分公司路由器,ISP1是长宽的路由,ISP2是电信路由器。R2的外部地址是公网地址,R1的外部地址是私网地址。在实际的工程中我们遇到这种问题太正常了,但恰好我们又需要在R1和R4之间建立IPSEC VPN。NAT和IPSEC是互相冲突的,因为IPSEC保护私网地址和传输层内容,而NAT需要改这些.OK 我们开始解决这个问题! 解法一:基于ESP穿越NAT 配置如下 R1: interface Loopback0 ip address 192.168.12.1 255.255.255.0 interface Ethernet0/0 ip address 172.16.12.1 255.255.255.0 half-duplex ip route 0.0.0.0 0.0.0.0 172.16.12.2 crypto isakmp policy 10 authentication pre-share crypto isakmp keepalive 60 ISAKMP的DPD crypto isakmp nat keepalive 10 用于在NAT之后的情況,防止NAT丢弃转发条目

crypto isakmp key cisco address 202.100.34.4 crypto ipsec transform-set myset esp-des esp-md5-hmac crypto ipsec nat-transparency spi-matching 开启SIP-Matching,跟NAT特性有关 access-list 101 permit ip 192.168.12.0 0.0.0.255 192.168.34.0 0.0.0.255 crypto map map 10 ipsec-isakmp set peer 202.100.34.4 set transform-set myset match address 101 interface Ethernet0/0 crypto map map R2: interface Ethernet0/0 ip address 172.16.12.2 255.255.255.0 ip nat inside ip virtual-reassembly IP分片虚拟重组 half-duplex interface Ethernet0/1 ip address 202.100.23.2 255.255.255.0 ip nat outside ip virtual-reassembly half-duplex

WSN中LEACH协议源码分析报告

WSN中LEACH协议源码分析 分析(一) 首先对wireless.tcl进行分析,先对默认的脚本选项进行初始化: set opt(chan)Channel/\VirelessChannel set opt(prop) Propagatioii/TwoRayGround set opt(netif)PhyAVirelessPhy set opt(mac) Mac/802_l 1 set opt(ifq) Qucuc/DropTail/PriQueue set opt(ll) LL set opt(ant) Antenna/OmniAntenna set opt(x) 0 。# X dimension of the topography set opt(y) 0。# Y dimension of the topography set opt(cp),H, set opt(sc) N../mobility/scene/scen-670x670-50-600-20-2u。# scenario file set opt(ifqlen)50o # max packet in if set opt(nn) 51。# number of nodes set opt(secd) 0.0 set opt(stop) 10.0 o # simulation time set opt(tr) out.tr。# trace file set opt(rp) dsdv 。 # routing protocol script set opt(lm) M on H。# log movement 在这个wireless.tcl中设置了一些全局变呈:: # #Initialize Global Variables # set ns_ [new Simulator] set chan [new $opt(chan)] set prop [new $opt(prop)] set topo [newTopography] set tracefd [open Sopt(tr) w] Stopo Ioad_flatgrid $opt(x) $opt(y) Sprop topography Stopo 这些初始化将在后而的使用中用到,该文件最重要的是创建leach 17点:创建方法如下: } elseif { [string compare Sopt(rp) M leach,,]==0} { for {set i 0} {$i < $opt(nn) } {incr i} { leach-create-mobile-node $i } 如果路由协议是leach协议,则在Uamps.tcl中调用leach-create-mobile-node方法创建leach节点。将在第二小节讲如何创建leach节点。 for {set i 0} {$i < $opt(nn) } {incr i} { $ns_ at $opt(stop).000000001 M Snode_($i) reset”。〃完成后,重宜右点的应用

华为nat配置实例

窗体顶端 NAT 【Router】 华为路由器单臂路由配置实例 组网描述: PC---------------------3050C-------------------------AR28-31-------------------------INTERNET 组网实现: 3050C上划分多个VLAN,在AR28-31上终结VLAN信息,下面的所有VLAN中的PC都可以上公

网,所有的PC机都通过AR28-31分配IP地址和DNS [AR28-31]dis cu # sysname Quidway # FTP server enable # nat address-group 0 222.222.222.2 222.222.222.10用于上公网的地址池# radius scheme system # domain system # local-user admin password cipher .]@USE=B,53Q=^Q`MAF4<1!! service-type telnet terminal level 3 service-type ftp local-user huawei telnet用户,用于远程管理 password simple huawei service-type telnet level 3 # dhcp server ip-pool 10为VLAN10分配IP地址network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.1 dns-list 100.100.100.100 # dhcp server ip-pool 20为VLAN20分配IP地址network 192.168.20.0 mask 255.255.255.0 gateway-list 192.168.20.1 dns-list 100.100.100.100 # dhcp server ip-pool 30为VLAN30分配IP地址network 192.168.30.0 mask 255.255.255.0 gateway-list 192.168.30.1 dns-list 100.100.100.100 # dhcp server ip-pool 40为VLAN40分配IP地址network 192.168.40.0 mask 255.255.255.0 gateway-list 192.168.40.1 dns-list 100.100.100.100 # interface Aux0 async mode flow # interface Ethernet1/0用于与交换机的管理IP互通 ip address 192.168.100.1 255.255.255.0 firewall packet-filter 3000 inbound # interface Ethernet1/0.1终结交换机上的VLAN10 tcp mss 1024 ip address 192.168.10.1 255.255.255.0 firewall packet-filter 3000 inbound vlan-type dot1q vid 10 # interface Ethernet1/0.2终结交换机上的VLAN20

相关文档
最新文档