导航:首页 > 配服务器 > 如何通过nat服务器实现代理

如何通过nat服务器实现代理

发布时间:2024-06-03 14:31:17

‘壹’ 代理服务器工作原理并使用软件,应用软件。

分类: 电脑/网络 >> 软件 >> 其他软件
解析:

(1) 代理服务原理

代理服务器有很多种,大体来说有,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。

当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。

机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。

例如,用代理上网。

过程是

机器和代理服务器建立TCP连接。

机器发出GET命令。这时GET命令中包含URL或IP地址,明文。

代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。

我们需要解析第一个GET包。

现在来看几种代理方式。

(get)

(connect)

ftp (user user@host:port)

ftp (user user@host port)

ftp (open host)

ftp (site host)

ftp (site user@host)

socks5

socks4

这些代理方式都有一个特点。就是在连接时,都会先和代理服务器连接,发出请求,一般为 mand url,mand就是get,connect,user 等。和ftp都一样,可以通过关键字来识别。而且url是明文。Socks有些特别。它不是明文的,而是十六进制数据。要获得IP地址,还要经过转换。

(2) 目前的代理服务技术

代理服务技术是在一台PC机上安装一套代理软件,主要用于用户对Inter资源的访问。

ICS即Inter连接共享(Inter Connection Sharing)的英文简称,是Windows系统针对家庭网络或小型的Intra网络提供的一种Inter连接共享服务。它实际上相当于一种网络地址转换器,所谓网络地址转换器就是当数据包向前传递的过程中,可以转换数据包中的IP地址和TCP/UCP端口等地址信息。有了网络地址转换器,家庭网络或小型的办公网络中的电脑就可以使用私有地址,并且通过网络地址转换器将私有地址转换成ISP分配的单一的公用IP地址从而实现对Inter的连接。ICS方式也称之为Inter转换连接。

软件:Wingate,、Winproxy

NAT即网络地址转换(Neork Address Translator),从广义上讲,ICS也是使用了一种NAT技术,不过我们这里讨论的NAT是指将运行Windows 2000 Server的计算机作为IP路由器,通过它在局域网和Inter主机间转发数据包从而实现Inter的共享。NAT方式也称之为Inter的路由连接。网络地址转换NAT通过将专用内部地址转换为公共外部地址,对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP 地址,从而减少了IP 地址注册的费用。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

软件:WinRoute、Sygate

(3) 代理数据变代

非透明代理:

上网主机向代理提交TCP连接请求:源ip(上网主机)目标ip(代理服务器)

***********: 45 00 01 9E 64 CE 40 00 80 06 17 C0 C0 A8 FD 91 E...d.@.........

***********: C0 A8 FD E8 12 47 04 38 FB 32 8B 56 7E 55 57 EA .....G.8.2.V~UW.

***********: 50 18 44 70 1B EC 00 00 47 45 54 20 68 74 74 70 P.Dp....GET

***********: 3A 2F 2F 77 77 77 2E 63 63 74 76 2E 63 6F 6D 2E haozs.

***********: 63 6E 2F 20 48 54 54 50 2F 31 2E 30 0D 0A 41 63 / HTTP/1.0..Ac

***********: 63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 66 2C cept: image/gif,

***********: 20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D 61 70 image/x-xbitmap

***********: 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 69 6D , image/jpeg, im

***********: 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69 age/pjpeg, appli

***********: 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D 65 78 cation/vnd.ms-ex

000000a0: 63 65 6C 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E cel, application

000000b0: 2F 76 6E 64 2E 6D 73 2D 70 6F 77 65 72 70 6F 69 /vnd.ms-powerpoi

000000c0: 6E 74 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F nt, application/

000000d0: 6D 73 77 6F 72 64 2C 20 61 70 70 6C 69 63 61 74 msword, applicat

000000e0: 69 6F 6E 2F 78 2D 73 68 6F 63 6B 77 61 76 65 2D ion/x-shockwave-

000000f0: 66 6C 61 73 68 2C 20 2A 2F 2A 0D 0A 41 63 63 65 flash, */*..Acce

***********: 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 2D pt-Language: zh-

***********: 63 6E 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 ..User-Agent:

***********: 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D Mozilla/4.0 (

***********: 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 36 2E patible; MSIE 6.

***********: 30 3B 20 57 69 6E 64 6F 77 73 20 4E 54 20 35 2E 0; Windows NT 5.

***********: 32 3B 20 2E 4E 45 54 20 43 4C 52 20 31 2E 31 2E 2; .NET CLR 1.1.

***********: 34 33 32 32 29 0D 0A 48 6F 73 74 3A 20 77 77 77 4322)..Host:

***********: 2E 63 63 74 76 2E 63 6F 6D 2E 63 6E 0D 0A 50 72 .haozs.ne..Pr

***********: 6F 78 79 2D 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 oxy-Connection:

***********: 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 0D 0A FD 00 Keep-Alive......

代理服务器转换后的数据:源IP(代理服务器) 目IP(网站IP)

***********: 45 00 01 88 5D 4E 40 00 80 06 19 55 C0 A8 FD E8 E...][email protected]....

***********: CA 6C F9 CE 06 AC 00 50 7E 57 F3 C7 E1 41 2F 21 .l.....P~W...A/!

***********: 50 18 44 70 F9 DF 00 00 47 45 54 20 2F 20 48 54 P.Dp....GET / HT

***********: 54 50 2F 31 2E 30 0D 0A 41 63 63 65 70 74 3A 20 TP/1.0..Accept:

***********: 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image

***********: 2F 78 2D 78 62 69 74 6D 61 70 2C 20 69 6D 61 67 /x-xbitmap, imag

***********: 65 2F 6A 70 65 67 2C 20 69 6D 61 67 65 2F 70 6A e/jpeg, image/pj

***********: 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E peg, application

***********: 2F 76 6E 64 2E 6D 73 2D 65 78 63 65 6C 2C 20 61 /vnd.ms-excel, a

***********: 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D pplication/vnd.m

000000a0: 73 2D 70 6F 77 65 72 70 6F 69 6E 74 2C 20 61 70 s-powerpoint, ap

000000b0: 70 6C 69 63 61 74 69 6F 6E 2F 6D 73 77 6F 72 64 plication/msword

000000c0: 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D , application/x-

000000d0: 73 68 6F 63 6B 77 61 76 65 2D 66 6C 61 73 68 2C shockwave-flash,

000000e0: 20 2A 2F 2A 0D 0A 41 63 63 65 70 74 2D 4C 61 6E */*..Accept-Lan

