现在的位置: 首页 > 综合 > 正文

公网IP/内网IP:

2013年10月07日 ⁄ 综合 ⁄ 共 8757字 ⁄ 字号 评论关闭

转自:http://hi.baidu.com/qkjzsjqsehailte/item/1042151cc0959f426926bbb4

IP地址分配

IP地址标识着网络中一个系统的位置。我们知道每个IP地址都是由两部分组成的:网络号和主机号。其中网络号标识一个物理的网络,同一个网络上所有主机需要同一个网络号,该号在互联网中是唯一的;而主机号确定网络中的一个工作端、服务器、路由器其它TCP/IP主机。对于同一个网络号来说,主机号是唯一的。每个TCP/IP主机由一个逻辑IP地址确定。 
网络号和主机号 
IP地址有两种表示形式:二进制表示(1和0太多了就搞不清)和点分十进制表示。每个IP地址的长度为4字节,由四个8位域组成,我们通常称之为八位体。八位体由句点.分开,表示为一个0-255之间的十进制数。一个IP地址的4个域分别标明了网络号和主机号。 
2、地址类型 
为适应不同大小的网络,internet定义了5种IP地址类型。 
可以通过IP地址的前八位来确定地址的类型: 
类型 IP形式 网络号 主机号 
A类 w.x.y.z w x.y.z 
B类 w.x.y.z w.x y.z 
C类 w.x.y.z w.x.y z 
我们来看一下这5类地址: 
A类地址:可以拥有很大数量的主机,最高位为0,紧跟的7位表示网络号,余24位表示主机号,总共允许有126个网络。 
B类地址:被分配到中等规模和大规模的网络中,最高两位总被置于二进制的10,允许有16384个网络。 
C类地址:被用于局域网。高三位被置为二进制的110,允许大约200万个网络。 
D类地址:被用于多路广播组用户,高四位总被置为1110,余下的位用于标明客户机所属的组。 
E类地址是一种仅供试验的地址。 
3、地址分配指南 
在分配网络号和主机号时应遵守以下几条准则: 
(1)网络号不能为127。大家知道该标识号被保留作回路及诊断功能,还记得平时ping 
127.0.0.1? 
(2)不能将网络号和主机号的各位均置1。如果每一位都是1的话,该地址会被解释为网内 
广播而不是一个主机号。(TCP/IP是一个可广播的协议嘛) 
(3)相应于上面一条,各位均不能置0,否则该地址被解释为“就是本网络”。 
(4)对于本网络来说,主机号应该是唯一。(否则会出现IP地址已分配或有冲突之类的错误) 
分配网络号 
对于每个网络以及广域连接,必须有唯一的网络号,主机号用于区分同一物理网络中的不同主机。如果网络由路由器连接,则每个广域连接都需要唯一的网络号。 
分配主机号 
主机号用于区分同一网络中不同的主机,并且主机号应该是唯一的。所有的主机包括路由器间的接口,都应该有唯一的网络号。路由器的主机号,要配置成工作站的缺省网关地址。 
有效的主机号 
A类:w.0.0.1--w.255.255.254 
B类:w.x.0.1--w.x.255.254 
C类:w.x.y.1--w.x.y.254

4、子网屏蔽和IP地址 
TCP/IP上的每台主机都需要用一个子网屏蔽号。它是一个4字节的地址,用来封装或“屏蔽”IP地址的一部分,以区分网络号和主机号。当网络还没有划分为子网时,可以使用缺省的子网屏蔽;当网络被划分为若干个子网时,就要使用自定义的子网屏蔽了。 
缺省值 
我们来看看缺省的子网屏蔽值,它用于一个还没有划分子网的网络。即使是在一个单段网络上,每台主机也都需要这样的缺省值。 
它的形式依赖于网络的地址类型。在它的4个字节里,所有对应网络号的位都被置为1,于是每个八位体的十进制值都是255;所有对就主机号的位都置为0。例如:C类网地址192.168.0.1和相应的缺省屏蔽值255.255.255.0。 
确定数据包的目的地址 
我们说把屏蔽值和IP地址值做“与”的操作其实是一个内部过程,它用来确定一个数据包是传给本地还是远程网络上的主机。其相应的操作过程是这样的:当TCP/IP初始化时,主机的IP地址和子网屏蔽值相“与”。在数据包被发送之前,再把目的地址也和屏蔽值作“与”,这样如果发现源IP地址和目的IP地址相匹配,IP协议就知道数据包属于本地网上的某台主机;否则数据包将被送到路由器上。 
注:我们知道“与”操作是将IP地址中的每一位与子网屏蔽中相应的位按逻辑与作比较。

