搜档网
当前位置:搜档网 › NAT及NAT打洞技术

NAT及NAT打洞技术

NAT及NAT打洞技术
NAT及NAT打洞技术

NAT及NAT打洞技术

一、什么是NAT?为什么要使用NAT?

NAT是将私有地址转换为合法IP地址的技术,通俗的讲就是将内网与内网通信时怎么将内网私有IP地址转换为可在网络中传播的合法IP地址。NAT的出现完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。

二、NAT的分类

STUN标准中,根据内部终端的地址(LocalIP:LocalPort)到NAT出口的公网地址(PublicIP:PublicPort)的影射方式,把NAT分为四种类型:

1、Full Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,任何外部主机只要知道这个(PublicIP:PublicPort)就可以发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

2、Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机IP发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,任何端口)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

3、Port Restricted Cone NAT: 内网主机建立一个socket(LocalIP:LocalPort) 第一次使用这个socket给外部主机发送数据时NAT会给其分配一个公网(PublicIP:PublicPort),以后用这个socket向外面任何主机发送数据都将使用这对(PublicIP:PublicPort)。此外,如果任何外部主机想要发送数据给这个内网主机,只要知道这个(PublicIP:PublicPort)并且内网主机之前用这个socket曾向这个外部主机(IP,Port)发送过数据。只要满足这两个条件,这个外部主机就可以用自己的(IP,Port)发送数据给(PublicIP:PublicPort),内网的主机就能收到这个数据包。

4、Symmetric NAT: 内网主机建立一个socket(LocalIP,LocalPort),当用这个socket第一次发数据给外部主机1时,NAT为其映射一个(PublicIP-1,Port-1),以后内网主机发送给外部主机1的所有数据都是用这个(PublicIP-1,Port-1),如果内网主机同时用这个socket给外部主机2发送数据,NAT会为其分配一个(PublicIP-2,Port-2), 以后内网主机发送给外部主机2的所有数据都是用这个(PublicIP-2,Port-2).如果NAT有多于一个公网IP,则PublicIP-1和PublicIP-2可能不同,如果NAT只有一个公网IP,则Port-1和Port-2肯定

不同,也就是说一定不能是PublicIP-1等于PublicIP-2且Port-1等于Port-2。此外,如果任何外部主机想要发送数据给这个内网主机,那么它首先应该收到内网主机发给他的数据,然后才能往回发送,否则即使他知道内网主机的一个(PublicIP,Port)也不能发送数据给内网主机,这种NAT无法实现P2P通信,但是如果另一方是Full Cone NAT,还是可以实现穿透的,下面我会详细分析各种类型NAT穿透的情况。NAT 功能通常被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中。所以我们大家很少会知道NAT,上面NAT类型的概念描述是比较通俗的,但为了更便于理解,我再举例阐述一下NAT的原理。

现有通信的双方A和B,当A和B都是在公网的时候,通信是不用NAT的。假设A在内网,内网IP 是192.168.1.3,端口号是5000,A经过NAT后的IP是221.221.221.100,端口号是8000,B的IP是202.105.124.100,端口是8500。如果B要去主动连接A,即使B知道A经过NAT后的IP和端口也是无法连接成功的,因为A没有向B(202.105.124.100:8500)发送过数据,所以B的数据包会被A的NAT丢弃,于是连接失败。但是A如果去主动连接B,由于B是在公网,所以会连接成功,通信也就会建立。这也就是反弹连接木马“反弹”二字的精髓。

当客户端A和B都是处在内网的时候,双方由于都不知道对方的公网IP和端口,就会无从下手,所以要在客户端A和B之间架设一台服务器S来为它们牵线,而且S是处在公网,以保证A和B都能连接到S。客户端A和B登录时都首先连接S,S就会知道A和B经过NAT后的IP和端口,当A想要连接B时,就像S发出请求,S会把B经过NAT后的IP和端口告诉A,同时S向B发送A经过NAT后的IP和端口,并要求B发送数据给A,B发送数据到达A时会被A的NAT抛弃,但是B的NAT会有B发送数据到A的记录,这是A再向B发送数据时就会被B的NAT放行,因为B曾经向A的外网IP和端口发送过数据。可能有点乱,下面以故事的形式叙述一下这个情景。

人物:A(男)NAT_A(A家接线员) B(女)NAT_B (B家接线员)S

场景介绍:A想认识B,但是不知道B的电话,S跟A、B都是朋友,并且知道A和B的电话。接线员的职责:对往外转接的电话不做询问,对往内转接的电话则要过滤以免有骚扰电话。过滤规则:在一定时间内没有拨打过的号码就过滤。

首先A给S打电话:

A说:我想认识你朋友B,你把她电话给我呗。

S说:行,她的电话是PublicIP_B,我让她先给你打个电话,要不她家接线员不帮你转接。

A说:好。

S跟B打电话:

S说:我有一个朋友A,人挺好的,他想认识你,你给他打个电话,他的电话号码是PublicIP_A。

B说:行,打完告诉你。

S说:好的。

B打电话到A家,B家接线员NET_B看到女主人想往PublicIP_A打电话就转接到A家了,同时把号码PublicIP_A记录下来,A家接线员NAT_A一看号码是个近期没打过的号,就给挂断了。

B给S打电话:

B说:我打完电话了

S说:好,等着吧,一会他就给你打进来了。

S给A打电话:

S说:他给你打完电话了,你快点给她打。

