IP技术之子网划分

物理层实现数据链路实体间比特(bit)流的透明传输,而数据链路层将物理层的0,1信号组成帧单元传递给目标物理地址(MAC地址),两台计算机之间的通讯最终要依靠MAC地址进行。数据到了第三层网络层,数据通讯需要IP地址,IP地址就是IP协议里规定的地址,而MAC地址和IP地址之间的转化是由ARP 或RARP协议来完成。

IP地址网络号主机号构成,并划分了A、B、C、D、E5类;每一类有不同长度的网络号和主机号:

特殊的IP地址:比如主机号全0的地址:用来标识一个网络。例如:203.156.8.0 表示一个C类网络号203.156.8的网络;

主机号全1表示广播地址,向指定网络的所有主机发生数据包。

上面IETF分配了私有IP地址,用于内网分配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

子网

为了优化网络性能,方便管理及缩减网络流量,常把一个网络划分成若干个子网(subnet)。划分子网后IP格式变成:

其中子网号采用向主机号借用地址来实现,同主机号一样,不同的子网代表不同的网络,不同的子网之间无法直接通讯,起到隔离和安全的作用。为了快速确定IP地址的网络号和主机号,以及判断两个IP是否属于同一个网络,产生了子网掩码。例如一个C类地址的默认子网掩码为:255.255.255.0

如果一个IP地址的子网掩码不是默认值,说明该网络划分了子网。

确定子网掩码及子网地址范围

1:确定要划分的子网数,子网数目转化成2的n次方;

例如:把C类IP地址192.168.10.0划分4个子网,借用主机位的2位;

2:从主机位借用n位作为子网位;1100 0000 = 192(10进制)

3:将子网位全变成1,即可得到子网掩码;255.255.255.192

每个子网的地址范围:

子网号 掩码组合 10进制 子网地址 主机地址段
(2进制)
主机地址段
(10进制)
00(全0) 0000 0000 0 192.168.10.0 00000001~00111110 1~62
01(有效) 0100 0000 64 192.168.10.64 01000001~01111110 65~126
02(有效) 1000 0000 128 192.168.10.128 10000001~10111110 129~190
03(全1) 1100 0000 192 192.168.10.192 11000001~11111110 193~254

以上地址主机号全0和全1需要去除:有单独作用,全0标识本网络,全1用于向子网广播。(有效子网数目=2的n次方-2:n为子网号占用的二进制位数)

上面例子中任意一个子网地址构成为:前3个字节(网络号)  +  最后一个字节的前2位(子网号)   +    后6位(主机号)

子网掩码有时使用前缀长度标识例:192.168.10.151/24 和 192.168.10.151/26 标识不同的网络

如法炮制:划分8个子网,需借用3个主机位:子网掩码为:255.255.255.224,主机范围如下列表所示:

子网号 掩码组合 10进制 子网地址 主机地址段
(2进制)
主机地址范围
(10进制)
00(无效) 0000 0000 0 192.168.10.0 00000001~00011110 192.168.10.1~192.168.10.30
01 0010 0000 32 192.168.10.32 00100001~00111110 192.168.10.33~192.168.10.62
02 0100 0000 64 192.168.10.64 01000001~01011110 192.168.10.65~192.168.10.94
03 0110 0000 96 192.168.10.96 01100001~01111110 192.168.10.97~192.168.10.126
04 1000 0000 128 192.168.10.128 10000001~10011110 192.168.10.129~192.168.10.158
05 1010 0000 160 192.168.10.160 10100001~10111110 192.168.10.161~192.168.10.190
06 1100 0000 192 192.168.10.192 11000001~11011110 192.168.10.193~192.168.10.222
07(无效) 1110 0000 224 192.168.10.224 11100001~11111110 192.168.10.225~192.168.10.254

如何得出当前IP所属网络和主机号?

规则如下:

1:从IP地址提取网络号:子网掩码与IP地址进行“逻辑与”运算;