公网IP/内网IP:

    在TCP/IP协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:

10.0.0.0/8:10.0.0.0~10.255.255.255 
172.16.0.0/12:172.16.0.0~172.31.255.255 
192.168.0.0/16:192.168.0.0~192.168.255.255

    使用保留地址的网络只能在内部进行通信,而不能与其它网络互连。因为本网络中的地址同样也可能被其它网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。但是这些使用保留地址的网络可以通过将本网络内的保留地址翻译转换成公共地址的方式实现与外部网络的互连。这也是保证网络安全的重要方法之一。

    但是有一些宽带运营商尽管也使用了非私有地址分配给用户使用,但是由于路由设置的原因,Internet上的其它用户并不能访问到这些IP。

    我们将这两种情况下应用的IP称为内网IP。

    如果自己机器上网络接口的IP地址落在上述保留地址范围内,则可以肯定自己处于内网模式下。

    内网IP对Internet的访问必须通过代理的方式,NAT(Network Address Translation)技术是基于TCP层面的代理,能够相当好地使用于各种IP服务应用,因此被广泛应用。之所以说是相当好,是因为NAT要求整个服务的连接是从内网向外网主动发起的,而外网用户则无法直接(主动)向内网内网的服务发起连接请求,除非在NAT的(所有)网关上针对服务的端口作了端口映射。

NAT转换的类型:

    有四种NAT转换模型可以涵盖当前NAT的基本应用。

1、静态转换(Static NAT)

    在路由器上手工配置私有IP地址和公网IP地址的对应关系,一经配置,转换表永久存在。明显的例子是NAT路由器上配置外网用户访问内网的服务器:内网服务器依然使用私网地址,在NAT路由器上,分配一个公网地址并配置私网地址/公网地址的转换表,对外提供公网IP地址给外部网络用户访问。
NAT转换表:202.110.10.10 8080 ---> 10.110.10.10 80 (www)

2、动态转换(Dynamic NAT)

    路由器上保留一个合法地址列表,每当有转换需求的时候,从列表中选择一个进行转换。注意:动态转换依然是一对一的。
1)由于从列表中选择,每次转换采用的IP地址并不一定是同一个;
2)合法地址被采用后,其他的转换需求不能再使用这个合法IP。

3、复用转换(Overloading NAT)

    在动态转换中,每个合法的IP地址只能在转换表中使用一次,在内部网络主机访问外部需求增多的情况下,合法地址列表中的IP地址会很快不够用。这时,可以利用上层协议标识,例如利用传输层TCP/UDP的端口号字段来协助建立NAT转换表项(ICMP报文的ICMP头中的Identifier字段也可以用来实现与端口号类似的功能)。这样,多个私有地址可以通过一个合法地址进行转换,这种类型的NAT转换也可以称为PAT(端口地址转换)。
    转换表项例子:
10.10.1.1 100 202.110.10.1 100
10.10.1.1 101 202.110.10.1 101
10.10.1.2 102 202.110.10.1 102
......
    理论上,1个公网地址可以提供的转换表项为2^16=65535个(尚未扣除知名端口数量)。这是INTERNET上NAT的典型应用。通过复用转换,还可以实现服务器负载分担的功能。

4、重叠转换(Overlapping NAT)

    内部网使用的地址跟外部网重叠,这时需要把跟外部重叠的IP地址进行变换。在NAT路由器上,将外部网的重叠IP重新映射成不重叠的IP地址。这个方案可以解决使用相同私网网段的企业网络的合并问题