000000f0: 67 75 61 67 65 3A 20 7A 68 2D 63 6E 0D 0A 55 73 guage: zh-..Us

***********: 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C er-Agent: Mozill

***********: 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C a/4.0 (patibl

***********: 65 3B 20 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E e; MSIE 6.0; Win

***********: 64 6F 77 73 20 4E 54 20 35 2E 32 3B 20 2E 4E 45 dows NT 5.2; .NE

***********: 54 20 43 4C 52 20 31 2E 31 2E 34 33 32 32 29 0D T CLR 1.1.4322).

***********: 0A 48 6F 73 74 3A 20 77 77 77 2E 63 63 74 76 2E .Host: cctv.

***********: 63 6F 6D 2E 63 6E 0D 0A 50 72 6F 78 79 2D 43 6F ..Proxy-Co

***********: 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 nnection: Keep-A

***********: 6C 69 76 65 0D 0A 0D 0A FD 00 00 00 00 00 00 00 live............

通过非透明代理上网,上网主机向代理提交连接请求。在请求包里,包含了真正目标的URL,通过代理转交。

ftp代理

代理服务器是明文

..]ZY...][email protected][email protected]@...yr.........i.I6u[.....P....l..USER [email protected]...

代理

代理是明文

..]ZY...][email protected][email protected].*[email protected] haozs/ HTTP/1.0..Accept: */*..Accept-Language: zh-..Accept-Encoding: gzip, deflate..User-Agent: Mozilla/4.0 (patible; MSIE 5.01; Windows NT 5.0)..Host: mp3.yzu.e..Proxy-Connection: Keep-Alive..Pragma: no-cache..Cookie: ASPSESSIONIDQQCDACCS=CLCLPECCDCEKIGEOKFAFNDAG......-.....0......

socks5代理

socks5代理都不是明文,是数据。

202.204.8.10:21

CA CC 08 0A 00 15

如果使用的是域名,就是明文

..]ZY...][email protected]..>[email protected]%p:.P...;........vod.sjtu.e.....

qq 代理

当qq上线的时候会和腾迅的服务器联系

..]ZY...][email protected]@...m*...........8]...3.j.P....6..CONNECT 218.18.95.165:443 HTTP/1.1..Accept: */*..Content-Type: text/..Proxy-Connection: Keep-Alive..Content-length: 0................

qq socks5代理

当qq使用socks5代理的时候,不是明文,是数据

CA 60 AA A5

202.96.170.165:8000

(4) VLAN工作原理的研究

VLAN(Virtual Local Area Neork)就是虚拟局域网的意思。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在一个支持VLAN的交换机端口上并属于一个VLAN。同一个VLAN中的成员都共享广播,形成一个广播域,而不同VLAN之间广播信息是相互隔离的。这样,将整个网络分割成多个不同的广播域(VLAN)。一般来说,如果一个VLAN里面的工作站发送一个广播,那么这个VLAN里面所有的工作站都接收到这个广播,但是交换机不会将广播发送至其他VLAN上的任何一个端口。如果要将广播发送到其它的VLAN端口,就要用到三层交换机。

‘贰’ 华硕路由的Open NAT有什么用,怎么用

大多数代理服务器,防火墙将限制对接口的访问。这些设定可能会导致在玩在线游戏时导致连接失败。OpenNAT是一项新功能,它允许用户打开端口,并允许通过预设的游戏设定档通过防火墙连接到您的家庭网络。

如何设定OpenNAT?


1. 首先将电脑与路由器以网线连接,开启浏览器,进入路由器登入接口

2. 输入您的ASUS路由器账号和密码后,登录进路由器

‘叁’ Win中配置NAT服务器

本文介绍了如何通过使用Windows Server 2003来配置网络地址转换(NAT)服务器。Windows Server 2003“路由和远程访问”服务包括NAT路由协议。如果将NAT路由协议安装和配置在运行“路 由和远程访问”的服务器上,则使用专用Internet协议(IP)地址的内部网络客户端可以通过NAT服务器的外部接口访问Internet。

如何配置路由和远程访问NAT服务器

当内部网络客户端发送要连接Internet的请求时,NAT协议驱动程序会截取该请求,并将其转发到目标Internet服务器。所有请求看上去都像是来自NAT服务器的外部IP地址。这样就隐藏您的'内部IP地址配置。

配置“路由和远程访问”NAT服务器:

在管理工具菜单中,选中“路由和远程访问”。