A打电话到B家,A家接线员NET_A看到男主人想往PublicIP_B打电话就转接到B家了,B家接线员NET_B 看到是刚刚拨过的PublicIP_A号码打过来的,就转接给B了,A和B的电话也就打通了。

A和B通话:

A说:电话终于打通了,想认识你挺困难的。

B说:是啊。

以上虽然和实际不太一样,但穿透的整体过程基本就是这样。A往B发送数据的唯一阻碍就是NET_B,所以想要成功发送数据,必须把NET_B穿一个洞,A是无法完成这项工作的,所以就得让B 完成这个打洞操作,也就是让B往A发送数据,这样NET_B就会误以为A发送的数据是上次会话的一部分从而不予阻拦。

但是,由于NAT的类型没有一个统一的标准,所以NAT穿透使用的技术有很多种,穿透的成功率也不一样。还有些NAT类型的内网之间几乎无法穿透。下面我们用实例详细分析一下各种NAT类型穿透的可行性。

A机器在私网(192.168.0.3)

A侧NAT服务器(221.221.221.100)

B机器在另一个私网(192.168.0.5)

B侧NAT服务器(210.30.224.70)

C机器在公网(210.202.14.36)作为A和B之间的中介

A机器连接C机器,假使是A(192.168.0.3:5000)-> A侧NAT(转换后221.221.221.100:8000)-> C (210.202.14.36:2000)

B机器也连接C机器,假使是B(192.168.0.5:5000)-> B侧NAT(转换后210.30.224.70:8000)-> C (210.202.14.36:2000)

A机器连接过C机器后,A向C报告了自己的内部地址(192.168.0.3:5000),此时C不仅知道了A 的外部地址(C通过自己看到的221.221.221.100:8000)也知道了A的内部地址。同理C也知道了B的外部地址(210.30.224.70:8000)和内部地址(192.168.0.5:5000)。之后,C作为中介,把A的两个地址告诉了B,同时也把B的两个地址告诉了A。

假设A先知道了B的两个地址,则A从192.168.0.3:5000处同时向B的两个地址192.168.0.5:5000和210.30.224.70:8000发包,由于A和B在两个不同的NAT后面,故从A(192.168.0.3:5000)到B (192.168.0.5:5000)的包肯定不通,现在看A(192.168.0.3:5000)到B(210.30.224.70:8000)的包,分如下两种情况:

1、B侧NAT属于Full Cone NAT

则无论A侧NAT属于Cone NAT还是Symmetric NAT,包都能顺利到达B。如果程序设计得好,使得B主动到A的包也能借用A主动发起建立的通道的话,则即使A侧NAT属于Symmetric NAT,B发出的包也能顺利到达A。

结论1:只要单侧NAT属于Full Cone NAT,即可实现双向通信。

2、B侧NAT属于Restricted Cone或Port Restricted Cone

则包不能到达B。再细分两种情况

(1)、A侧NAT属于Restricted Cone或Port Restricted Cone

虽然先前那个初始包不曾到达B,但该发包过程已经在A侧NAT上留下了足够的记录:A (192.168.0.3:5000)->(221.221.221.100:8000)->B(210.30.224.70:8000)。如果在这个记录没有超时之前,B也重复和A一样的动作,即向A(221.221.221.100:8000)发包,虽然A侧NAT属于Restricted Cone 或Port Restricted Cone,但先前A侧NAT已经认为A已经向B(210.30.224.70:8000)发过包,故B向A (221.221.221.100:8000)发包能够顺利到达A。同理,此后A到B的包,也能顺利到达。

结论2:只要两侧NAT都不属于Symmetric NAT,也可双向通信。换种说法,只要两侧NAT都属于Cone NAT,即可双向通信。

(2)、A侧NAT属于Symmetric NAT

因为A侧NAT属于Symmetric NAT,且最初A到C发包的过程在A侧NAT留下了如下记录:A (192.168.0.3:5000)->(221.221.221.100:8000)-> C(210.202.14.36:2000),故A到B发包过程在A侧NAT上留下的记录为:

A(192.168.0.3:5000)->(221.221.221.100:8001)->B(210.30.224.70:8000)(注意,转换后端口产生了变化)。而B向A的发包,只能根据C给他的关于A的信息,发往A(221.221.221.100:8000),因为A 端口受限,故此路不通。再来看B侧NAT,由于B也向A发过了包,且B侧NAT属于Restricted Cone

或Port Restricted Cone,故在B侧NAT上留下的记录为:B(192.168.0.5:5000)->(210.30.224.70:8000)->A(221.221.221.100:8000),此后,如果A还继续向B发包的话(因为同一目标,故仍然使用前面的映射),如果B侧NAT属于Restricted Cone,则从A(221.221.221.100:8001)来的包能够顺利到达B;如果B侧NAT属于Port Restricted Cone,则包永远无法到达B。

结论3:一侧NAT属于Symmetric NAT,另一侧NAT属于Restricted Cone,也可双向通信。

反过来想,则可以得出另一个结论:两个都是Symmetric NAT或者一个是Symmetric NAT、另一个是Port Restricted Cone,则不能双向通信,因为NAT无法穿透。

上面的例子虽然只是分析了最初发包是从A到B的情况,但是,由于两者的对称性,前面得出的几条结论没有方向性,双向都适用。

我们上面得出了四条结论,natcheck网站则把他归结为一条:只要两侧NAT都属于Cone NAT(含Full Cone、Restricted Cone和Port Restricted Cone三者),即可双向通信。没有把我们的结论3包括进去。