建立的转换表项如下:
10.10.10.1 168.192.10.1 172.10.1.1 10.10.10.1
10.10.10.1 172.10.1.1 168.192.10.1 10.10.10.1
在NAT路由器上,将外部网的重叠IP重新映射成不重叠的IP地址。这个方案可以解决使用相同私网网段的企业网络的合并问题。
------------------------------
4种地址类型分别是:
内部局部地址(IL Inside local address)
内部全局地址(IG Inside global address)
外部局部地址(OL Outside local address)
外部全局地址(OG Outside global address)
------------------------------
NAT转换表
NAT按照转换表进行数据包的转发。
1)转发原则根据数据包的来源是内部还是外部而不同。NAT重叠转换为例,建立如下转换表:
内部局部     内部全局      外部局部      外部全局
10.10.10.1 172.10.10.1    — —          — —
— —        — —      168.192.10.1   10.10.10.1
10.10.10.1 172.10.10.1   168.192.10.1   10.10.10.1

左边主机访问右边主机发出的Packet_1 IP包到达NAT路由器转换后,源IP地址将根据转换表项第1行转换为172.10.10.1,目的IP地址将根据转换表项第2行转换为10.10.10.1,反之亦然。
2)按照数据驱动的方式建立,有静态,动态两种。静态地址转换类型表项一旦建立,将一直存在。动态地址表项在需要时动态建立,如果一段时间没有IP报文查询利用这个表项,到达老化时间后将自动删除,释放资源重新使用。
---------------------------
从功能上看,主要有以下几种典型的NAT:传统NAT(基本NAT,NAPT)、两次NAT、多宿主NAT。

两次NAT:即上文的“重叠转换NAT”

多宿主NAT(Multihomed NAT)

  使用NAT会带来很多问题(RFC2993)。比如,NAT设备要为经过它的会话维护状态信息,而一个会话的请求和响应必须通过同一NAT设备做路由,因此通常要求允许NAT末梢域边界路由器必须是惟一的,所有的IP包要么发起,要么终结在该域。但这种配置将NAT设备变成了可能的单点故障点。
  为了让一个内部网络能够在某个NAT链路故障的情况下,也可以保持与外部网络的连通性,通常希望内部网络到相同或不同的ISP具有多条连接(多宿主的),希望经过相同或不同的NAT设备。
  又如,多个NAT设备或多条链路使用同一NAT,共享相同的NAT配置能够为相互之间提供故障备份。在这种情况下,有必要让备份NAT设备交换状态信息,以便当主NAT出现故障时,备份NAT能够担负起透明地保持会话的能力。

传统NAT(内部地址,端口)与(内部地址,端口)的映射方式主要有以下几种典型类型:CloneNAT(Full Cone、Restricted Cone、Port Restricted Cone、)和对称NAT。

1.克隆NAT(CloneNAT)

  当在(私有IP,私有端口)与(公开IP.公开端口)已经建立了一个端口映射表后,克隆NAT将为随后从相同的私有地址和端口号发起的呼叫重复使用该映射,条件是只要使用映射(有时业叫绑定)的会话至少有一个继续保持激活状态。
  从下图可以看出,客户A分别从相同的内部地址和端口号(10.0.0.1:1234)同时发起两个会话请求到服务器1和服务器2,因为这两个请求来自相同的内部地址和端口,所以克隆NAT将为这两个不同的会话请求分配相同的公开端点号(100.100. 100. 100:62000),以保证客户A的“身份”能够在经过翻译后仍然保持一致。NAT和防火墙不翻译端口号,因此也是克隆方式的NAT。根据克隆时受到的限制大小,又可以把克隆NAT分为以下三种:

(1)全克隆(Full Cone)
    首先,把所有来自相同内部IP地址和端口的请求映射到相同的外部1P地址和端口。其次,任何一个外部主机通过把一个TP包发送给已得到映射的外部IP地址的方式,都能够把该包发送给该内部主机。
  (2)限制性克隆(Restricted Cone)
  把所有来自相同内部IP地址和端口号的请求映射到相同的外部IP地址和端口。与全克隆NAT方式不同,只有当内部主机以前曾经给IP地址为x的外部主机发送过一个包时,IP地址为x的该外部主机才能够把一个IP包发送给该内部主机。
  (3)端口限制性克隆(Port Restricted Cone)
  端口限制性克隆与限制性克隆类似,只是限制中多了端口号。特别是,一个外部主机可以发送一个源IP地址和源端口号分别为(x,P)的IP包给内部主机,只有当内部主机以前曾经给IP地址为x,端口号为P的外部主机发送过一个包时,IP地址为X的该外部主机才能够把一个源端口号为P的IP包发送给该内部主机。