在“路由和远程访问”MMC中,展开您的服务器名称(其中服务器名称是您要配置服务器的名称,然后展开左窗格中的IP路由。

选中常规,然后选择新建路由协议。

单击NAT/基本防火墙复选框,将其选中,然后点确定。

右键单击左窗格中的NAT/基本防火墙,然后单击新建接口。

单击表示内部网络接口的接口,然后单击确定。

在“网络地址转换”属性中,单击“专用接口连接到专用网络”,然后单击确定。

右键单击左窗格中的NAT/基本防火墙,然后点新建接口。

单击表示外部网络接口的接口,然后点确定。

在“网络地址转换”属性中,单击“公用接口连接到Internet”。

单击“在此接口上启用NAT”复选框,将其选中,点确定。

NAT服务器可以自动为内部网络客户端分配IP地址。如果您没有已给内部网络上的客户端分配了地址信息的DHCP服务器,则可能会需要使用此功能。

如何配置路由和远程访问NAT服务器以分配IP地址和执行代理DNS查询NAT服务器还可以代表NAT客户端执行域名系统(DNS)查询。“路由和远程访问”NAT服务器对包括在客户端请求中的Internet主机名进行解析,然后将该IP地址转发给该客户端。

要配置“路由和远程访问”NAT服务器来分配IP地址并且代表内部网络客户端执行代理DNS查询,请按以下步骤操作:

右键单击左窗格中的NAT/基本防火墙,然后单击属性。

单击地址分配选项卡,然后单击“使用DHCP自动分配IP地址”复选框,将其选中。

在IP地址框中,键入网络ID。

在掩码框中,键入子网掩码。

选择名称解析选项卡,然后单击“使用域名系统(DNS)的客户端”复选框,将其选中。

如果您使用请求拨号接口连接到Internet,请单击“当名称需要解析时连接到公用网络”复选框,将其选中。

在请求拨号接口框中,选中要拨号的接口。

选择应用,然后单击确定。

备注:完成这些基本配置步骤之后,内部网络客户端就可以访问Internet上的服务器了。

如何配置基于Windows Server 2003的计算机以使用NAT服务器

单击开始,指向控制面板,指向网络连接,然后单击本地连接。

单击属性。

单击Internet协议(TCP/IP)。

单击属性。

在“默认网关”框中,键入NAT服务器的内部IP地址。

备注:如果计算机从“动态主机配置协议”(DHCP)服务器接收它的IP地址,请单击高级,单击IP设置选项卡,单击网关下的添加,键入NAT服务器的内部IP地址,单击添加,单击确定,然后继续进行第6步。

单击确定,单击确定,然后单击关闭。

‘肆’ NAT将私网IP转换为公网IP的过程是哪些

随着IPv6时代的到来,我也一直怀疑,是不是还旁州有必要再去学习NAT技术——因为网络的资源不再如IPv4时代匮乏,而NAT技术正是为解决IP地址的紧缺而存在的,如此,NAT便没有存在的必要了。

但是,随着拿慧这篇文章的翻译,我的怀疑慢慢变成庆幸,渐而又变为肯定,通过翻译所学到的东西,不再仅仅是翻译第一手资料带来的成就感,更多的是通过翻译,去领悟技术前辈们的智慧与经验,也通过翻译,养成自己从第一手资料获得信息的习惯,从而将视野放得更宽,让理解更为透彻——至少,很多东运敏蔽西都是要经过仔细斟酌才真正转化为自己思想的一部分的。正是如此,我才坚定的要把这篇文章翻译完,也如之前所提到的,如果时间允许的话,我会用C#来写一些例子,让大家更好的理解NAT技术,掌握NAT技术(主要涉及到即时通讯、文件对等传输和语音应用三个方面)。

这篇文章主要是介绍一下“代理”机制的起因以及给P2P应用带来的不便,不需要任何基础知识:)

1. Introction

1、简介

关键词:

middleboxe(s) —— 我翻译成“代理”,也许有更好的翻译

host —— 我翻译成“主机”,希望大家不要理解成服务器了,主机就是一台普通的终端机

Present-day Internet has seen ubiquitous deployment of "middleboxes" such as network address translators(NAT), driven primarily by the ongoing depletion of the IPv4 address space. The asymmetric addressing and connectivity regimes established by these middleboxes, however, have created unique problems for peer-to-peer (P2P) applications and protocols, such as teleconferencing and multiplayer on-line gaming. These issues are likely to persist even into the IPv6 world, where NAT is often used as an IPv4 compatibility mechanism [NAT-PT], and firewalls will still be commonplace even after NAT is no longer required.

在当今的Internet中,普遍存在使用“代理”设备来进行网络地址转换(NAT),导致这种现象的原因是 IPV4 地址空间的资源耗尽危机。虽然不对称 asymmetric 的地址分配和连通性制度已经在代理中被定义,但是却给端对端应用程序和协议制定造成了一些特殊的问题。像电话会议和多媒体网络游戏。这些问题即使在IPV6世界中还是会存在,因为NAT作为IPV4的一种兼容性机制经常被使用[NAT-PT],并且防火墙将仍然将普遍存在,即使不再需要NAT技术。

Currently deployed middleboxes are designed primarily around the client/server paradigm, in which relatively anonymous client machines actively initiate connections to well-connected servers having stable IP addresses and DNS names.

Most middleboxes implement an asymmetric communication model in which hosts on the private internal network can initiate outgoing connections to hosts on the public network, but external hosts cannot initiate connections to internal hosts except as specifically configured by the middlebox's administrator. In the common case of NAPT, a client on the internal network does not have a unique IP address on the public Internet, but instead must share a single public IP address, managed by the NAPT, with other hosts on the same private network.The anonymity and inaccessibility of the internal hosts behind a middlebox is not a problem for client software such as web browsers, which only need to initiate outgoing connections. This inaccessibility is sometimes seen as a privacy benefit.

当前使用的“代理”技术主要是为 客户端/服务端 C/S 结构设计的,为了实现那些需要连接但是又没有固定IP地址的客户端能够连接到一台配置好的拥有固定IP和DNS域名的服务器。
大多数的“代理”使用一种 asymmetric 通信模型,即 私网(局域网) 的主机能发起一个“外出”连接去连接公网上的主机。 但是公网上的主机却无法发送信息给私网上的主机(除非对“代理”进行特殊的配置),NAPT(网络地址端口转换)的普通情况是,一个私网客户端不需要一个公网的固定的IP地址,但是必须要共享一个由NAPT控制的公网的固定IP地址(当然这个NAPT是处于同一个私网内部的)。这样的话,这些匿名的并且看起来难以触及的藏在NAT之后的内网主机对于像 Web浏览器 这种软件来说就不是一个问题,因为内网的主机只需要发起向外部的连接就可以了。这样一来,无法触及也还是有他的优点的——那就是具有保密性。