一般情况下,只有比较注重安全的大公司会使用Symmetric NAT,禁止使用P2P类型的通信,很多地方使用的都是Cone NAT,因此穿透技术还是有发展前景的。

三、使用UDP、TCP穿透NAT

上面讲的情况可以直接应用于UDP穿透技术中,使用TCP 协议穿透NAT 的方式和使用UDP 协议穿透NAT 的方式几乎一样,没有什么本质上的区别,只是将无连接的UDP 变成了面向连接的TCP 。值得注意是:

1、B在向A打洞时,发送的SYN 数据包,而且同样会被NAT_A 丢弃。同时,B需要在原来的socket 上监听,由于重用socket ,所以需要将socket 属性设置为SO_REUSEADDR 。

A向B发送连接请求。同样,由于B到A方向的孔已经打好,所以连接会成功,经过3 次握手后,A到B之间的连接就建立起来了。具体过程如下:

1、S启动两个网络侦听,一个叫【主连接】侦听,一个叫【协助打洞】的侦听。

2、A和B分别与S的【主连接】保持联系。

3、当A需要和B建立直接的TCP连接时,首先连接S的【协助打洞】端口,并发送协助连接申请。同时在该端口号上启动侦听。注意由于要在相同的网络终端上绑定到不同的套接字上,所以必须为这些套接字设置SO_REUSEADDR 属性(即允许重用),否则侦听会失败。

4、S的【协助打洞】连接收到A的申请后通过【主连接】通知B,并将A经过NAT-A转换后的公网IP 地址和端口等信息告诉B。

5、B收到S的连接通知后首先与S的【协助打洞】端口连接,随便发送一些数据后立即断开,这样做

的目的是让S能知道B经过NAT-B转换后的公网IP和端口号。

6、B尝试与A的经过NAT-A转换后的公网IP地址和端口进行connect,大多数路由器对于不请自到的SYN请求包直接丢弃而导致connect失败,但NAT-B会纪录此次连接的源地址和端口号,为接下来真正的连接做好了准备,这就是所谓的打洞,即B向A打了一个洞,下次A就能直接连接到B刚才使用的端口号了。

7、客户端B打洞的同时在相同的端口上启动侦听。B在一切准备就绪以后通过与S的【主连接】回复消息“我已经准备好”,S在收到以后将B经过NAT-B转换后的公网IP和端口号告诉给A。

8、A收到S回复的B的公网IP和端口号等信息以后,开始连接到B公网IP和端口号,由于在步骤6中B曾经尝试连接过A的公网IP地址和端口,NAT-B纪录了此次连接的信息,所以当A主动连接B时,NAT-B会认为是合法的SYN数据,并允许通过,从而直接的TCP连接建立起来了。

教你如何远程连接电脑

教你如何远程连接电脑 远程连接方法有很多,有系统自带的远程桌面连接,也有用软件来实现远程连接。系统自带远程桌面连接有个弱点就是要做端口映射,对于电脑知识薄弱的人来说有点困难,用软件来进行远程连接就直观容易得多。以下就来演示一下如何用时下最流行的远程软件——网络人来进行远程连接。 网络人简介 企业版主要用于企业管理,无须知道对方IP地址,亦可进行控制(可设置是否让员工知 网络人远程控制软件 道自己被控)。使用帐号登录企业版程序后,不需输入对方IP地址,公司里几十台电脑就显示在软件的界面上,通过软件就可以看到每一个员工电脑的屏幕,还可以远程控制他们的鼠标键盘,远程开启摄象头或者直接与各员工进行文字、语音沟通,可以批量发送文件到每个员工电脑中。设置好后,可支持远程批量开机、关机功能,极大提高了工作效率。软件采用UDP协议穿透内网可以使用软件进行远程管理。 网络人(Netman)是公司历时一年时间开发的远程控制软件,软件采用了世界上最优秀的压缩算法,数据传输高强度加密,并使用UDP协议穿透内网,使得用户在任何一台电脑上都可以使用软件进行远程管理,是世界上极少见的P2P远程控制软件之一。 Netman广泛应用于远程管理及维护,使用Netman将可以极大提高您的工作效率以及管理水平。软件现已经翻译成15种不同国家的语言,在15个国家同时发布,发布仅3个月时间,现在全世界已经有近30万用户在使用此软件。 网络人个人版 简介 网络人(Netman)个人版是一款完全免费的远程控制软件,通过输入对方的IP和控制密码,或者申请会员,记住会员号和密码(不用记IP)就能实现远程监控。软件使用UDP协议穿透内网,

windows NAT映射端口教程