2.对称NAT

  对称式NAT(symmetric NAT)是指把所有来自相同内部IP地址和端口号,到特定目的1P地址和端口号的请求映射到相同的外部TP地址和端口。如果同一主机使用不同的源地址和端口对,发送的目的地址不同,则使用不同的映射。只有收到了一个IP包的外部主机才能够向该内部主机发送回一个UDP包。对称式的NAT不保证所有会话中的(私有地址,私有端口)和(公开IP,公开端口)之间绑定的一致性。相反,它为每个新的会话分配一个新的端口号。
  从下图可以看出,假如客户A分别从相同的内部地址和端口号(10.0.0.1:1234)同时发起两个会话请求到服务器1和服务器2,对称NAT可能会为这两个来自相同地点的会话请求分配不相同的公开端点号,如把100 100. 100.100:62000分配给会话1,把100 100. 100.100:62001分配给会话2。因为这两个会话的有一个端点不同,所以虽然在翻译的过程中客户A的身份发生了变化,但NAT仍然能够正确工作

NAT设置:

由于公网IP地址有限,不少ISP都采用多个内网用户通过代理和网关路由共用一个公网IP上INTERNET的方法,这样就限制了这些用户在自己计算机上架设个人网站,要实现在这些用户端架设网站,最关键的一点是,怎样把多用户的内网IP和一个他们唯一共享上网的IP进行映射!就象在局域网或网吧内一样,虽然你可以架设多台服务器和网站,但是对外网来说,你还是只有一个外部的IP地址,怎么样把外网的IP映射成相应的内网IP地址,这应该是内网的那台代理服务器或网关路由器该做的事,对我们用私有IP地址的用户也就是说这是我们的接入ISP服务商(中国电信、联通、网通、铁通等)应该提供的服务,因为这种技术的实现对他们来说是举手之劳,而对我们来说是比较困难的,首先得得到系统管理员的支持才能够实现。因为这一切的设置必须在代理服务器上做的。 

要实现这一点,可以用Windows 2000 Server 的端口映射功能,除此之外Winroute Pro也具有这样的功能,还有各种企业级的防火墙。而对于我们这些普通用户,恐怕还是用Windows 2000 Server最为方便。

先来介绍一下NAT,NAT(网络地址转换)是一种将一个IP地址域映射到另一个IP地址域技术,从而为终端主机提供透明路由。NAT包括静态网络地址转换、动态网络地址转换、网络地址及端口转换、动态网络地址及端口转换、端口映射等。NAT常用于私有地址域与公用地址域的转换以解决IP地址匮乏问题。在防火墙上实现NAT后,可以隐藏受保护网络的内部拓扑结构,在一定程度上提高网络的安全性。如果反向NAT提供动态网络地址及端口转换功能,还可以实现负载均衡等功能。

端口映射功能可以让内部网络中某台机器对外部提供WWW服务,这不是将真IP地址直接转到内部提供WWW服务的主机,如果这样的话,有二个蔽端,一是内部机器不安全,因为除了WWW之外,外部网络可以通过地址转换功能访问到这台机器的所有功能;二是当有多台机器需要提供这种服务时,必须有同样多的IP地址进行转换,从而达不到节省IP地址的目的。端口映射功能是将一台主机的假IP地址映射成一个真IP地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转到内部一主机的提供这种特定服务的主机;利用端口映射功能还可以将一台真IP地址机器的多个端口映射成内部不同机器上的不同端口。
端口映射功能还可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等协议。理论上可以提供六万多个端口的映射,恐怕我们永远都用不完的。

一、下面来介绍一下通过NAT共享上网和利用NAT来实现端口映射。
1、在Windows 2000 Server上,从管理工具中进入“路由和远程访问”(Routing and Remote Access)服务,在服务器上鼠标右击,-》“配置并启用路由和远程访问”

2、点“下一步”