In the peer-to-peer paradigm, however, Internet hosts that would normally be considered "clients" need to establish communication sessions directly with each other. The initiator and the responder might lie behind different middleboxes with neither endpoint having any permanent IP address or other form of public network presence. A common on-line gaming architecture, for example, is for the participating application hosts to contact a well-known server for initialization and administration purposes. Subsequent to this, the hosts establish direct connections with each other for fast and efficient propagation of updates ring game play.

Similarly, a file sharing application might contact a well-known server for resource discovery or searching, but establish direct connections with peer hosts for data transfer. Middleboxes create problems for peer-to-peer connections because hosts behind a middlebox normally have no permanently usable public ports on the Internet to which incoming TCP or UDP connections from other peers can be directed.

RFC 3235 [NAT-APPL] briefly addresses this issue, but does not offer any general solutions.

然而,在P2P的应用中,Internet上的“客户机”之间是需要建立一个通信会话直连的。邀请者和响应者也许会处于不同的NAT之后,也许他们都没有固定IP或者即使有也不是公网的IP地址。举例来说,在一个普通的网络游戏体系结构中,都是通过客户端向一个具有公网固定IP的服务器发起申请进行初始化并通过验证的。同时,客户端之间也要建立直连,才使网络间传输的速度加快,保证数据即时更新(不然抢不到装备啊,呵呵)。

同样的,一个文件共享应用程序也必须通过到一个服务器上去查找它想要的资源,然后再到拥有这个数据的主机上去下载(BT网站,走了一个中介),“代理”造成了很多P2P直连的问题,因为藏在“代理”之后的的主机通常没有固定的端口来使其他的客户端发起的TCP或UDP连接能够最终到达。

RFC 3235[NAT-APPL] 简要的提到了这个问题,但是没有给出任何的解决方案。

In this document we address the P2P/middlebox problem in two ways. First, we summarize known methods by which P2P applications can work around the presence of middleboxes. Second, we provide a set of application design guidelines based on these practices to make P2P applications operate more robustly over currently-deployed middleboxes. Further, we provide design guidelines for future middleboxes to allow them to support P2P applications more effectively. Our focus is to enable immediate and wide deployment of P2P applications requiring to traverse middleboxes.

在这篇文章中,我们用两种方式讨论 P2P/代理 的问题。首先,概要的讲叙已有的P2P应用程序能够在现有的代理机制中的工作原理。然后,我们提供一组应用程序设计指南,基于已有的实践,在现有的配置好的代理上,来使得P2P应用程序操作更加有条理。最后,我们提供了设计指南,为以后的代理机制能够更方便支持P2P应用程序。讨论的焦点是如何 直接的、广泛的 配置那些需要经过“代理”的P2P应用程序。
Peer-to-Peer (P2P) communication across middleboxes(术语篇)

2. Terminology

2. 术语

In this section we first summarize some middlebox terms. We focus hereon the two kinds of middleboxes that commonly cause problems for P2P applications.

在这一章节中,首先概要的介绍一下“代理”技术的一些术语。然后集中讨论两种造成P2P应用问题的代理机制。

Firewall

A firewall restricts communication between a private internal network and the public Internet, typically by dropping packets that are deemed unauthorized. A firewall examines but does not modify the IP address and TCP/UDP port information in packets crossing the boundary.

防火墙

防火墙限制了私网与公网的通信,它主要是将(防火墙)认为未经授权的的包丢弃,防火墙只是检验包的数据,并不修改数据包中的IP地址和TCP/UDP端口信息。

Network Address Translator (NAT)

A network address translator not only examines but also modifies the header information in packets flowing across the boundary, allowing many hosts behind the NAT to share the use of a smaller number of public IP addresses (often one). Network address translators in turn have two main varieties:

网络地址转换(NAT)

当有数据包通过时,网络地址转换器不仅检查包的信息,还要将包头中的IP地址和端口信息进行修改。以使得处于NAT之后的机器共享几个仅有的公网IP地址(通常是一个)。网络地址转换器主要有两种类型:

Basic NAT

A Basic NAT maps an internal host's private IP address to a public IP address without changing the TCP/UDP port numbers in packets crossing the boundary. Basic NAT is generally only useful when the NAT has a pool of public IP addresses from which to make address bindings on behalf of internal hosts.

基础NAT

基础NAT 将私网主机的私有IP地址转换成公网IP地址,但并不将TCP/UDP端口信息进行转换。基础NAT一般用在当NAT拥有很多公网IP地址的时候,它将公网IP地址与内部主机进行绑定,使得外部可以用公网IP地址访问内部主机。(译者注:实际上是只将IP转换,192.168.0.23 <-> 210.42.106.35,这与直接设置IP地址为公网IP还是有一定区别的,特别是对于企业来说,外部的信息都要经过统一防火墙才能到达内部,但是内部主机又可以使用公网IP)

Network Address/Port Translator (NAPT)

By far the most common, a Network Address/Port Translator examines and modifies both the IP address and the TCP/UDP port number fields of packets crossing the boundary, allowing multiple internal hosts to share a single public IP address simultaneously.

Refer to [NAT-TRAD] and [NAT-TERM] for more general information on NAT taxonomy and terminology. Additional terms that further classify NAPT are defined in more recent work [STUN]. When an internal host opens an outgoing TCP or UDP session through a network address/port translator, the NAPT assigns the session a public IP address and port number so that subsequent response packets from the external endpoint can be received by the NAPT, translated, and forwarded to the internal host. The effect is that the NAPT establishes a port binding between (private IP address, private port number) and (public IP address, public port number).

The port binding defines the address translation the NAPT will perform for the ration of the session. An issue of relevance to P2P applications is how the NAT behaves when an internal host initiates multiple simultaneous sessions from a single (private IP, private port) pair to multiple distinct endpoints on the external network.

