IP IPv4 )包头 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

如图:(参考附件)

 

包头字段表:

字段

含义

版本号( Version

IP 协议的版本,一般是 IPv4 ,但 IPv6 会越来越流行

包头长度( Header Length

定义 IP 包头的长度,长度必须是 4 的倍数,实际比特数应该等于长度 *4

DS 字段( DS Field

区分服务字段,原来称为 ToS (服务类型)字节。用于对不同 IP 包应用不同的 QoS 服务级别

包长度( Packet Length

表示整个 IP 包的长度(包括数据)

标识( Identification

用于 IP 包分段。如果一个包分成几段,那么这些段都有同样的标识,这样后面就可以用来重组 IP

标记( Flags

用于 IP 包的分段( 3 位)

分段偏移( Fragment Offset

用于表示 IP 分段在原始 IP 包中的偏移位置

生存期( Time to Live

用来防止路由循环,通过一次路由器该值就减 1 ,如果减为 0 ,该 IP 包即丢弃

协议( Protocol

表示 IP 包承载数据的协议类型

包头校验( Header Checksum

用来确定包头(非数据)在传输中是否产生错误

源地址( Source IP Address

32 位的 IP 包发送地址

目的地址( Destination IP Address

32 位的 IP 包接收地址

可选字段和填充( Optional Header Fields and Padding

可用于未来扩展的字段,另外,如果可选字段不是 4 的倍数,加入填充信息。

 

IP 协议字段值

1 ICMP 1

2 TCP 6

3 UDP 17

4 EIGRP 88

5 OSPF 89

6 PIM 103

 

IPv4 地址回顾:

1 32-bit

2 )一般写作“以点分隔的十进制”格式,如<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /> 1.2.3 .4

3 )地址是对网络接口而言的,所以包含多个接口的网络设备会有多个 IP 地址

4 )配置了 IP 地址的计算机称为 IP 主机

5 )未被 IP 路由器分隔的一组 IP 主机都处于同一组中,这些分组称为网络、子网或前缀

6 )被 IP 路由器分隔的 IP 主机必定在不同分组中

 

何为分类( classful )地址,何为无类( classless )地址?

简单地说,分类地址是指 RFC 791 所规定的 A B C 类地址;而无类地址则不按此地址分类,只是把 IP 地址看作两部分:前缀(网络)部分和主机部分。

 

●分类地址回顾:

地址分类

地址的网络 / 主机部分大小

第一个八字节的范围

默认掩码

地址的起始标识位

A

8/24

1-126

255.0.0.0

0

B

16/16

128-191

255.255..0.0

10

C

24/8

192-223

255.255.255.0

110

D

224-239

1110

E

240-255

 

 

子网划分后,怎样在 IP 地址中找到网络、子网和主机字段:

1 )网络地址:根据地址分类原则,可能是 8 16 24bit

2 )子网地址: 32bit 减去网络地址位和主机地址位

3 )主机地址:等于掩码中 0 的个数

 

子网计算

划分子网的几个捷径 :

1. 你所选择的子网掩码将会产生多少个子网 ? :

2 x 次方 -2(x 代表子网位 , 2 进制为 1 的部分 ) PS :这里的 x 是指除去默认掩码后的子网位,例如网络地址 192.168.1.1 ,掩码 255.255.255.192 ,因为是 C 类地址,掩码为 255.255.255.0 。那么 255.255.255.192 x.x.x.11000000 )使用了两个 1 来作为子网位。

2. 每个子网能有多少主机 ?:

2 y 次方 -2(y 代表主机位 , 2 进制为 0 的部分 )

3. 有效子网是 ?:

有效子网号 =256-10 进制的子网掩码 ( 结果叫做 block size base number)

4. 每个子网的广播地址是 ?:

广播地址 = 下个子网号 -1

5. 每个子网的有效主机分别是 ? :

忽略子网内全为 0 和全为 1 的地址剩下的就是有效主机地址 .

最后有效 1 个主机地址 = 下个子网号 -2( 即广播地址 -1)

 

根据上述捷径划分子网的具体实例 :

C 类地址例子 1 : 网络地址 192.168.10.0; 子网掩码 255.255.255.192(/26)
1.
子网数 =2*2-2=2
2.
主机数 =2 6 次方 -2=62
3.
有效子网 ?:block size=256-192=64; 所以第一个子网为 192.168.10.64, 第二个为 192.168.10.128
4.
广播地址 : 下个子网 -1. 所以 2 个子网的广播地址分别是 192.168.10.127 192.168.10.191
5.
有效主机范围是 : 第一个子网的主机地址是 192.168.10.65 192.168.10.126; 第二个是 192.168.10.129 192.168.10.190

C 类地址例子 2: 网络地址 192.168.10.0; 子网掩码 255.255.255.128(/26)
我知道我举的这个例子只有一个子网位,这通常是不合法的(由 RFC 文档所规定)。但是!世事无绝对,不是吗?这个子网掩码能在你需要两个子网每个子网 126 台主机时给你帮助,不过这是在特殊情况下实现的。在思科路由器的全局配置模式下输入 ip subnet -zero 命令来告诉你的路由器打破规则并使用一个 1 位的子网掩码(这个命令通常在运行 CISCO IOS 12.x 的所有路由器上默认存在)
1.
子网数 =2
2.
主机数 =2 7 次方 -2=126
3.
有效子网 ?:block size=256-128=128; 所以第一个子网为 192.168.10.0, 第二个为 192.168.10.128
4.
广播地址 : 下个子网 -1. 所以 2 个子网的广播地址分别是 192.168.10.127 192.168.10.255
5.
有效主机范围是 : 第一个子网的主机地址是 192.168.10.1 192.168.10.126; 第二个是 192.168.10.129 192.168.10.254

 

B 类地址例子 1 :网络地址 :172.16.0.0; 子网掩码 255.255.255.128(/25)
注意!这个不是 C 类地址的子网掩码,然而这个子网划分是有一定难度的,但是!这个掩码却是十分有用的因为它创建了 510 个子网每个子网有 126 个主机,一个很好的组合。

1. 子网数 =2 9 次方 -2=510
2.
主机数 =2 7 次方 -2=126
3.
有效子网 ?:block size=256-255=1 2 3 ...... 这是第三个八位元组的数值,但是你不能忘记还有一位子网位在第四个八位元组。所以第四个八位元组分为两个子网。例如第三个八位元组表示子网 3 ,那第四个八位元组的两个子网为 172.16.3.0 172.16.3.128

4. 广播地址 : 下个子网 -1. 所以第一个子网和最后 1 个子网的广播地址分别是
172.16.0.255

172.16.255.127
5.
有效主机范围是 : 第一个子网的主机地址是 172.16.0.129 172.16.0.254; 最后 1 个是 172.16.255.0 172.16.255.126
(补充一下:可能有人问第一个子网为什么不是 172.16.0.0---172.16.0.128 呢?不要忘记!子网位和主机位不能为全 0 或者全 1 172.16.0.0 代表了整个 172.16.x.x 网络,同理,最后一个子网也就不可能是 172.16.255.128---172.16.255.255 了。)


B 类地址例子 2 : 网络地址 :172.16.0.0; 子网掩码 255.255.192.0(/18)
1.
子网数 =2*2-2=2
2.
主机数 =2 14 次方 -2=16382
3.
有效子网 ?:block size=256-192=64; 所以第一个子网为 172.16.64.0, 最后 1 个为 172.16.128.0
4.
广播地址 : 下个子网 -1. 所以 2 个子网的广播地址分别是 172.16.127.255 172.16.191.255
5.
有效主机范围是 : 第一个子网的主机地址是 172.16.64.1 172.16.127.254; 第二个是 172.16.128.1 172.16.191.254

B 类地址例子 3: 网络地址 :172.16.0.0; 子网掩码 255.255.255.224(/27)
1.
子网数 =2 11 次方 -2=2046( 因为 B 类地址默认掩码是 255.255.0.0, 所以网络位为 8+3=11)
2.
主机数 =2 5 次方 -2=30
3.
有效子网 ?:block size=256-224=32; 所以第一个子网为 172.16.0.32, 最后 1 个为 172.16.255.192
4.
广播地址 : 下个子网 -1. 所以第一个子网和最后 1 个子网的广播地址分别是 172.16.0.63
172.16.255.223
5.
有效主机范围是 : 第一个子网的主机地址是 172.16.0.33 172.16.0.62; 最后 1 个是 172.16.255.193 172.16.255.223


A 类地址子网划分 B 类和 C 类并没有什么区别,只是掩码位由 16 位和 8 位变成了 24 位而已。

简单地举个例子吧:
网络地址 :10.0.0.0; 子网掩码 255.255.0.0(/16)
1.
子网数 =2 8 次方 -2=254
2.
主机数 =2 16 次方 -2=65534
3.
有效子网 ?:block size=256-255=1 2 3 ......; 所以第一个子网为 10.1.0.0, 最后 1 个为 10.254.0.0
4.
广播地址 : 下个子网 -1. 所以第一个子网和最后 1 个子网的广播地址分别是 10.1.255.255
10.254.255.255
5.
有效主机范围是 : 第一个子网的主机地址是 10.1.0.1 10.1.255.254; 最后 1 个是 10.254.0.1 10.254.255.254

无类地址( CIDR )、私有地址和 NAT

 

CIDR NAT 的出现都是为了解决 IPv4 地址不足的问题,就目前现状而言,这些方法确实起到了不错的效果,也正是由于它们的有效使用,延缓了 IPv6 替代 IPv4 的步伐。但应该明白, IPv6 显然才是解决地址不足问题的更长效的方法,而 CIDR NAT 只是过渡性方法。

 

CIDR 的主要作用:在路由表中汇总更为高效,从而提高了路由表的可扩展性。由于它可以汇总多个有类网络为单条路由,这可以看作是子网划分的逆过程,所以又称为超网( supernetting )。

 

私有地址主要用于在局域网分配,这些地址在 Internet 上是无效的。这样可以很好地隔离局域网和 Internet RFC 1918 定义了三类私有地址段:

1 A 类私有地址: 10.0.0 .0 – 10.255.255.255

2 B 类私有地址: 172.16.0.0 – 172.31.255.255

3 C 类私有地址: 192.168.0.0 – 192.168.255.255

 

网络地址翻译( NAT )定义在 RFC 1631 中。有了这项技术,局域网内部的 IP 地址可以与 Internet 上的主机进行通信。特别在使用私有地址的局域网中,该项技术使用十分广泛。简单地说: NAT 将内部 IP 地址转换成公网上可用的 IP 地址,从而实现内部 IP 地址与外部公网的通信。

举例:假设某公司注册的公网 IP 地址段是 212.2.3.0/24 ,局域网使用的是私有地址段 192.168.0.0/22 ,已定义 NAT 记录: 202.2.3.1 对应 192.168.0.1 。它的工作过程是这样的:当内部主机 192.168.0.1 发送 IP 包时,其源地址为 192.168.0.1 ,通过 NAT 路由器,其源地址就转换为 202.2.3.1 ,这就是公网上可用的 IP 地址了。当公网上的服务器接收到这个 IP 包时,它会认为连接来自 202.2.3.1 ,因为是有效的 IP 地址,所以可以建立连接并通信,当服务器发送目的地址为 202.2.3.1 IP 包时, NAT 路由器又将其目的地址转换为 192.168.0.1 ,这样内部主机就可以接收到返回的 IP 包了。

 

一些 NAT 术语:

1 Inside Local address (内部局域地址):分配给企业网络内部的主机,一般为私有地址。

2 Inside Global address (内部全球地址):分配给企业网络内部的主机,一般是该企业所拥有的公网 IP 地址。

3 Outside Local address (外部局域地址):分配给公网上的主机,一般为私有地址。

4 Outside Global address (外部全球地址):分配给公网上的主机,一般为公网地址。

 

静态 NAT

静态 NAT 是最简单的一种 NAT 配置方式,通过手工配置,建立私有地址和公网地址的一一对应关系。它的主要特性有:

1 )一个 Inside Local address 总是映射到同一个 Inside Global address

2 )一个 Outside Local address 也总是映射到同一个 Outside Global address

3 )不提供公网地址节余。

通常静态 NAT 用于内部服务器(该服务器分配的是内部私有地址,但允许公网主机访问)的地址配置。

配置示例:

#conf t

(config)#int fa 0/1

(config-if)#ip address 192.168.0.1 255.255.255.0

(config-if)#ip nat inside

(config-if)#int se 0/0

(config-if)#ip address 202.1.2.1 255.255.255.0

(config-if)#ip nat outside

(config-if)#^Z

(config)#ip nat inside source static 192.168.0.1 202.1.2.1

配置好后可以用 show ip nat trans 查看 NAT 配置表信息。

 

●不 PAT (端口地址翻译)的动态 NAT

不带 PAT 的动态 NAT 类似于静态 NAT ,也是创建 Inside Local Inside Global 地址的一一对应关系,只不过,它不是定义两个单地址之间的映射,而是定义两组地址(地址池)之间的映射,在地址组之间可以实现动态分配。例如可将私有地址组 192.168.0.1/24 映射到公网地址组 202.1.2.1 -- 202.1.2.5 。当 192.168.0.1/24 网段内的主机需要与公网通信时,它会动态地从 202.1.2.1 -- 202.1.2.5 中选择一个未被占用的, 注意这样最多能够支持 5 台内部主机同时与公网通信。

配置示例:

#conf t

(config)#ip nat pool example 202.1.2.1 200.1.2.2 netmask 255.255.255.252

(config)#access-list 1 permit 192.168.0.1 0.0.0.255

(config)#ip nat inside source list 1 pool example

 

PAT (端口地址翻译)的动态 NAT

PAT 又称为 NAT 重载( NAT overloading ),它可以提供公网 IP 地址节余的功能。我们知道,每个连接是用 IP 地址 + 端口号来唯一定义的,如果我们使用不同的端口号来建立连接,就可以在一个 IP 地址上复用多条连接,这就是 NAT with PAT 的主要思想。

为了实现 NAT with PAT NAT 路由器不但需要翻译 IP 地址,也要翻译端口号。一般端口号字段的长度是 16 位, 这样最多可以支持 65000 多个并发的端口连接。

配置示例:

#conf t

(config)#ip nat pool example 202.1.2.1 netmask 255.255.255.252

(config)#access-list 1 permit 192.168.0.1 0.0.0.255

(config)#ip nat inside source list 1 pool example overload