3、选“Internet连接服务器”,让内网主机可以通过这台服务器访问Internet.

(最好先配置好NAT共享,让内网主机可以正常上网,不然的话,配好端口映射后再来配置NAT共享就有点麻烦了,弄的不好NAT还共享不了。)
4、选“设置有网络地址转换(NAT)路由协议的路由器”,不要选“设置Internet连接共享(ICS)”.(ICS与NAT的区别在于使用的容易程度上,为了启用ICS,只需要选择一个复选框就可以了,而为了启用NAT,则需要更多的配置任务,此外,ICS用于小型网络上的原因还在于:针对内部主机,它需要有一个固定的IP地址范围;针对与外部网络的通信,它被限制在单个公共IP地址上;它只允许单个内部网络接口。)
5、先在此说一下我的网络情况:
Internet连接 192.200.200.3(也是个内部地址,没办法,铁通的网络不太好,网速不快,价钱又贵,我的命真苦啊)
宿舍内连接 192.168.0.1(宿舍里连有局域网,共4台电脑,其中一台上装了Sambar 5.1b5做的Web服务器,Web端口是80,待会就从外网(用192.200.200.55来替代)来访问这个192.168.0.2:80上的网页)

这台NAT主机上开通了IIS 5.0,端口是80,用端口映射的办法把8081端口映射到内部主机192.168.0.2的80端口上。

6、在“路由和远程访问服务器安装向导”中选“Internet连接”(就是连向Internet的那个连接),点“下一步”。

7、选“完成”

到此为止,NAT共享设置也就完成了,内部的主机也能上网了。内部主机的网络设置如下:

IP地址范围是912.168.0.2~192.168.0.254,子网掩码为255.255.255.0,网关为192.168.0.1,DNS为ISP给的地址,我们的是211.98.xxx.xxx

二、利用NAT来映射端口
1、添加NAT协议。右击“常规”,-》“新路由选择协议”

2、在“新路由选择协议”中选择“网络地址转换(NAT)”,点击“确定”

3、这样在“IP路由选择”中就多了一项“网络地址转换(NAT)”
4、右击“网络地址转换(NAT)”,添加“新接口”

5、在“网络地址转换(NAT)的新接口”中选择“Internet连接”(也就是连向Internet的那个连接,可不要选错咯)

6、在“网络地址转换-Internet连接属性”中选中“公用接口连接到Internet”,复选“转换TCP/UDP头(推荐)”

7、在"地址池"选项表里添加你需要提供端口重定向的起始地址与结束地址.(也

7、
就是你要拿出来搞端口映射的所有IP地址,一般情况下我们就一个IP地址,所以可以不用“地址池”不同之处后面再讲。这里假设有8个地址,设置如下:

添好后是这样的:

8、在"特殊端口"选项表里提供了你需要定向的数据连接协议(是TCP还是UDP协议,如Web和FTP就是TCP协议的),选准后“添加”

9、“添加特殊端口”,这里就是设置端口映射的核心了,把NAT主机的哪个端口映射到内网主机的哪个端口就在这里设置,由于设有“地址池”,所以可以在“公网地址”中添上“地址池”中的任一地址,这里添的是“192.200.200.3”,也就

是我的地址,如果你在前面没有设置“地址池”,那么在这个选项页中“在此地址池项”为灰色不可选,你只能选“在此接口”,

也就是你只有一个公网IP地址,这比较适合只有一个IP的朋友,可以不用“地址池”,何必做多余的设置呢?假如有问题的话,还不是自找麻烦。
“传入端口”就是别人从网外访问有公网IP的NAT服务器的端口,这里设的为8080。
“专用地址和传出地址”就是内部主机的IP地址和提供特殊服务的端口,这里是把192.200.200.3上的8080端口映射到192.168.0.2上的80端口。
这就是TCP协议端口的重定向,至于UDP的定向页差不多,下图就是添加端口映射后的情况。

四、测试结果
在192.200.200.55出测试了一下NAT主机上的Web服务器和内网中192.168.0.2上建的Web服务器,得出结果如下:(不好意思,中间改过一下端口号,192.200.200.3上的8081端口映射到192.168.0.2的80端口)

抱歉!评论已关闭.