网络地址和端口转换 (NAPT)

这是最普遍的情况,网络地址/端口转换器检查、修改包的IP地址和TCP/UDP端口信息,这样,更多的内部主机就可以同时使用一个公网IP地址。

请参考[NAT-TRAD]和[NAT-TERM]两个文档了解更多的NAT分类和术语信息。另外,关于NAPT的分类和术语,[STUN]在最近做了更多的定义。当一个内部网主机通过NAT打开一个“外出”的TCP或UDP会话时,NAPT分配给这个会话一个公网IP和端口,用来接收外网的响应的数据包,并经过转换通知内部网的主机。这样做的效果是,NAPT在 [私有IP:私有端口] 和[公网IP:公网端口]之间建立了一个端口绑定。

端口绑定指定了NAPT将在这个会话的生存期内进行地址转换任务。这中间存在一个这样的问题,如果P2P应用程序从内部网络的一个[私有IP地址:端口]对同时发出多条会话给不同的外网主机,那么NAT会怎样处理呢?请看以下几种方案。

Cone NAT

After establishing a port binding between a (private IP, private port) tuple and a (public IP, public port) tuple, a cone NAT will re-use this port binding for subsequent sessions the application may initiate from the same private IP address and port number, for as long as at least one session using the port binding remains active.

锥形NAT

(译者注:为什么叫做锥形呢?请看以下图形,终端和外部服务器,都通过NAT分派的这个绑定地址对来传送信息,就象一个漏斗一样,筛选并传递信息)

当建立了一个 [私有IP:端口]-[公网IP:端口] 端口绑定之后,对于来自同一个[私有IP:端口]会话,锥形NAT服务器允许发起会话的应用程序 重复使用这个端口绑定,一直到这个会话结束才解除(端口绑定)。

For example, suppose Client A in the diagram below initiates two simultaneous outgoing sessions through a cone NAT, from the same internal endpoint (10.0.0.1:1234) to two different external servers, S1 and S2. The cone NAT assigns just one public endpoint tuple(元组), 155.99.25.11:62000, to both of these sessions, ensuring that the "identity" of the client's port is maintained across address translation. Since Basic NATs and firewalls do not modify port numbers as packets flow across the middlebox, these types of middleboxes can be viewed as a degenerate form of Cone NAT.

例如,假设 Client A(IP地址信息如上图所示)通过一个 锥形NAT 同时发起两个外出的连接,它使用同一个内部端口(10.0.0.1:1234)给公网的两台不同的服务器,S1和S2。锥形NAT 只分配一个公网IP和端口(155.99.25.11:62000)给这个两个会话,通过地址转换可以 确保 Client使用端口的“同一性”(译者注:即这个Client只使用这个端口)。而基础NATs和防火墙却不能修改经过的数据包端口号,它们可以看作是锥形NAT的精简版本。

Symmetric NAT

A symmetric NAT, in contrast, does not maintain a consistent port binding between (private IP, private port) and (public IP, public port) across all sessions.

Instead, it assigns a new public port to each new session. For example, suppose Client A initiates two outgoing sessions from the same port as above, one with S1 and one with S2. A symmetric NAT might allocate the public endpoint 155.99.25.11:62000 to session 1, and then allocate a different public endpoint 155.99.25.11:62001, when the application initiates session 2. The NAT is able to differentiate between the two sessions for translation purposes because the external endpoints involved in the sessions (those of S1 and S2) differ, even as the endpoint identity of the client application is lost across the address translation boundary.

对称NAT

对称NAT,与Cone NAT是大不相同的,并不对会话进行端口绑定,而是分配一个全新的 公网端口 给每一个新的会话。

还是上面那个例子:如果 Client A (10.0.0.1:1234)同时发起两个 "外出" 会话,分别发往S1和S2。对称Nat会分配公共地址155.99.25.11:62000给Session1,然后分配另一个不同的公共地址155.99.25.11:62001给Session2。对称Nat能够区别两个不同的会话并进行地址转换,因为在 Session1 和 Session2中的外部地址是不同的,正是因为这样,Client端的应用程序就迷失在这个地址转换边界线了,因为这个应用程序每发出一个会话都会使用一个新的端口,无法保障只使用同一个端口了。

The issue of cone versus symmetric NAT behavior applies equally to TCP and UDP traffic. Cone NAT is further classified according to how liberally the NAT accepts incoming traffic directed to an already-established (publicIP, public port) pair. This classification generally applies only to UDP traffic, since NATs and firewalls reject incoming TCP connection attempts unconditionally unless specifically configured to do otherwise.

在TCP和UDP通信中, (到底是使用同一个端口,还是分配不同的端口给同一个应用程序),锥形NAT和对称NAT各有各的理由。当然锥形NAT在根据如何公平地将NAT接受的连接直达一个已创建的地址对上有更多的分类。这个分类一般应用在Udp通信(而不是Tcp通信上),因为NATs和防火墙阻止了试图无条件传入的TCP连接,除非明确设置NAT不这样做。这些分类如下:

Full Cone NAT

After establishing a public/private port binding for a new outgoing session, a full cone NAT will subsequently accept incoming traffic to the corresponding public port from ANY external endpoint on the public network. Full cone NAT is also sometimes called "promiscuous" NAT.

全双工锥形NAT

当内部主机发出一个“外出”的连接会话,就会创建了一个 公网/私网 地址,一旦这个地址对被创建,全双工锥形NAT会接收随后任何外部端口传入这个公共端口地址的通信。因此,全双工锥形NAT有时候又被称为"混杂"NAT。

Restricted Cone NAT

A restricted cone NAT only forwards an incoming packet directed to a public port if its external (source) IP address matches the address of a node to which the internal host has previously sent one or more outgoing packets. A restricted cone NAT effectively refines the firewall principle of rejecting unsolicited incoming traffic, by restricting incoming traffic to a set of "known" external IP addresses.

