vlambda博客
学习文章列表

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍


网络上通过各种设备传递数据,最常见的就是路由器和交换机。本篇介绍路由器的静态路由协议。先简要说一下路由条目和路由表(熟悉的可略过)



路由条目必须有5个项目:前缀、掩码、下一跳、管理距离AD、度量。


一、前缀和掩码



IP的责任简单地说就是将数据从源传送到目的地。IP协议被封装在TCPIP 5层协议中的网络层上,具体格式如下:(以下是我个人对IP包头的理解,文中出现的IP均指IPv4)


【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍


1.版本(4位):

4或6,表示IPv4还是IPv6

2.首部长度(4位):

指明IP包头部长度 (不包含数据) 。如没有可选项长度是20 byte。可选项最大40 byte,因此IP包头部最大长度是60 byte

3.优先级与服务类型(8位)
(直接RFC791上截图了):

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

4.总长度(16位):

IP包的长度,总长度 - 首部长度 = 数据长度。

5.标识符(16位),标志(3位),段偏移量(13位):

三个结合在一起使用,用于数据分包。比如A->B->C,A的MTU是1500,B的MTU是1000,那B收到A的包转发给C时就要分包:第一个包1000,第二个包500。

标识符(16位):
分包后,每个包上标记相同的值,以便区分哪些包原本是同一个包拆开来的。