网外(Internet)访问代理服务器内部的实现方法 作者:Zealous July 来源:dc资讯交流网 鲨鱼丸ID:zsj008od Thursday,May30,2002由于公网IP地址有限,不少ISP都采用多个内网用户通过代理和网关路由共用一个公网IP上INTERNET的方法,这样就限制了这些用户在自己计算机上架设个人网站,要实现在这些用户端架设网站,最关键的一点是,怎样把多用户的内网IP和一个他们唯一共享上网的IP进行映射!就象在局域网或网吧内一样,虽然你可以架设多台服务器和网站,但是对外网来说,你还是只有一个外部的IP 地址,怎么样把外网的IP映射成相应的内网IP地址,这应该是内网的那台代理服务器或网关路由器该做的事,对我们用私有IP地址的用户也就是说这是我们的接入ISP服务商(中国电信、联通、网通、铁通等)应该提供的服务,因为这种技术的实现对他们来说是举手之劳,而对我们来说是比较困难的,首先得得到系统管理员的支持才能够实现。因为这一切的设置必须在代理服务器上做的。 要实现这一点,可以用Windows2000Server的端口映射功能,除此之外Winroute Pro也具有这样的功能,还有各种企业级的防火墙。而对于我们这些普通用户,恐怕还是用Windows2000Server最为方便。 先来介绍一下NAT,NAT(网络地址转换)是一种将一个IP地址域映射到另一个IP地址域技术,从而为终端主机提供透明路由。NAT包括静态网络地址转换、动态网络地址转换、网络地址及端口转换、动态网络地址及端口转换、端口映射等。NAT常用于私有地址域与公用地址域的转换以解决IP地址匮乏问题。在防火墙上实现NAT后,可以隐藏受保护网络的内部拓扑结构,在一定程度上提高网络的安全性。如果反向NAT提供动态网络地址及端口转换功能,还可以实现负载均衡等功能。 端口映射功能可以让内部网络中某台机器对外部提供WWW服务,这不是将真IP地址直接转到内部提供WWW服务的主机,如果这样的话,有二个蔽端,一是内部机器不安全,因为除了WWW之外,外部网络可以通过地址转换功能访问到这台机器的所有功能;二是当有多台机器需要提供这种服务时,必须有同样多的IP地址进行转换,从而达不到节省IP地址的目的。端口映射功能是将一台主机的假IP地址映射成一个真IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转到内部一主机的提供这种特定服务的主机;利用端口映射功能还可以将一台真IP地址机器的多个端口映射成内部不同机器上的不同端口。端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供六万多个端口的映射,恐怕我们永远都用不完的。 一、下面来介绍一下通过NAT共享上网和利用NAT来实现端口映射。 1、在Windows2000Server上,从管理工具中进入“路由和远程访问”(Routing and Remote Access)服务,在服务器上鼠标右击,-》“配置并启用路

NAT详尽的解释

随着internet的网络迅速发展,IP地址短缺已成为一个十分突出的问题。为了解决这个问题,出现了多种解决方案。下面几绍一种在目前网络环境中比较有效的方法即地址转换(NAT)功能。 一、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-m ail服务器或FTP服务器等可以为外部用户提供的服务,这些服务器的IP地址必须采用静态地址转换,以便外部用户可以使用这些服务。 静态地址转换基本配置步骤: (1)、在内部本地地址与内部合法地址之间建立静态地址转换。在全局设置状态下输入:Ip nat inside source static 内部本地地址内部合法地址 (2)、指定连接网络的内部端口在端口设置状态下输入: ip nat inside (3)、指定连接外部网络的外部端口在端口设置状态下输入: ip nat outside 注:可以根据实际需要定义多个内部端口及多个外部端口。 实例1: 本实例实现静态NAT地址转换功能。将2501的以太口作为内部端口,同步端口0作为外部端口。其中10.1.1.2,10.1.1.3,10.1.1.4的内部本地地址采用静态地址转换。其内部合法地址分别对应为192.1.1.2,192.1.1.3,192.1.1.4。 路由器2501的配置: Current configuration: version 11.3

Labview中远程数据库访问技术

摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络 共享方式访问远程Access数据库进行了详细介绍,最后给出了应用该方法开发的一个实例。关 键词:LabviewADO远程数据库引言Labview是美国NI公司开发的一种图形化编程语言,其主 要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且 摘要:介绍了在Labview中应用ADO技术访问本地和远程数据库的方案。对在局域网中以网络共享方式访问远程Access数据库进行了详细介绍,最后给出了应用 该方法开发的一个实例。 关键词:Labview ADO 远程数据库 引言 Labview 是美国NI公司开发的一种图形化编程语言,其主要用于数据采集、仪器控制、过程监控等领域。Labview具有丰富的采集与分析函数库,在Labview 环境下可以方便快捷地开发监控系统软件。现代监控系统一般构建于局域网内,且监控系统自身也是企业生产管理系统的一个子系统,因此不可避免地要访问本地或远程数据库。Labview开发版中并没有提供直接与通用数据库接口的工具,但可以 通过以下方法解决:购买NI公司开发的附加软件工具包;利用其它语言如VC++编写DLL访问数据库;利用ADO控件访问数据库。[1]Labview支持Activex控件,与其它方法相比基于ADO技术构建本地或远程数据库访问接口不失为一种简单而又经济 的方法。 1 ADO技术简介 ADO(Activex Data Objects)是Microsot为OLE DB设计的应用层接口,它为一致的数据访问接口提供了良好的扩展性而不局限于单一的数据源。ADO接口编程模型中包括连接(connection)、命令(command)、参数(parameter)、 记录集(recordset)、字段(field)、错误(error)、属性(property)、集合(collection)、事件(event)等元素。其中connection、command、recordset是三个主体对象,parameters、fields、errors、properties、是四个集合对象。ADO的一般操作方式为:1 连接到数据源;2 指定访问数据源的命令;3 执行命令;4 将命令执行后产生的结果保存在缓存中;5 更新数据源。ADO接口继承了OLE DB的高速性,可以高速访 问本地或远程的数据源。 2在Labview 中使用ADO接口 在Labview 中使用ADO接口访问数据库一般包括以下几个步骤:建立ADO控件;连接到数据源;生成SQL命令;执行命令;关闭连接。具体步骤如图1 所示。 2.1建立ADO控件 在前面板控件模板中选择Activex子模板单击Automation Refnum项,右键单击Select Activex Class的Browse从类型库中选择 Microsoft Activex Data Objects 2.7 library Version 2.7,之后可以向框图程序中加 入connection、command、recordset等对象。 2.2连接到数据源 首先在Diagram中单击鼠标右键,从Function模板选择communication 子模板,从中选择Activex项的Automation Open 与ADODB_Connection相连即 可打开连接。接着同样从communication子模板的Activex项中选择 Invoke node (方法节点)并与Automation Open 相连,在其上单击右键选择methods项的Open方法即出现图1中所示的节点。其中“Open”表示该节点为打开“连接对象”,“ConnectionString”是连接到数据源的字符串,“UserID”和“Password”

