●
VLSM
的子网划分
在部署新的网络时,我们除了需要确定分配的
IP
子网大小(包含多少
IP
地址)之外,还需要考虑这些子网在路由表中怎么汇总。
在地址充裕的情况下,使用
SLSM
(等长掩码)地址,路由表的配置比较简单;但是对于地址较少的情形,往往要用到
VLSM
(变长掩码)地址,为了后续配置的方便,在划分子网时应该采取如下步骤:
1
)首先找到包含最多地址的子网的前缀(掩码);
2
)将现有地址按
1
)所确定的前缀等分;
3
)先分需求地址最多的子网(即
1
)所确定的),剩下的是未分配的地址块;
4
)选一个未分配的地址块,也按前面
3
步来划分(找剩余未分配子网中包含地址最多的);
5
)如果分配很小的子网(用于路由器间链路),建议选择处于最后地址范围的子网段。
举例:现有地址块:
168.34.28.0/23
(
168.34.28.0/255.255.254.0
),需要划分的子网:
3
个前缀为
25
(掩码为
255.255.255.128
),
3
个前缀为
27
(掩码为
255.255.255.224
),
3
个前缀为
30
(掩码为
255.255.255.252
)。那么划分的步骤如下:
1
)找到地址需求最多的子网前缀为
25
;
2
)将地址块
168.34.28.0/23
按前缀
25
等分,可分成四块:
168.34.28.0/25
、
168.34.28.128/25
、
168.34.29.0/25
、
168.34.29.128/25
;
3
)首先分配前缀为
25
的子网,这里有
3
个,所以它们分别占用
168.34.28.0/25
、
168.34.28.128/25
、
168.34.29.0/25
;
4
)在剩余子网中选择需求地址最多的――前缀为
27
的地址块;
5
)将剩余地址块
168.34.29.128/25
按前缀
27
等分,可分成四块:
168.34.29.128/27
、
168.34.29.160/27
、
168.34.29.192/27
、
168.34.29.224/27
;
6
)首先分配前缀为
27
的子网,这里有
3
个,所以它们分别占用
168.34.29.128/27
、
168.34.29.160/27
、
168.34.29.192/27
;
7
)剩余子网已经是很小的子网(前缀为
30
),所以从剩余地址块(
168.34.29.224/27
)的最后开始分配,这里有三个,所以它们分别占用
168.34.29.244/30
、
168.34.29.248/30
、
168.34.29.252/30
。
●
路由汇总
在已知子网的情况下,怎样确定最佳的路由汇总策略?――这个问题在
IP
地址计算中十分常见。关于这个问题,有两种考量方法:
1
)包含汇总路由:单条汇总路由包含了所有已知子网,也可能包含其它不存在的子网。
2
)排他汇总路由:使用尽可能少的路由包含所有已知子网,不能包含其它不存在的子网。
这两种情况各有其存在的理由,比如说,当局域网中需要保留一些地址在未来使用时(扩展的需要),会考虑采用第
1
)种方法;而对于局域网间地址路由的汇总,可能不希望包含其它地址(因为这些地址可能已经被其他网使用),这时会考虑采用第
2
)种方法。
●
计算包含汇总路由的方法
标准方法(二进制):
1
)写出每个子网号的二进制形式;
2
)找出这些子网号中连续且值相同的位,这些位数即前缀值
x
;
3
)写一个新的
32
位数,该数复制子网号的前
x
位数,剩余位的值都为
0
,这就是汇总的路由;
4
)将该数转换成
10
进制形式。
快速方法(
10
进制):
1
)计算已知子网的个数,找到最小值
x
,使得
2x >=
子网个数;
2
)找到子网中最大的前缀值
y
,令
y=y-x
;
3
)假定地址值最小的子网号为一个
IP
地址,令其前缀为
y
,计算出该假设地址所在的子网号;
4
)假定地址值最大的子网号为一个
IP
地址,令其前缀为
y
,计算出该假设地址所在的子网号,如果所得子网号与
3
)所得一样,那么这就是汇总的路由;
5
)如果
4
)所得子网号与
3
)所得不一样,那么再重复
3
)和
4
)的步骤,但是
y=y-1
。
举例:已知子网
168.34.12.0/24
、
168.34.13.0/24
、
168.34.14.0/24
、
168.34.15.0/24
和
168.34.16.0/25
,求其包含汇总路由。步骤如下:
1
)子网个数为
5
,所以求得
x=3
,使得
23 = 8 > 5
;
2
)子网中最大的前缀值为
25
,所以
y=25-3=22
;
3
)地址值最小的子网号是
168.34.12.0
,假定其为一个
IP
地址,前缀为
22
,则计算出其所在子网为
168.34.12.0/22
;
4
)地址值最大的子网号是
168.34.16.0
,假定其为一个
IP
地址,前缀为
22
,则计算出其所在子网为
168.34.16.0/22
;
5
)地址值最小的子网号是
168.34.12.0
,假定其为一个
IP
地址,前缀为
21
,则计算出其所在子网为
168.34.8.0/21
;
6
)地址值最大的子网号是
168.34.16.0
,假定其为一个
IP
地址,前缀为
21
,则计算出其所在子网为
168.34.16.0/21
;
7
)地址值最小的子网号是
168.34.12.0
,假定其为一个
IP
地址,前缀为
20
,则计算出其所在子网为
168.34.0.0/20
;
8
)地址值最大的子网号是
168.34.16.0
,假定其为一个
IP
地址,前缀为
20
,则计算出其所在子网为
168.34.16.0/20
;
9
)地址值最小的子网号是
168.34.12.0
,假定其为一个
IP
地址,前缀为
19
,则计算出其所在子网为
168.34.0.0/19
;
10
)地址值最大的子网号是
168.34.16.0
,假定其为一个
IP
地址,前缀为
19
,则计算出其所在子网为
168.34.0.0/19
;与
9
)所得相同,此即为汇总的路由。
●
计算排他汇总路由的方法(二分法、
SLSM
)
1
)先找出包含汇总路由,称为候选排他汇总路由;
2
)看该候选路由是否包含了不存在的子网,如果没有包含,那么该候选路由即所求的一部分;
3
)如果候选路由包含了不存在的子网,则将其分割成两半,形成两条新的候选路由(前缀增
1
);
4
)如果候选路由中的一条包含了不存在的子网,那么再将其一分为二,如果候选路由中的一条完全不包含已知的子网,则丢弃此条路由;
5
)重复
2
)和
4
)直到没有新的可能的候选路由产生为止。
举例:已知子网
168.34.20.0/24
、
168.34.21.0/24
、
168.34.22.0/24
、
168.34.23.0/24
和
168.34.24.0/24
,按前面的方法可得到其包含汇总路由为
168.34.16.0/20
,求排他汇总路由的步骤如下:
1
)因为
168.34.16.0/20
包含了不存在的子网,所以将其一分为二:
168.34.16.0/21
和
168.34.24.0/21
;
2
)对于
168.34.16.0/21
,仍然包含不存在的子网,再将其一分为二:
168.34.16.0/22
和
168.34.20.0/22
,此时
168.34.20.0/22
已经不包含不存在的子网,所以它是所求的一部分,而
168.34.16.0/22
完全不包含已知子网,所以它被丢弃;
3
)再看
168.34.24.0/21
,仍然包含不存在的子网,再将其一分为二:
168.34.24.0/22
和
168.34.28.0/22
,此时
168.34.28.0/22
完全不包含已知子网,所以它被丢弃;
4
)对于
168.34.24.0/22
,仍然包含不存在的子网,再将其一分为二:
168.34.24.0/23
和
168.34.26.0/23
,此时
168.34.26.0/23
完全不包含已知子网,所以它被丢弃;
5
)对于
168.34.24.0/23
,仍然包含不存在的子网,再将其一分为二:
168.34.24.0/24
和
168.34.25.0/24
,此时
168.34.25.0/24
完全不包含已知子网,所以它被丢弃,而
168.34.24.0/24
已经不包含不存在的子网,所以它是所求的一部分,此时已经没有候选路由。
综上所述,求得排他汇总路由为:
168.34.20.0/22
和
168.34.24.0/24
。