受限制的锥形NAT

受限制的锥形NAT会对传入的数据包进行筛选,当内部主机发出“外出”的会话时,NAT会记录这个外部主机的IP地址信息,所以,也只有这些有记录的外部IP地址,能够将信息传入到NAT内部,受限制的锥形NAT 有效的给防火墙提炼了筛选包的原则——即限定只给那些已知的外部地址“传入”信息到NAT内部。

Port-Restricted Cone NAT

A port-restricted cone NAT, in turn, only forwards an incoming packet if its external IP address AND port number match those of an external endpoint to which the internal host has previously sent outgoing packets. A port-restricted cone NAT provides internal nodes the same level of protection against unsolicited incoming traffic that a symmetric NAT does, while maintaining a private port's identity across translation.

端口受限制的Cone NAT

端口受限制的锥形NAT,与受限制的锥形NAT不同的是:它同时记录了外部主机的IP地址和端口信息,端口受限制的锥形NAT给内部节点提供了同一级别的保护,在维持端口“同一性”过程中,将会丢弃对称NAT传回的信息。

Finally, in this document we define new terms for classifying the P2P-relevant behavior of middleboxes:

最后,在这篇文档里我们将定义一组新的术语 ,以便更好的对P2P代理相关的行为进行分类。

P2P应用程序

P2P应用程序是指,在已有的一个公共服务器的基础上,并分别利用自己的私有地址或者公有地址(或者两者兼备)来建立一个端到端的会话通信。

P2P-Application

P2P-application as used in this document is an application in which each P2P participant registers with a public registration server, and subsequently uses either its private endpoint, or public endpoint, or both, to establish peering sessions.

P2P-Middlebox

A P2P-Middlebox is middlebox that permits the traversal of P2P applications.

P2P代理

P2P代理是一个允许 P2P应用程序进行通信的代理机制

P2P-firewall

A P2P-firewall is a P2P-Middlebox that provides firewall functionality but performs no address translation.

P2P防火墙

P2P防火墙是一个提供了防火墙的功能的P2P代理,但是不进行地址转换.

P2P-NAT

A P2P-NAT is a P2P-Middlebox that provides NAT functionality, and may also provide firewall functionality. At minimum, a P2P-Middlebox must implement Cone NAT behavior for UDP traffic, allowing applications to establish robust P2P connectivity using the UDP hole punching technique.

P2P-NAT

P2P-NAT 是一个 P2P代理,提供了NAT的功能,也提供了防火墙的功能,一个最简的P2P代理必须具有 锥形NAT对Udp通信支持的功能,并允许应用程序利用Udp打洞技术建立强健的P2P连接。

Loopback translation

When a host in the private domain of a NAT device attempts to connect with another host behind the same NAT device using the public address of the host, the NAT device performs the equivalent of a "Twice-nat" translation on the packet as follows. The originating host's private endpoint is translated into its assigned public endpoint, and the target host's public endpoint is translated into its private endpoint, before the packet is forwarded to the target host. We refer the above translation performed by a NAT device as "Loopback translation".

回环转换

当NAT的私网内部机器想通过公共地址来访问同一台局域网内的机器的时,NAT设备等价于做了两次NAT的事情,在包到达目标机器之前,先将私有地址转换为公网地址,然后再将公网地址转换回私有地址。我们把具有上叙转换功能的NAT设备叫做“回环转换”设备。

‘伍’ 浜ゆ崲链哄备綍瀵筃AT杩涜岄槻锣