2:从IP地址获取主机号:子网掩码取反再与IP地址进行“逻辑与”运算;

例如:192.168.10.151/24 默认24位子网掩码255.255.255.0 ,显然主机号为:0.0.0.151

1:二进制IP:             11000000  10101000  00001010  10010111

2:子网掩码:           1111 1111  1111 1111  1111  1111  00000000

3:子网掩码取反:   00000000  00000000  00000000  1111 1111

#1和3行逻辑与:      00000000  00000000  00000000  10010111 

下面看下: 192.168.10.151/26  子网掩码:          11111111  11111111  11111111  11000000    

二进制IP:             11000000  10101000  00001010  10010111 (向主机位借了2位,主机号为最后6位:010111)

子网掩码取反:   00000000  00000000  00000000  00111111

逻辑与:              00000000  00000000  00000000  00010111  主机号为:0.0.0.23

子网划分后,IP地址分配注意要点:

1:连接到同一个网络上所有主机的IP地址和网络号相同;

2:路由器可以连接多个物理网络,每个连接都应该拥有自己的IP地址,而且该IP地址的网路号应与分配给该网络的网络号相同。每个连接要具有不同的网络号;

3:不允许任何两个接口拥有相同的IP地址;

4:某些设备如服务器、路由器需要维护静态IP地址;

最后来个小测试:如下图所示:Laptop0和PC1在一个子网,可以互通,但PC1、PC2、PC3都分处于不同的子网,无法通讯;

子网之间的通讯 

如何使不同子网的终端主机通讯呢?可以借用路由器或三层交换机来实现:如下图所示拓扑和IP配置:

上图中:子网192.168.10.32 和 子网192.168.10.64 通过路由器的两个端口Fa0/1: 192.168.10.62 和 192.168.10.194 相连;

各子网终端的网关设置和路由器对应端口的IP保持相同,此时因为在路由器中构成了一条连接路由路径,所以两个子网就可以通信了:

show ip route  // Route的路由表:

192.168.10.0/27 is subnetted, 2 subnets

C 192.168.10.32 is directly connected, FastEthernet0/0

C 192.168.10.64 is directly connected, FastEthernet1/0

 更进一步,在上面的拓扑图中再添加192.168.10.96 和 192.168.10.128两个子网:

并用另外一台路由器RouteB连接 上面两个子网:RouteA和RouteB之间用串口连接:

由上一步可以利用RouteA把子网A(192.16810.32)和子网B(192.168.10.64)互联,同样道理:可以利用RouterB把 子网C和子网D互联;

此时子网A 和子网C 、子网B和子网D 均不通,该是路由器之间的串口线起作用的时候了。

同上图,把RouterB的Serial2/0口设置IP为:192.168.11.2/24 ,让路由器之间互联;

在路由器A中配置静态路由:

同理设置路由器B的静态路由;

此时路由器A的路由表为:

192.168.10.0/27 is subnetted, 4 subnets

C 192.168.10.32 is directly connected, FastEthernet0/0

C 192.168.10.64 is directly connected, FastEthernet1/0

S 192.168.10.96 [1/0] via 192.168.11.2

S 192.168.10.128 [1/0] via 192.168.11.2

C 192.168.11.0/24 is directly connected, Serial2/0

C - connected(直连), S - static(静态)

此时路由器B的路由表为:

192.168.10.0/27 is subnetted, 4 subnets

S 192.168.10.32 [1/0] via 192.168.11.1

S 192.168.10.64 [1/0] via 192.168.11.1

C 192.168.10.96 is directly connected, FastEthernet0/0

C 192.168.10.128 is directly connected, FastEthernet1/0

C 192.168.11.0/24 is directly connected, Serial2/0

测试互通结果如下:子网之间都能互相ping通了: 

发布了92 篇原创文章 · 获赞 55 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/elie_yang/article/details/98756570
今日推荐