Windows2003配置NAT端口映射

Windows2003配置NAT端口映射 YHX 本文介绍的端口映射指的是利用Windows2003服务期的NAT功能,将对该服务器上某个公网IP指定端口的访问转发到和该服务器所连接的内部局域网某台服务器上。 配置分为NAT服务器的配置和内部局域网服务器的配置两部分: 一、NAT服务器的配置 对Windows2003服务器的要求:拥有两张网卡,一张配置有公网IP,连接到Internet,一张连接到内部局域网。为便于阐述,假设两张网卡IP配置如下:公网网卡:IP=220.179.244.238,NetMask(子网掩码)=255.255.255.0,GW(网关)=220.179.244.129 局域网网卡:IP=192.168.0.1,NetMask=255.255.255.0,不配置GW NAT端口映射配置步骤: 1.从控制面板的“管理工具”打开“路由和远程访问”;

2.在打开的界面左边树形目录中,选择标识有(本地)名称的服务器,右键菜单 选择“配置并启用路由和远程访问”,点击“下一步”;

3.在弹出的界面选择第2项:“网络地址转换(NAT)”,点击“下一步”; 4.在“Nat Inter net连接”界面中选择公网IP的网卡,点击“下一步”;

5.在“网络选择”界面中选择连接到内部局域网的网卡,点击“下一步”;

6.点击“完成”按钮,windows2003自动启动服务。

以上步骤配置完后,在树形目录“IP路由选择”下将会有个“NAT/基本防火墙”的节点,选中它后,在右边的视图内会有几个连接,选择公网IP的那个连接,进入它的属性配置。 在属性配置界面上有几个TAB,分别是“NAT/基本防火墙”、“地址池”、“服务和端口”、“ICMP”。我们主要配置第1和第3项。 “NAT/基本防火墙”:接口类型选择“公用接口连接到Internet”,并确保“在此接口上启动NAT”打勾,防火墙配置随意; “服务和端口”:服务和端口是端口映射的重点,它配置的是对公网IP哪些端口的访问将被转发到内部局域网的哪个IP和端口上。 选择添加进入“添加服务”界面,“公用地址”表示连接到公网的接口,选择“在此接口”;“协议”则根据服务的类型选择TCP或UDP;“传入端口”指对哪个端口的访问将被转发;“专用地址”指的是访问将会转发到的内部局域网中

NAT网络地址转换技术的应用与实现

编号:_______________ 商丘科技职业学院 毕业论文 题目: NAT技术在网络中的应用与实现 系别计算机科学系 专业 学生姓名 成绩 指导教师 2011年 4月

商丘科技职业学院毕业论文 摘要 随着互联网的普及,IP地址缺乏问题日益恶化,为了缓解问题,在IP地址分配和保留IP地址方面提出了许多办法,甚至提出新一代的IPv6技术从根本上解决地址空间问题。但由于多方面的原因,NA T成为了事实上广泛使用的解决方法,是我们至今在互联网上没有使用完合法IPv4地址的真实原因。它主要思想是把本地的私有IP地址映射到公网的合法IP地址,以缓解可用IP地址空间的消耗。本课程设计主要对NAT技术进行系统分析,并举出一个应用实例,在网络模拟器中将其具体实现,深入了解其工作原理与数据包每次被修改的情况,了解技术存在的缺点。 关键词:IP地址分配保留IP地址 NAT

NAT技术在网络中的应用与实现 目录 绪论 (1) 第1章背景简述 (2) 1.1IP地址现状 (2) 1.2现存解决方案 (2) 第二章NAT技术分析 (3) 2.1NAT类型 (3) 2.2NAT术语 (4) 2.3NAT工作原理 (4) 第三章NAT的应用实例 (6) 3.1实例描述 (6) 3.2实例的设计方案 (7) 3.3实例的配置重点 (8) 3.4实例的分析 (10) 结束语 (12) 参考文献 (13)

商丘科技职业学院毕业论文 绪论 随着互联网的普及,接入网络的计算机数量增长非常迅速,目前使用的IPv4地址空间有限,可用的公网合法IP非常短缺。人们为了缓解日益恶化的地址缺乏问题,在IP地址的分配和保留IP地址方面采取了许多办法。现存的解决办法包括ISP方面对公网地址的动态分配与回收、使用DHCP动态分配与回收、可变长子网掩码(VLSM)[1]技术、无类域间路由(CIDR)技术,甚至提出新一代的IPv6[3]技术从根本上解决地址空间问题,但由于多方面的原因,IPv6到目前还没有得到普及,而网络地址转换(NA T)[2]技术的使用,是我们至今在互联网上没有使用完合法IPv4地址的真实原因。它主要思想是把本地的私有IP地址映射到公网的合法IP 地址,以缓解可用IP地址空间的消耗。虽然,它没有像IPv6那种从根本上解决问题,但在IPv6没有得到普及的今天,成为了事实上广泛使用的解决方法。