标志(3位):
第一位固定是0。第二位DF (Don't Fragment) 为1时不切片,这样B收到MTU1500的包就不能分包,无法转发给C只能直接丢弃。第三位MF (More Fragments) 为1时表示后面还有切片。

段偏移量(13位)用于分包后合并时确定依次顺序。

6.TTL(8位):

TTL本是想用做统计时间的,后来变为跳数,最大255,一般为64,每过一个路由器减1,到达目的IP前如果减到0,路由器就将该包丢弃,再通过ICMP回传time exceeded信息,这样可以避免无限环路。

7.协议号(8位):

用于区分上层 (传输层) 数据。例如ICMP是1,TCP是6,UDP是17,EIGRP是88,OSPF是89

8.首部校验和(16位):

校验一下除数据部分外的包头信息以防被篡改。因为TTL值每经过一个路由器都会减1发生变化,因此每经过一个路由器都要重新校验,这很讨厌,所以IPv6里就没有校验和了。

9.源地址(32位),目标地址(32位):
(顾名思义)

10.可选项:

有4个选项: 松散源路由选择,严格源路由选择,记录路由,时间戳

松散/严格源路由选择:用于控制沿途路径。比如A->B1->C也可以A->B2->C,具体走哪条你可以将B1或B2的地址写到这里。区别是:严格里必须规定沿途每个路由器,而松散可以只给出沿途必须经过的一些“要点”

记录路由: 记录沿途的IP地址
时间戳: 没啥用,路由器转发时可以打个时间,但除非所有路由器的时间精确同步,否则没什么用

11.数据:
(顾名思义,里面包含了上一层传输层的TCP/UDP头部)

上面IP协议里,源地址和目标地址就是家喻户晓的IP地址。

IP地址格式是由网络号和主机号(D类E类除外)合并而成,用点分10进制表示,共32位。分为ABCDE 5类IP地址:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍





网段中主机位全0的是该网段地址,主机位全1的是该网段的广播地址。因此平时可用于单播的A类IP地址范围:1.0.0.1 ~127.255.255.254

B类地址:

前16位为网络号(前2位固定10,后6位是网络地址),后16位是主机号。

B类地址范围:128.0.0.0 ~191.255.255.255  掩码:255.255.0.0

网段中主机位全0的是该网段地址,主机位全1的是该网段的广播地址。因此平时可用于单播的B类IP地址范围:128.0.0.1 ~191.255.255.254

C类地址:

前24位为网络号(前3位固定110,后5位是网络地址),后8位是主机号。

B类地址范围:192.0.0.0 ~223.255.255.255  掩码:255.255.255.0

网段中主机位全0的是该网段地址,主机位全1的是该网段的广播地址。因此平时可用于单播的B类IP地址范围:192.0.0.1 ~223.255.255.254

D类地址:

用于多播,已经没有网络号和主机号了,前4位固定1110,后28位用于多播地址。

D类地址范围:224.0.0.0 ~ 239.255.255.255  

E类地址:

用于科研。。。太高端一般接触不到。同样已经没有网络号和主机号了
D类地址范围:240.0.0.0~ 255.255.255.255  
有一些用于特殊用途的IP地址:

0.0.0.0:未指定IP

127.0.0.1:本地loopback测试地址

255.255.255.255:本地广播地址

还有一些私有IP地址:

A类地址中:
10.0.0.0~ 10.255.255.255(即10网段)

B类地址中:
172.16.0.0~172.31.255.255(即172的后半网段)

C类地址中:
192.168.0.0~192.168.255.255(即192.168网段)

私有IP地址无法在公网上被使用,但可以在本地被使用。可以用NAT将本地使用的私有IP地址转换成公有IP地址来访问公网,以达到节约IP地址的目的。如企业内部不必每台主机都配一个公网IP,大家尽可使用私有IP地址,并共用多个公网IP来上网。

平时常用ABC 3类IP地址,以A类IP地址为例,只有126个网络,但每个网络都有巨量的主机2^24=16777216。如果一个公司只需要100台主机,那分配给该公司一个A类IP网段的话,将造成大量的IP地址浪费。因此通常只分配一个C类地址,C类地址的主机号是8位,可供2^8-2=254台主机用 (-2的原因上面说过了,主机号全0是该网段地址,全1是该网段广播地址) ,虽然够用,但该公司只需求100台主机,仍旧造成IP地址浪费。所以需要VLSM (可变长子网掩码) 子网划分来更合理地分配IP地址。


VLSM子网划分的规则:


子网数= 2^子网位数(子网位数 = 掩码 - 主类网络号,例如某B类IP的掩码是27,则子网位数为27-16=11,因此子网数为2^11=2048)



块大小=2^八位组内主机号(例如192.168.10.0  掩码:255.255.255.192。C类IP主机号是第四个8位组,现在掩码是192=11000000,意思是问第四个8位组借了前2位作为网络号,因此第四个8位组内主机号是8-2=6位,块大小为2^6=64)。得出块大小后,用块大小数字累加就能得到网络号。



例如192.168.10.0  掩码:255.255.255.192 (这种写法很麻烦,192=11000000,即第四个8位组前2位是网络号,总共网络号是26位,可简写为192.168.10.0/26)


子网数为2^2=4,主机数为2^6-2=62,块大小为2^6=64(每个8位组来计算,发生在第三个8位组)。


4个子网分别为:

  • 192.168.10.0/26       

    (单播IP范围:192.168.10.1 ~ 192.168.10.62)


  • 192.168.10.64/26     

    (单播IP范围:192.168.10.65 ~ 192.168.10.126)


  • 192.168.10.128/26 

    (单播IP范围:192.168.10.129 ~ 192.168.10.190)


  • 192.168.10.192/26 

    (单播IP范围:192.168.10.193 ~ 192.168.10.254)


172.16.0.0/18


子网数为2^2=4,主机数为2^14-2=16382,块大小为2^6=64(每个8位组来计算,发生在第三个8位组)。


4个子网分别为:


  • 172.16.0.0/18        

    (单播IP范围:172.16.0.1 ~ 172.16.63.254)


  • 172.16.64.0/18      

    (单播IP范围:172.16.64.1 ~ 172.16.127.254)


  • 172.16.128.0/18    

    (单播IP范围:172.16.128.1 ~ 172.16.191.254)


  • 172.16.192.0/18    

    (单播IP范围:172.16.192.1 ~ 172.16.255.254)


172.16.0.0/27


子网数为2^11=2048,主机数为2^5-2=30,块大小为2^5=32(每个8位组来计算,发生在第四个8位组)。


2048个子网分别为:

  • 172.16.X.0/27

  • 172.16.X.32/27

  • 172.16.X.64/27

  • 172.16.X.96/27

  • 172.16.X.128/27

  • 172.16.X.160/27

  • 172.16.X.192/27

  • 172.16.X.224/27  (第三位可以从0变化到255)



例如172.16.0.0/16,要划分成2个200台主机,3个2台主机,3个24台主机,该怎么划分子网呢?遵从的原则是从大到小:


1.先算200台主机:2^n-2 >= 200,n为8,即主机号为8,网络号为24

172.16.0.0/24变化发生在第3个8位组,因为第3个8位组全是网络位,因此块大小为2^0=1,


子网:

172.16.0.0/24   

(可以任选2个供200台主机用,例如选前2个。供200台主机用)


172.16.1.0/24    

(供200台主机用)


172.16.2.0/24    

(未分配)

......

172.16.255.0/24


2.算24个主机:2^n-2 >= 24,n为5,即主机位为5,网络位为27

在172.16.2.0/24基础上划分子网:172.16.2.0/27变化发生在第4个8位组,块大小为2^5=32:


172.16.2.0/27    

(可以任选3个供24台主机用,例如选择前3个。供24台主机用)


172.16.2.32/27  

(供24台主机用)


172.16.2.64/27  

(供24台主机用)


172.16.2.128/27 

(未分配)

.....

172.16.2.224/27


3.最后算2个主机:2^n-2 >= 2,n为2,即主机位为2,网络位为30

在172.16.2.128/27基础上划分子网:172.16.2.0/30变化发生在第4个8位组,块大小为2^2=4:


172.16.2.128/30  (这3个供2台主机用)

172.16.2.132/30

172.16.2.136/30


通过上面若干VLSM的例子可用看出,VLSM是从右向左问主机号借用网络号,那CIDR就是网络号向左偏移,相当于主机数扩大了。更官方点说:


CIDR,就是忽略ABC类网络,自定义前缀相同的一条路由。


如192.168.12.0/24

192.168.13.0/24

192.168.14.0/24

192.168.15.0/24



二、下一跳



三、管理距离AD


路由器可能从多种途径获得同一路由,可以来自RIP,也可以是OSPF等。不同途径获得的路由可能采取不同的路径到达目的网络。AD越小,说明路由的可信度越高。直连路由的AD是0,静态路由的AD是1,RIP是120,EIGRP是90,OSPF是110。收到所有协议提交的路由会比较它们的管理距离AD值,比较的结果将写入路由表。

四、度量

测量同一路由协议内到达目的的网络的最佳路径的方法。路由协议会给每一条路径计算出一个数,这个数就是度量值,通常这个值是没有单位的。值越小,路径越佳。最后会选出该协议认为的最优路由,提交给路由表。

路由条目格式知道后可以开始生成路由表了。路由表生成3种途径:直连自动生成,静态路由协议,动态路由协议。路由表生成后,路由器就可以根据路由表转发数据包。转发原则:有匹配就转发,没有就丢弃。匹配多条时遵循最长匹配原则。直连没什么好说的,动态路由协议以后介绍,先介绍静态路由 (配置静态路由,静态汇总路由,静态默认路由,负载均衡,浮动静态路由)

配置静态路由:

路由器不像交换机,新的路由器必须配好IP和路由才能使用,先如下图配好路由器各端口和环回口IP:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

提供一下R1的配置命令(R2和R3同样配置即可)

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

配好IP地址后,来试试ping:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

可见路由器光配置好IP地址是不够的,还需要配置路由,否则只能ping通直连的端口:

上面讲到路由条目的基本信息是:前缀,掩码,下一跳,AD,度量。先暂时忽略AD和度量,R1要ping通R2的环回口的话需要设置:22.1.1.0(前缀) 255.255.255.0(掩码)12.1.1.2(下一跳),全部配置如下:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

(类似地配置R2和R3路由器的IP和路由)现在可以两两ping通了。

静态汇总路由:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

上面静态路由的配置例子中,要实现两两ping通,需要设8条路由(R1和R3各三条,R2两条),现在为R2增加两个环回口:loopback1:22.1.0.1/24,loopback2:22.1.2.3/24,均和原先的loopback0:22.1.1.1/24处于不同网段:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

要让R1和R3 ping通R2上新增的两个环回口需要各自增加2条指向环回口的新路由,很麻烦,可以配一条汇总路由:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

(R3同样设置即可)现在在R1和R3能ping通R2上的3个环回口了。

静态默认路由:

默认路由就是0.0.0.0/0表示所有路由(先将刚才设的汇总路由去掉):

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

上面设好的默认路由表示R1上所有路由均由12.1.1.2端口转发出去。但实际上此时R1去ping R2的环回口22.1.1.1/24,仍会选择之前设置的静态路由,而非选择默认路由,原因就是最长匹配原则。显然上图中的22.1.1.0/24比0.0.0.0/0掩码更长更精确,所以路由器会选择更精确的路由条目。可以认为默认路由是保底用的,其他都匹配不了,才选择默认路由。

负载均衡:

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

(基本配置请参照上面,不再赘述)为R2配置两条通往R1环回口的路由,分别从R2的f0/0口和f1/0口出去。

【静态路由合集】静态汇总路由、静态默认路由、负载均衡、浮动静态路由介绍

配完之后,如图中红色箭头所示,R2有两条路径可以访问R1,两条路径有相同的前缀(均为11.1.1.0),相同的掩码(255.255.255.0),相同的AD值(静态路由均为1),区别仅仅是下一跳不同(从R2的f0/0口出去的下一跳是12.1.1.1/24,从R2的f1/0口出的下一跳是23.1.1.3/24)。路由器无法通过最长匹配原则选择出最优路径,以路由器的视角来看,两条路径是等优的,因此通过负载均衡来平衡带宽:在R2上ping 11.1.1.1:


浮动静态路由:

路由图仍旧参照上图,除IP地址外,可以将无关的路由去掉。


在前缀和掩码相同时,AD值小的才会加入路由表。如上例仅AD值不同时,AD值小的那条路由才被加入路由表供路由器使用。但AD值大的那条路由并非被丢弃了,而是沉入水中,等待时机,一旦路由表中的那条路由出问题不能用了,才浮出水面被加入进路由表。因此叫浮动静态路由很形象。

PS:上面介绍的路由条目时提到的AD值和度量和路由器的最长匹配原则,这3者可能有点搞,需要解释一下:

度量是同一路由协议内选出到达目的地最小开销的那条路径,将这条路径提交给路由表。注意此时只是提交给路由表并没有真正写入,是否需要写入得靠AD值判断。

AD值是用于确认是否能加入路由表。前缀和掩码相同时AD值小的才加入路由表。当然如果前缀和掩码任一不同,则不论AD值大小,统统加入路由表。

路由条目被写入路由表后,具体选择哪条路由用最长匹配原则。

所以3者关系是: 度量提供路由条目给路由表。AD值决定哪些路由条目可以最终被加入路由表。最长匹配原则决定已被加入路由表中的哪个路由条目最终被路由器使用。





 推荐阅读 

>>>




 网工界市场认可度极高的华为认证,你考了吗?


拿下华为HCIE认证之后,你可以:


  • 跨越90%企业的招聘硬门槛

  • 增加70%就业机会

  • 拿下BAT全国TOP100大厂敲门砖

  • 体系化得到网络技术硬实力

  • 技术大佬年薪可达30w+


资源放送 

2022版华为HCIA Datacom小白入门到进阶实战课,复制链接到浏览器,即可观看:

http://www.thinkmo.cn/Home/Course/nradio/course_id/314.html?etoken=b504ddee


文章来源网络 侵删