涓锛 浠g悊鎶链绠浠
浠g悊鎶链鏄鎸囩绣缁滀腑涓嶅叿澶囧悎娉旾P鍦板潃镄勮$畻链洪氲繃涓鍙板叿链夊悎娉旾P鍦板潃镄勮惧囷纸璁$畻链烘垨钥呰矾鐢卞櫒锛夋潵瀵圭绣缁滆繘琛屾e父璁块梾镄勬妧链銆
浜岋紟 浠g悊链嶅姟鍣ㄥ疄鐜版柟寮
1锛 NAT浠g悊鏂瑰纺銆
涓嬮溃鏄阃氲繃NAT杩涜屼唬鐞嗙殑缃戠粶绀烘剰锲撅细
鍦ㄤ笂锲句腑锛屼笅闱㈢殑3鍙皃c链洪兘涓嶅叿澶囱繍钀ュ晢鎻愪緵镄勫悎娉旾P鍦板潃锛屼絾鏄锲犱负璺鐢卞櫒涓庤繍钀ュ晢缃戠粶杩炴帴绔鍙e叿链夊悎娉旷殑IP鍦板潃锛屽洜姝ゆ潵镊涓嬮溃3鍙癙C镄勬暟鎹镄勬簮IP閮藉皢琚杞鎹涓哄悎娉旷殑IP鍦板潃钖庡彂阃佺粰杩愯惀鍟嗘彁渚涚殑缃戠粶锛屽逛簬杩愯惀鍟嗙殑缃戠粶璁惧囨潵璇达纴鏄涓岖煡阆撹繖浜涙暟鎹鏄𨱒ヨ嚜澶氩彴PC銆佽屽彧浼氲や负鏄𨱒ヨ嚜涓鍙板叿澶囧悎娉旾P鍦板潃镄凯C锛屼粠钥屼细灏呜繖浜涙暟鎹杩涜屾e父镄勮浆鍙戯绂褰撴潵镊浜掕仈缃戠殑鏁版嵁鍒拌揪杩愯惀鍟嗙绣缁沧椂锛岃繍钀ュ晢缃戠粶灏嗘g‘镄勬妸鏁版嵁鍙戦佺粰璺鐢卞櫒锛屽綋璇ヨ矾鐢卞櫒鎺ユ敹鍒拌繖镙风殑鏁版嵁镞讹纴浼氭牴鎹甆AT镄勮浆鍙戣〃椤规潵灏嗘暟鎹杞鍙戠粰涓嬮溃杩炴帴镄勫叿浣撶殑鐗瑰畾PC锛屼粠钥岃繖浜涗笉鍏峰囧悎娉旾P鍦板潃镄凯C链哄彲浠ユe父镄勪娇鐢ㄤ簰镵旂绣璧勬簮銆
涓鑸𨱒ヨ达纴璺鐢卞櫒閮芥敮鎸丯AT鎶链锛屽洜姝よ矾鐢卞櫒鍙浠ヤ綔涓轰唬鐞嗘湇锷″櫒浣跨敤锛涘彟澶栵纴windows镎崭綔绯荤粺鎻愪緵镄刬nternet杩炴帴鍏变韩锷熻兘涔熸槸阃氲繃NAT瀹炵幇镄勶纴锲犳ゅ畨瑁呬简windows镎崭綔绯荤粺镄凯C链哄傛灉鍏峰囧氢釜缃戝崱锛屼篃鍙浠ヤ綔涓轰唬鐞嗘湇锷″櫒浣跨敤銆
2锛 搴旂敤绋嫔簭浠g悊鏂瑰纺
涓婂浘涓锛屼笅闱㈢殑3鍙癙C链轰笉鍏峰囧悎娉旷殑IP鍦板潃锛孭C-A鍏锋湁钖堟硶镄処P鍦板潃銆佸苟涓斿畨瑁呬简浠g悊杞浠躲傚綋涓嬮溃镄3鍙癙C闇瑕佽块梾浜掕仈缃戞椂锛屽畠浠灏呜ヨ锋眰鍙戦佺粰PC-A钥屼笉鏄灏呜锋眰鍙戦佺粰链缁堢洰镄勭珯镣癸纴铹跺悗鐢盘C-A钖戠洰镄勭珯镣瑰彂阃佽锋眰锛屽綋PC-A鏀跺埌𨱒ヨ嚜浜掕仈缃戠殑搴旂瓟钖庯纴PC-A鍐嶅皢鎺ユ敹鍒扮殑鏁版嵁鍙戦佺粰涓嬮溃镄凯C链恒
杩欑嶆柟寮忎笌NAT鏂瑰纺镄勫尯鍒鍦ㄤ簬锛歂AT鍙鏄灏嗘暟鎹鎶ョ殑婧怚P鍦板潃杩涜屾浛鎹锛屽疄闄呬笂杩樻槸涓嶅叿澶囧悎娉旾P鍦板潃镄凯C涓庣洰镄勭珯镣硅繘琛岄氢俊锛涜屽簲鐢ㄧ▼搴忎唬鐞呜蒋浠剁殑鏂瑰纺鍒欐槸涓嶅叿澶囧悎娉旾P鍦板潃镄凯C鍙涓庝唬鐞嗘湇锷″櫒阃氢俊锛岀敱浠g悊链嶅姟鍣ㄤ笌鐩镄勭珯镣硅繘琛岄氢俊锛屽苟灏嗙粨鏋滆繑锲炵粰涓嶅叿澶囧悎娉旾P鍦板潃镄凯C銆
浣跨敤浠g悊杞浠惰繘琛屼唬鐞嗙殑缂虹偣锛氩洜涓轰娇鐢ㄤ唬鐞呜蒋浠舵槸阍埚瑰簲鐢ㄥ眰镄勫岗璁杩涜屽紑鍙戠殑锛屾墍浠ラ渶瑕侀拡瀵逛笉钖岀殑搴旂敤绋嫔簭寮鍙戜唬鐞呜蒋浠讹纴镓浠ラ檺鍒跺氨姣旇缉澶氥傛瘆濡傦纴濡傛灉鍙鏀鎸乭ttp浠g悊锛岄偅涔堜笉鍏峰囧悎娉旾P鍦板潃镄凯C灏卞彧鑳介氲繃浠g悊链嶅姟鍣ㄨ繘琛寃eb娴忚堬纴涓嶈兘浣跨敤ftp杩涜屼笅杞斤纴涔熶笉鑳界帺涓浜涚绣缁沧父鎴忋
锲犳わ纴鐩鍓崭娇鐢ㄦ渶澶氱殑浠g悊鏂瑰纺杩樻槸NAT浠g悊鏂瑰纺銆
鍦ㄥ疄闄呯敓娲讳腑锛屾槸缃戠粶杩愯惀鍟嗘瀯寤虹绣缁沧潵瀵瑰跺涵鐢ㄦ埛鎻愪緵缃戠粶鎺ュ叆链嶅姟銆佸苟瀵规疮涓瀹跺涵鐢ㄦ埛鏀跺彇链嶅姟璐圭敤锛岀洰鍓崭娇鐢ㄦ渶澶氱殑璁¤垂鏂瑰纺鏄阍埚规椂闀胯繘琛岃¤垂锛堟瘆濡傚寘链埚埗锛夈备絾鏄鐢变簬浠g悊鎶链镄勫瓨鍦锛岀洰鍓嶈繖绉岖幇璞′篃闱炲父鏅阆嶏细鍗充竴涓瀹跺涵鐢ㄦ埛鐢宠峰紑阃氩藉害涓氩姟銆佷娇鐢ㄤ唬鐞嗘妧链璁╁叾瀹冨跺涵鐢ㄦ埛镄凯C涔熷彲浠ユe父璁块梾缃戠粶銆
杩椤氨鎹熷充简缃戠粶杩愯惀鍟嗙殑鍒╃泭锛氩嵆杩愯惀鍟嗗彧鏀跺叆浜嗕竴涓瀹跺涵鐢ㄦ埛镄勮垂鐢ㄨ屽瑰氢釜瀹跺涵鐢ㄦ埛鎻愪緵浜嗙绣缁沧帴鍏ユ湇锷°傛墍浠ュ湪杩欑嶅満钖堜笅灏遍渶瑕佸逛唬鐞呜繘琛岄槻锣冦
锲涳紟 浜ゆ崲链洪槻浠g悊鏂规堜粙缁
1锛 閲囩敤涓婅仈鍊熷彛鎻掑崱杩涜孨AT浠g悊镄勯勯槻
鍦2灞备氦鎹㈡満镄勪笂镵旂栌鍏嗘帴鍙d笂娣诲姞鍏锋湁杈ㄥ埆鏁版嵁鏄钖︾粡杩嘚AT澶勭悊镄勬帴鍙f彃鍗★纴浣跨敤杩欑嶆彃鍗″悗锛屽嚒鏄鍗冲皢浠庤繖涓鎻掑崱鎺ュ彛鍙戝嚭镄勬暟鎹濡傛灉鏄缁忚繃NAT澶勭悊镄勚侀偅涔堣繖绉嶆暟鎹灏嗕细琚涓㈠纯鎺夛绂锲犳わ纴濡傛灉鍦2灞备氦鎹㈡満涓娄娇鐢ㄩ槻NAT浠g悊鍗★纴骞舵妸鍗′笂镄勬帴鍙d綔涓轰笂镵旀帴鍙o纴鍗冲彲浠ヨ繃婊ゆ帀NAT澶勭悊杩囩殑鏁版嵁銆
浣跨敤阒蹭唬鐞嗗崱钖庣殑缃戠粶搴旂敤𨰾撴墤锛
鍦ㄤ笂锲句腑锛屽湪S2000M浜ゆ崲链轰笂鎻掑叆阒蹭唬鐞嗘帴鍙e崱锛屽苟浠ラ槻浠g悊鍗′笂镄勬帴鍙d綔涓篠2000M浜ゆ崲链虹殑涓婅仈鎺ュ彛锛涘傛灉链夋暟鎹鏄缁忚繃NAT澶勭悊镄勶纴闾d箞褰撹繖涓鏁版嵁灏嗕粠涓婅仈鎺ュ彛鍙戦佸嚭铡诲墠灏卞皢琚阒蹭唬鐞嗗崱涓㈠纯鎺夛纴杩欐牱镄勬暟鎹涓嶈兘瓒婅繃S2000M杩涘叆杩愯惀鍟嗙殑缃戠粶銆佷粠钥屼笉鑳借块梾浜掕仈缃戙
2锛 瀵瑰簲鐢ㄧ▼搴忎唬鐞嗙殑棰勯槻
杩欑嶆柟寮忎笅浠g悊链嶅姟鍣ㄤ负鍏舵墍链嶅姟镄勯潪娉昉C鍙戝嚭镄勪唬鐞嗘暟鎹 鍏跺疄涓庝唬鐞嗘湇锷″櫒链韬涓诲姩涓庡栫晫镄勯氢俊鏄娌℃湁鍖哄埆镄勶纴锲犳や笉鑳藉湪缃戠粶涓澧炲姞鐗瑰畾杩囨护璁惧囩殑鏂瑰纺杩涜屾暟鎹杩囨护銆
锲犳ゅ彲浠ュ湪浜ゆ崲链轰笂瀹夎呴槻浠g悊杞浠舵湇锷″櫒绋嫔簭锛屽湪鎺ュ叆鐢ㄦ埛镄凯C链轰笂瀹夎呴槻浠g悊杞浠跺㈡埛绔绋嫔簭镄勬柟寮忓疄鐜般傚畨瑁呭湪鐢ㄦ埛PC链轰笂镄勯槻浠g悊瀹㈡埛绔绋嫔簭鐢ㄤ簬鐩戞带鐢ㄦ埛镄凯C鏄钖﹁繍琛屼简浠g悊杞浠讹纴濡傛灉杩愯屼简浠g悊杞浠跺垯涓嶅厑璁歌PC链哄悜澶栧彂阃佹暟鎹锛涘悓镞讹纴璇ラ槻浠g悊杞浠跺㈡埛绔绋嫔簭杩桦叿链変笌浜ゆ崲链轰笂镄勯槻浠g悊绋嫔簭浜挜氱殑锷熻兘锛岀敤浜庤╀氦鎹㈡満纭淇濈敤鎴风殑PC涓婅繍琛屼简阒蹭唬鐞嗗㈡埛绔绋嫔簭锛屽傛灉鐢ㄦ埛镄凯C娌℃湁杩愯岄槻浠g悊瀹㈡埛绔绋嫔簭锛岄偅涔堜氦鎹㈡満涓嶆帴鍙楄繖鍙癙C链哄彂阃佽繃𨱒ョ殑鏁版嵁锛屼粠钥屽彲浠ュ疄鐜板己鍒剁敤鎴蜂竴瀹氲佽繍琛岄槻浠g悊绋嫔簭镄勭洰镄勚
浜旓紟 缁撴潫璇
浣滀负瀹氢綅浜庝负缃戠粶杩愯惀鍟嗘彁渚涘悇绉岖绣缁滆惧囩殑铡傚晢锛

阅读全文

与如何通过nat服务器实现代理相关的资料

热点内容
如何云服务器解压文件 浏览:928
单片机93加9E的psw 浏览:723
福建少儿频道哪个app可以看 浏览:393
印度加密代币机票 浏览:418
哪个app可以看江西2套 浏览:680
哪个小说app好用还免费 浏览:665
win7ping命令 浏览:507
程序员看图识算法 浏览:949
vs设置远程编译 浏览:600
速腾汽车怎么给安卓手机充电 浏览:270
苹果安卓换机用什么软件好 浏览:262
华为通话加密电话 浏览:60
什么服务器可以代替计算机 浏览:962
服务器当电脑用怎么安装显卡 浏览:521
回女友消息神器python 浏览:52
App分类框怎么添加 浏览:548
海尔帅王子冰箱压缩机启动跳闸 浏览:490
cadfill命令什么意思 浏览:338
中公专项题库pdf 浏览:935
拼多多缓存在哪个文件夹 浏览:645