思科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)、指定连接外部网络的外部端口在端口设置状态下输入:

思科交换机NAT配置介绍及实例

思科交换机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地址必须采用静态地址转换,以便外部用户可以使用这些服务。 静态地址转换基本配置步骤:

2019年电信屏蔽端口范围

2019年电信屏蔽端口范围 篇一:电信屏蔽80端口怎么做网站服务 电信屏蔽80端口怎么做网站服务? 使用nat123端口映射穿透80发布网站做网站服务。实现简要过程: 1.配置nat123端口映射。添加映射。外网端口指定是80。 2.映射后,访问网站正常。 篇二:常用端口号与对应的服务以及端口关闭 常用端口号与对应的服务以及端口关闭 端口简介:本文介绍端口的概念,分类,以及如何关闭/开启一个端口 21端口:21端口主要用于FTP(FileTransferProtocol,文件传输协议)服务。23端口:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。

25端口:25端口为SMTP(SimpleMailTransferProtocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。 53端口:53端口为DNS(DomainNameServer,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。 67、68端口:67、68端口分别是为Bootp服务的BootstrapProtocolServer(引导程序协议服务端)和BootstrapProtocolClient(引导程序协议客户端)开放的端口。69端口:TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。 79端口:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。 80端口:80端口是为HTTP(HyperTextTransportProtocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在(WorldWideWeb,万维网)服务上传输信息的协议。

NAT设置之端口转发和端口映射和DMZ的区别

无线路由器——NAT设置 NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口,打个比方就像院子的门一样)处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet 连接,这一功能很好地解决了公共IP地址紧缺的问题。通过这种方法,您可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。这时,NAT屏蔽了内部网络,所有内部网计算机对于公共网络来说是不可见的,而内部网计算机用户通常不会意识到NAT的存在。 无线路由器的NAT设置,一般用于处于内网的主机需要打开某些端口供外网电脑访问从而提供服务,比如说网站服务器。 我以JCG JHR-N926R这款无线路由器为例跟大家分享分享NAT设置。通常情况下,路由器都有防火墙功能,互联网用户只能访问到你的路由器WAN口(接ADSL线口),而访问不到内部服务器。要想让外面用户访问到局域网内的服务器,那么你就要在路由器上做一个转发设置,也就是端口映射设置,让用户的请求到了路由器后,并能够到达游戏服务器或WEB服务器。这就是端口映射/端口转发。有时也称

为虚拟服务。 下面有三种NAT的设置方案。 第一步:设置服务器端口首先把服务器要开放的端口设置好,并把服务器的防火墙关闭,否则外网不能通过服务器。下面可以选择三种方案中的一种进行设置使用。 第二步:路由器的设置 第一方案:端口转发连接好路由器,进入路由器的设置界面——点击“高级设置”——点击“NAT”,出现如下界面 : “IP地址”这里填入您给服务器指定的IP地址(这个IP必须的固定的,否则IP地址改变的话,您的端口转发就不能成功)。 “内部端口”这里填入服务器设置好的端口号,也就是局域网访问服务器时要使用的端口号。这里的端口号必须和服务器要开放的端口号一致。 “外部端口”这里填入外网访问服务器时使用的端口号,这里的端口号可以自己设定。“服务备注”这里主要是为了方便您知道这个开放端口的意思,随便自己填写,只要自己明白就好。 这些都填写完成之后,在后面的“启用”那里打上钩,最后点击“应用”按钮,那么整个端口转发就设置完成了。 第二方案:端口映射连接好路由器,进入路由器的设置界面——点

NAT技术

NAT技术

目录 第1章NAT协议及其应用 (3) 1.1 NA T技术相关术语介绍 (3) 1.2 NA T技术介绍 (4) 1.3 典型应用 (6)

第1章NAT协议及其应用 本节主要介绍NA T(network address translate 网络地址转换)的原理及实现。 本节主要内容: ●NA T技术相关术语介绍 ●NA T技术介绍 ●典型应用 1.1NAT技术相关术语介绍 内部本地地址(IL,Inside local)——分配给内部设备的地址。这些地址不会对外公布。 内部全局地址(IG,Inside global)——一通过这个地址,外部可以知道内部设备。 外部全局地址(OG,Outside global)——分配给外部设备的地址。这些地址不会向内部公布。 外部本地地址(OL,Outside local)——通过这个地址,内部设备可以知道外部设备。 地址池——可用地址的地址范围定义。在定义一个地址池以后,当内部网络与外部通信时,系统将从地址池中选择一个可用地址进行地址的转换;地址池的定义包括地址范围、掩码等定义。 静态转换——在内部本地地址与内部全局地址之间建立起一个一一对应的关系,比如,当需要给一台内部主机设定一个唯一的全局地址时,可使用静态转换。 动态转换——动态转换一般在内部本地地址与全局地址之间建立一个映射,地址的映射关系并非事先就确定好的,在需要建立一个转换时在地址池中选择一个可用地址建立转换关系。 重载——对于地址池中的地址,又分为可重载与不可重载两种情形。重载允许同时将多个本地地址映射到同一个全局地址,而通过所使用的端口来区分。 负载均衡——当存在多台主机同时承担同一件工作时,(如对于许多大的站点,可能存在多台Web Server或者FTP服务器、邮件服务器等),存在一个任务的均衡协调问题,以求各主机上分担的负载尽量平衡。NA T可以从某种程度上达到这一目的。

NAT技术原理

nat网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。编辑本段网络地址转换(NAT)简介NAT概述NAT(Network Address Translation,网络地址转换)是将IP 数据报报头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP 地址空间的枯竭。[1] 说明:私有IP 地址是指内部网络或主机的IP 地址,公有IP 地址是指在因特网上全球唯一的IP 地址。RFC 1918 为私有网络预留出了三个IP 地址块,如下: A 类:10.0.0.0~10.255.255.255 B 类:172.16.0.0~172.31.255.255 C 类:192.168.0.0~192.168.255.255 上述三个范围内的地址不会在因特网上被分配,因此可以不必向ISP 或注册中心申请而在公司或企业内部自由使用。NAT技术的产生虽然NAT可以借助于某些代理服务器来实现,但考虑到运算成本和网络性能,很多时候都是在路由器上来实现的。随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地址。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT技术。NAT技术的作用借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,一个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机与Internet的通信需求。NAT将自动修改IP报文的源IP 地址和目的IP地址,Ip地址校验则在NAT处理过程中自动完成。有些应用程序将源IP 地址嵌入到IP报文的数据部分中,所以还需要同时对报文的数据部分进行修改,以匹配IP头中已经修改过的源IP地址。否则,在报文数据都分别嵌入IP地址的应用程序就不能正常工作。NAT技术实现方式NAT的实现方式有三种,即静态转换Static Nat、动态转换Dynamic Nat 和端口多路复用OverLoad。静态转换是指将

远程连接技术

目前可用的远程连接技术: 传统的二层技术:如帧中继,ATM,和租用线路 能够提供灵活的,可扩展且全网状互连的服务提供商MPLS VPN 经公用互联网的IPSec VPN 1.传统的2层技术 非常安全,但是成本是非常低的,且灵活性较差 2.服务提供商MPLS VPN MPLS VPN的本质是以一种安全的方式为全网提供3层全网连接,相比于用2层连接来提供这种全网状互连,成本低很多。 3.经公用网络的站点间的VPN 前面两种VPN主要用适用于园区到分支机构的连接,很少用于驻地环境。利用互联网作为VPN连接传送载体,连接到园区网或者中心站点是最可行也是最好的一种远程连接。根据用户的需求和连接的本质,该连接可以是:由放置在用户家里的路由器提供的总是在在线的VPN连接;也可以是由笔记本电脑按需通过VPN客户端建立的VPN连接。 这些远程连接,必须建立在远程接入的基础上,目前比较流行的远程接入技术有: 电缆(cable) DSL 光纤接入 光纤接入提供的带宽容量最大(下行5-30Mbits,上行2-5Mbits);电缆和DSL解决方案提供的带宽容量相对较低(下行1.5-10Mbits,上行可变),现在电缆和DSL的竞争很激烈。 为远程连接还要提供的基础设施: IPsec VPN:在公用互联网上建立一条安全隧道,提供到中心站点总是在线的安全连接 远程接入VPN:利用VPN软件客户端按需提供一条安全连接。 安全:包括防火墙,IPS(入侵检测系统)以及WEB过滤。

认证:验证访问网络资源的的用户身份。 QOS :确保关键流量对带宽的使用 管理:即使企业无法控制远程设备,也要实现远程资源的管理。 远程工作者组件: 家庭办公组件 企业组件 IP电话、视屏组件 家庭组件:接入方式;带QOS功能的远程VPN路由器,PC机,还有摄像机,IP电话。 企业组件:VPN头端路由器,ASA,管理服务,AAA服务等。 电缆接入技术 电缆接入技术是目前发展最快的一种接入方式,一般采用捆绑式的销售方式,为用户同时提供电视;互联网接入,语音等混合服务。 电缆技术术语: 宽带:在电缆系统中,是指在HFC(混合光纤同轴电缆网络)提供的RF(射频)带宽上进行的多信号FDM(频分复用),以及处理大量信息的能力; FDM是一种将多个信道或频率的信息分配到单一线路的技术。 CATV:通常指有线电视。 同轴电缆:构建有线电视网络的主要介质,同轴电缆用于传输RF信号。 分支器:用以支持多个出口 放大器:用于放大输入信号,以产生较大的输出信号 HFC:光纤,同轴电缆混合网络 上行:RF信号从用户端向头端发送 下行:RF信号从头端到用户。

NAT地址转换-服务器端口映射实验

NAT地址转换-服务器端口映射实验(绝对的经典可以跟单臂路由相媲美) 2014年11月27日(网络设备配置技术实验课堂手工敲打总结啊) 看完后觉得赞,快去下载吧,送老师几个豆 张文武广东省高级技工学校网络技术专业教师 项目背景:某企业的网络拓扑图如图3-41所示,路由器通过专线连接到外网,只有一个公网地址:202.99.111.2;内网的网段是192.168.0.0/24,内网有一台Web服务器(192.168.1.100)和一台Ftp服务器(192.168.1.101)需要同时对外网提供服务。要求在路由器上设置端口映射,把公网地址202.99.111.2的TCP80端口映射到Web服务器服务器;TCP21端口映射到Ftp服务器,现将路由器配置如下: 拓扑图: 配置思路:(非常重要) 1按要求画图 2把相应的IP地址配置到对应的设备或端口上。 3三层交换机,路由配置静态路由使网络畅通 4路由器上做NA T地址转换,使内部网络可以上网 5路由器上做端口映射,确保外部用户能够安全访问web,和FTP服务 具体配置过程: 一拓扑结构图 二IP配置 1.给路由器端口配置IP地址

R>en R#conf t R(config)#int f0/0 R(config-if)#ip add 202.99.111.2 255.255.255.252 R(config-if)#no sh R(config)#int f0/1 R(config-if)#ip add 192.168.0.1 255.255.255.0 R(config-if)#no sh 2.给交换机端口配置IP地址 Switch>en Switch#config t Switch(config)#int f0/1 Switch(config-if)#no switchport //把端口f0/1改变为路由端口模式 Switch(config-if)#ip add 192.168.0.2 255.255.255.0 Switch(config-if)#no sh 给内部主机设置网关地址: Switch(config)#in vlan 1 Switch(config-vlan)#ip add 192.168.1.1 255.255.255.0 Switch(config-vlan)#no sh 三交换机路由器配置静态路由 1三层交换配置静态路由确保内部主机外出的数据包转发路由器的内网接口f0/1 switch>en switch #conf t switch(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.1 2路由将要发往外部的数据包转发到运营商的IP202.99.111.1/30 R>en R#config t R(config)#ip route 0.0.0.0 0.0.0.0 202.99.111.1 3路由器从外网中接受到返回内网数据,配置一条回指路由,转发给三层f0/1口R(config)#ip route 192.168.1.0 255.255.255.0 192.168.0.2 四在路由器上配置NAT地址转换,将内网中的私有地址转换为公有地址: R>en R#config t R(config)#int f0/0 R(config-if)#ip nat outside

NAT技术基本原理及其在实际中的应用

2009年1月第14卷第1期 西 安 邮 电 学 院 学 报 JOURNAL OF XI ’AN UN IV ERSIT Y OF POST AND TEL ECOMMUN ICA TIONS Jan.2009 Vol 114No 11 收稿日期:2008-10-21 作者简介:李广华(1981-),男,河南洛阳人,西安邮电学院通信技术研究所硕士研究生; 朱志祥(1959-),男,天津人,西安邮电学院通信技术研究所教授; 李振兴(1976-),男,山西太原人,西安邮电学院通信技术研究所硕士研究生。 NA T 技术基本原理及其在实际中的应用 李广华,朱志祥,李振兴 (西安邮电学院通信技术研究所,陕西西安 710061) 摘要:网络地址翻译(NA T )技术是Internet 上最常见的网络技术之一。正确检测识别NA T 的具体实现形式,无论对于网络安全还是网络应用都是十分必要的。论文给出了NA T 技术的基本原理和类型,深入分析了NA T 穿越技术在P2P 中的应用,并描述应用程序穿越中间设备建立P2P 通讯时可能产生的安全问题。关键词:NA T ;公有地址;私有地址;地址映射;地址翻译 中图分类号:TP393 文献标识码:A 文章编号:1007-3264(2009)01-0091-05 随着Internet 的飞速发展,网上丰富的资源产生着巨大的吸引力,接入Internet 、访问Internet 已经成为大众需求。这样就面临两个最迫切的问题:IP 地址的匮乏和路由规模的扩大。对此,长期的和 短期的解决方案都有所发展,那就是网络地址转换(NA T )和IPv6技术。 几年前,人们就意识到目前的IPv4地址空间将会耗尽。在IPv6技术上在研究中切还未完全取代现有的IPv4的情况下,短期解决方案NA T 技术对于缓解目前的地址缺乏问题,具有积极意义。NA T 核心就是要把一个私有地址域里的地址转换为可路由的全局因特网地址,这样就使得内部主机访问因特网得以实现。 1 基本原理及其类型 1.1 基本原理 NA T (Network Address Translation ,网络地址 转换),它允许一个机构以一个公有IP 地址出现在Internet 上。将局域网内每个节点的私有地址转换 成一个公有IP 地址,反之亦然。而且,它可以应用于防火墙技术,把个别地址隐藏起来不被外界发现, 使外界无法直接访问内部网络设备。同时,它可以帮助网络超越地址的限制,合理地安排网络中的公有Internet 地址和私有IP 地址的使用。 NA T 技术能帮助解决令人头疼的IP 地址紧缺 的问题,实现公网地址和私网地址之间的映射,而且能使内部和外部的网络隔离,提供一定程度的网络安全保障。它解决问题的办法是:在内部网络中使用内部地址,通过NA T 把内部地址翻译成合法的IP 地址在Internet 上使用,其具体的做法是把IP 包 内的地址域用合法的外部IP 地址来替换。工作的基本流程可以从两个方面来概括: (1)当私网内的IP 包经NA T 流入公网时,NA T 将此IP 包的源IP 地址改为NA T 接口上的一 个公网地址。 (2)当公网中的IP 包经NA T 访问私网资源时,NA T 将此IP 包目的地址改为某一私网IP 地址。 下面通过一个网络结构图举例说明NA T 技术工作流程。网络结构图,如图1所示。 由图1可见,NA T A 后的主机A (内网地址为192.168.2.50)需要向公网中的Proxy 通信,主机从5000端口发送消息至NA T A 。NA T A 发现此IP 地址,从空闲的端口中分配一个给这个连接(比如

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,后面的载荷是自己的地址和端口,如果本地有多个地址,则要发送多个载荷,包括所有地址和

相关主题