静态路由的拓展配置:
1、负载均衡:
当路由器访问同一个目标具有多条开销相似的路径(经过路由器的数量)时,可以让流量拆分后沿多条路径同时传输,可以达到叠加带宽的效果。(当开销不相似时做负载均衡,会降低数据流到达目标网段的效率,只有当所有的数据流到达目标网段后,才能生效。类似于木桶短板效应)
2、手工汇总:
当路由器可以访问多个连续子网时,若均通过相同的下一跳,可以将这些网段进行汇总计算,之后仅编辑到达汇总网段的静态路由即可,以达到减少路由条目数量,提高路由器的转发效率的目的。
192.168.1.0 24
192.168.2.0 24
汇总:192.168.0.0 22
[r2]ip route-static 192.168.0.0 22
3、路由黑洞
在汇总中,若包含网络内实际不存在的网段,可能使流量有去无回,浪费链路资源。(例如192.168.0.0/22网段包含4个/24的网段,192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24,但是真正存在的只有两个网段,这个时候如果有流量想要给不存在的网段发送信息,就会使流量有去无回,造成链路资源的浪费。)
合理的子网划分和汇总可以减少路由黑洞的产生。
4、缺省路由
路由黑洞和缺省路由相遇,将100%出环。
缺省路由—一条不限定目标的路由条目。查表时,若本地所有路由均未匹配,则去匹配缺省路由 。
5、空接口路由—防止路由黑洞和缺省路由相遇成环。在黑洞路由器上配置一条到达汇总网段指向空接口的路由。
[R1]ip route-static 192.168.0.0 22 NULL 0
1、路由表的匹配原则:最长匹配原则(精准匹配原则)(掩码最长)
2、空接口的作用:NULL0口,一条路由的出接口为空接口,则将匹配到该路由的数据包直接丢弃。(将收到的属于这个汇总网段不存在的网段信息直接丢弃)
6、浮动静态路由----通过修改静态路由的默认优先级,实现静态路由的备份效果。
目标网段相同的两条路由,优先级低的路由不会被加载到路由表中,只有当优先级高的那条路由出故障了,优先级低的路由就会被加载到路由表中,从而达到备份的效果。
(优先级数值越高,优先级越低)
回顾WEB页面请求的过程
需求:学校网络里的电脑访问到Google网络中的web服务器中
1、电脑通过物理网线接入校园网中
2、电脑运行DHCP协议,从本地的DHCP服务器获取一个IP地址(DHCP服务器一般由网关路由器充当)
获取过程:
1)电脑作为DHCP客户端,会先发送一个DHCP请求报文----DHCP–discover包(广播包)
传输层:SP(源端口号):68 DP:67
网络层:SIP:0.0.0.0 (代表自己没有IP地址) DIP:255.255.255.255(广播地址)
数据链路层:SM:自己的MAC DMAC:全F
数据包先通过传输介质,来到交换机上。交换机收到数据包先关注数据帧中的源MAC地址,将源MAC地址和进入接口的对应关系记录在本地的MAC地址表中。之后,再看目标MAC地址,因为目标MAC地址是广播地址,所以,交换机将执行泛洪动作,将该数据包发于所有和自己连接的设备(发送设备除外)。
因为路由器和交换机连接,路由器将收到该广播帧。先看二层MAC地址,因为是广播帧,所以,将解二层封装看三层;因为三层的目标IP地址是255.255.255.255,所以,路由器将解三层封装,根据三层封装中的协议号(17)判定将该数据交给UDP模块进行处理,UDP解四层封装,UDP模块基于目标端口号67,判定此数据寻址的是DHCP服务,将交于DHCP服务进行后续处理。则此时DHCP服务器收到了DHCP客户端的请求。
(DHCP传输层用的是UDP协议,UDP协议号是17)
2)DHCP服务器将响应DHCP客户端的请求,回复DHCP-offer包。----单播/广播
这个包中将携带可分配网段中的一个可用IP地址(图中可分配网段为68.80.2.0/24,所携带的可用IP地址为68.80.2.101),其中还会包含网关68.80.2.1和DNS服务器68.87.71.226信息。
3)DHCP客户端进行反选,回复DHCP-Request包—请求的是DHCPoffer中的IP的信息。—广播包(可能收到多个DHCP-OFFER,通过广播包的形式,一方面告诉请求IP的DHCP服务器,需要获取他的IP地址;另一方面,告诉广播域中其他的DHCP服务器(如果有)自己所请求的IP地址并不是他们的,可以将地址进行释放)
注:DHCP客户端如果收到多个DHCP-offer,则将选择第一个收到的进行请求。
4)DHCP服务器将发送DHCP-ACK进行最终的确认。—单播/广播(不同厂商不一样)
3、电脑此时已经具备访问谷歌服务器的基本网络条件,则将在浏览器中输入www.google.com的URL(统一资源定位符)
4、因为输入的是域名信息,但是访问服务器需要IP地址信息,所以,电脑将触发生成一个DNS请求,发给DNS服务器。
DNS:域名解析协议
DNS协议请求查找的方法:
1、递归查找—电脑向本地DNS服务器发送查找请求(电脑向本地DNS服务器请求百度的IP地址,本地DNS在自己的地址表中查找百度的IP地址,如果有则直接回复百度的IP地址;如果没有,本地DNS服务器则向下继续查找别的DNS是否有,如果这个DNS也没有,则这个DNS继续向下查找,直到找到,找到后再一层一层往上传输,原路返回,直到本地DNS收到百度的IP地址,本地DNS服务器再将百度的IP地址发送给电脑。)(本地递归查找一般是用UDP的53号端口)
2、迭代查找—本地DNS服务器发送的查找请求(比如说电脑向本地DNS服务器请求百度的IP地址,本地DNS在自己的地址表中查找百度的IP地址,如果有则直接回复百度的IP地址,如果没有,这时候本地DNS回给电脑回复一个IP地址,但是这个IP地址不是百度的IP,而是另一台DNS服务器,这个DNS服务器再在本地地址表中查询是否有百度的IP地址,如果有则回复给电脑,如果没有,则再给电脑回复另外一台DNS服务器的IP地址…………)(迭代查找用的是TCP的53号端口)
传输层: UDP DP :53
网络层:SIP:68.85.2.101 DIP:68.87.71.226
数据链路层:SM:自己MAC 目标MAC:???(现在还不知道)(目标MAC是网关MAC,因为电脑和DNS服务器不在一个广播域,所以要网关路由器帮忙转发信息)
5、为了获取网关的MAC地址,电脑需要先以网关IP:68.85.2.1作为请求IP,发送一个ARP请求包。
源IP:68.85.2.101 目标IP:68.85.2.1
源MAC:自己的MAC 目标MAC:全F(广播的形式)
工作过程:
首先,主机通过广播的形式发送ARP请求,通过IP地址请求MAC地址。因为是广播帧,所以,广播域内所有的设备均会收到这个请求,设备收到后,先将数据包中的源IP和源MAC的对应关系记录在自己本地的ARP缓存表中。然后,再看请求的IP地址,如果请求的不是自己的IP地址,则将直接丢弃数据包。如果请求的是自己的IP地址,则进行应答。之后,再进行通讯时,将优先查看本地的ARP缓存表,若有记录,则按照记录中的MAC地址添加;若不存在记录,则再发ARP请求获取。
通过ARP请求,电脑将获得网关的MAC地址
6、则DNS请求包将正常封装
传输层:UDP DP :53
网络层:SIP:68.85.2.101 DIP:68.87.71.226
数据链路层:SM:自己MAC 目标MAC:网关的MAC
7、网关收到电脑发送的DNS请求的数据包,先看MAC地址,目标MAC是自己的MAC,则将解二层封装,看三层。基于三层的目标IP地址去查看本地的路由表。如果存在可以匹配上的路由条目,则将按照路由条目的指示来进行转发。如果不存在,则将直接丢弃该数据报。(但是在当前情景中网关会通过缺省路由发给公网中的ISP)
8、通过路由器的转发,该请求包将来到本地的DNS服务器上。如果本地的DNS服务器的缓存中存在该域名对应的IP地址,则将直接返回给电脑。如果没有,则将向DNS根服务器发起迭代查找请求,最终获取到该域名对应的IP地址,返回给电脑。(迭代查找时使用的是TCP的53号端口)
9、电脑将通过DNS协议获得www.google.com所对应的IP地址信息。之后,将触发本地电脑到目标服务器的HTTP关系的建立。
因为HTTP协议是基于TCP协议来进行工作的,所以,需要先完成电脑和目标服务器之间的TCP会话连接。(三次握手)
当TCP会话建立之后,客户端(电脑)和服务器将建立双向的会话通道,将可以相互发送信息。
10、客户端----服务器:发送Http请求----获取网页信息----发送GET请求
11、服务器----客户端:收到GET请求后服务器将会给客户端 返回网页信息(200 OK)----至此,小明的电脑上将获取到谷歌web服务器的页面信息。
三次握手没有建立的情况下,双方不能传输数据。三次握手和数据可靠传输是两件事情,必须保证面向连接没有问题,数据才能可靠传输。
如果双方是客户端(C)、服务器(S)模型—CS模型,一般都是客户端先发送同步请求包进行第一次握手
如果两端不是客户端、服务器模型,谁先发送数据都无所谓,只是一方发送之后,另一方就抑制了第一次握手能力
三次握手:
第一次握手:主机向服务器发送同步请求包(syn+req)(syn标记位置1)
同步请求:请求两端为相同的状态(A主机准备给B发送数据,B服务器做好准备接收的状态)(主机请求服务器的端口开放)
第二次握手:服务器给主机回复(ACK+syn+req,(ACK标记位置1)(ACK确认标记位) ACK是确认的意思)(确认的同时又发送了一个同步请求包)(服务器请求主机的端口开放)
第三次握手:主机给服务器回复ACK包(ACK标记位置1,因为通信是双向的,所以也会把SYN请求标记位置1)
静态路由:由网络管理员手工配置的路由条目。
动态路由:所有路由器上开启同一种路由协议,之后,通过路由器之间沟通,协商,最终计算生成路由条目。
静态路由的优点:
1、不会占用额外的资源。
2、因为选路由管理员决定,所以,相对更加合理。
3、更加安全。
静态路由的缺点:
1、在复杂的网络环境中,配置量较大。
2、静态路由无法基于拓扑的变化而自动收敛。----静态路由仅适用于小型简单的网络环境中。
相比于静态路由,动态路由的优势在于可以基于拓扑的变化而自动收敛,使得动态路由协议更适用于复杂的大型网络中。当然,动态路由也存在他的问题,主要体现在安全性和资源占用。依靠算法进行路由选路的,可能出现选路不佳的情况。
动态路由的分类:
按照范围(AS —自治系统)来进行 分类
—IGP —内部网关协议----主要是应用在AS内部的路由协议
----RIP,ospf,IS-IS,EIGRP等
—EGP —外部网关协议----主要应用在AS之间的路由协议
----BGP(边界网关协议)
BGP不需要算法,是按照规则进行选路的
IGP协议根据算法进行分类
—距离矢量型协议(DV)—通过直接发送路由条目信息来获取未知网段的路由信息。----使用的算法:贝尔曼.福特算法(Bellman-Ford算法)—也被称为;“依据传闻的路由协议”(路由条目信息由路由器一个传一个的去告诉不知道该路由条目信息的路由器)
—RIP
—链路状态型协议(LS)—传递的是拓扑信息(LSA —链路状态通告)—收集LSA信息最终将网络完整的拓扑信息获取到。SPF —最短路径优先算法—这个算法可以将图形结构转换为树形结构—之后再根据树形结构计算出本地到达未知网段的路由信息(最终的目的是生成无环的路由信息,因为树形结构不会形成环路)。
—OSPF,IS-IS(相当于简化的OSPF)
RIP ----路由信息协议
核心算法:贝尔曼-福特算法—灵魂
开销:RIP以跳数作为开销值。RIP存在一个15跳工作半径。当路由的开销值达到16跳时,则认为该路径不可达。(不同动态路由协议之间的开销值是不一样的,评判标准是不一样的,比如说时间和距离就不一样,所以说不同路由协议之间的开销值没有可比性)(所以不同的协议之间比较优先级,相同的协议之间比较开销值)
RIP协议15跳的开销值限制并不是RIP协议只能运行在小型网络的主要原因,其主要原因是:RIP协议①周期更新占用资源大,所以不太适合在大型网络中②收敛速度慢,RIP计时器时间长,导致收敛速度慢,所以在大型网络中运行时效率比较低③选路不太合理,因为选路是按照跳数为标准,所以选路不太合理
RIP 15跳的开销值限制主要是为了破除环路问题
版本:RIPV1,RIPV2 ----IPV4领域
RIPNG ----IPV6领域
RIP协议在传递信息时仅需要携带两个参数,一个是目标网段信息,一个是开销值。
开销值的计算方式:COST = 本地路由表中该网段的开销值+ 1
RIP协议在在传递路由信息时,只携带两个参数:①目标网段信息②开销值
RIPV1和RIPV2的区别:
1、RIPV1是有类别的路由协议,RIPV2是无类别的路由协议。
有类别:在传递目标网段信息时不携带子网掩码,这个时候路由表在刷新填入目标网段信息时(Destination/Mask)就会根据前八位来判断,比如说192.168.1.0,根据192就能判断出是C类地址,所以子网掩码就是24,1.1.1.0,根据1就能判断出是A类地址,所以子网掩码就是8。因为传递路由信息时没有带子网掩码,所以只能按照ABC三类IP地址来分类,这就是有类别路由协议。(RIPV1在传递目标网段信息时一般会存在巨大的路由黑洞,比如说传递1.1.1.0/24网段的信息,由于RIPV1是有类别的路由协议,所以传递的信息就是1.1.1.0/8网段,但真实要传递的网段信息其实是1.1.1.0/24,这时候就形成巨大的路由黑洞。)
无类别:在传递路由信息时会直接带上子网掩码,比如说在传递1.1.1.0/24网段信息时,会直接带上/24。
RIPV1在传递目标网段信息的时候不携带子网掩码,RIPV2在传递目标网段信息时携带子网掩码。
因为这个原因,导致RIPV1不支持非连续子网网络。以及VLSM和CIDR。
不支持非连续子网网络的原因:
如图:
图中R1–R3运行的都是RIPV1协议,当R2想要获取R1的172.16.1.0/24网段信息时,R1路由器运行的RIPV1协议传递目标网段信息时,不会将子网掩码传递过去,所以传递过去的网段是直接汇总后的B类网段172.16.0.0/16,这样就造成了巨大的路由黑洞;当R1想要获取R3路由器上的172.16.2.0/24的网段信息时,R3路由器上运行的RIPV1协议传递目标网段信息时,不会将子网掩码传递过去,所以传递过去的网段还是汇总后的B类网段172.16.0.0/24,但此时R1路由器上已经有了172.16.0.0/24网段的信息,所以就不会再接收从R3路由器传递过来的172.16.0.0/16网段信息,所以会导致R1不能访问172.16.2.0/24网段,R3也不能访问R1上的172.16.1.0/24网段,这样就导致了一些通讯障碍。
R2给R1发送192.168.1.0/24网段的信息,R1接收到1.0/24网段的信息后会将该网段信息刷新到路由表中,Destination/Mask(目标网段和掩码)就是1.0/24;Proto(协议类型)是RIPV2;Pre(优先级)RIP协议优先级在华为体系中默认是100;Cost(开销值是1);Flags(本地标记)RIP协议一般是D;NextHop(下一跳,谁给你发的信息,谁就是下一跳)就是R2接口的IP地址;Interfacce(出接口,从哪个接口收到这条路由信息,哪个接口就是出接口)是R1和R2连接网段的R1的接口
2、RIPV1采用广播的形式进行邻居间的通信,RIPV2采用组播(224.0.0.9)的形式进行邻居间的通信。
但凡是224.0.0.X开头的组播地址都称为本地链路组播,其特点是这类组播的TTL值为1。这类信息仅能在一个广播域内进行传播(因为只要不在一个广播域内就会经过路由器的转发,而经过一个路由器转发后TTL值就变为0了,这个数据包就会被丢掉)。
RIPV1和RIPV2都是基于UDP的520端口进行通信
RIPNG是基于UDP的521端口进行通信
每一个组播地址都有一个对应的虚拟MAC地址(01:00:5e)
TTL:生存时间(time-to-live)
作用:每经过一次路由器的转发,TTL值减1,当TTL值减到0时,设备会把这个数据包丢掉。
每个组播地址都有一个对应的组播虚拟MAC地址,这个组播MAC地址是虚拟出来的(开头都是01:00:5e,例如224.0.0.9对应的虚拟MAC地址是01:00:5e:0:0:9 ; 224.0.0.5对应的虚拟MAC地址是01:00:5e:0:0:5)
用RIPV2通信比RIPV1通信更节约资源的原因:
①RIPV1携带的数据包:
第四层: UDP 520
第三层: SIP:自己的IP
DIP :255.255.255.255
第二层: SMAC: 自己的MAC
DMAC: 全F
②RIPV2携带的数据包:
第四层: UDP 520
DIP :224.0.0.9
第二层: SMAC: 自己的MAC
DMAC: 01:0:0:5e:0:0:9
当交换机收到路由器的数据包时,会以广播的形式向下面的电脑发送。当收到数据包时,会先解二层封装,当是①情况时,需要解封装到第四层UDP的端口号时电脑才能知道该数据包不是给自己的,然会电脑会丢掉数据包; 当是②情况时,电脑在解二层封装DMAC地址时就知道不是给自己的数据包,而是与RIP协议有关的,就会直接丢弃该数据包。 ------所以相对来说,采用RIPV2进行邻居间的通信更节约资源。
3、RIPV2支持手动认证和手工汇总,RIPV1不支持。
手工认证:通信的邻居双方带一个口令(例如123456),双方的口令一样可以正常通信,不一样不可以正常通信。------所以增加了安全性。
手工汇总:IP地址进行汇总,因为RIPV2携带子网掩码所以支持手工汇总,而RIPV1不携带子网掩码所以不支持手工汇总。
RIP的数据包:request请求包和reponse应答包
request(请求)包—当RIP运行后将立即发出,希望尽快从邻居处获取未知网段的路由信息
Reponse(应答)包—携带路由信息的数据包
这两个包可以获取齐周围的路由信息,当获取齐后,称为收敛完成。
RIP在收敛完成之后,依然会每隔30S发一次Reponse(应答)包,我们把RIP的这种现象称为RIP的周期更新。—周期更新一方面,弥补自身没有保活机制,另一方面弥补自身没有确认机制。
周期更新:分为同步周期更新和异步周期更新。
在RIP协议中使用的是异步周期更新—30S即周期更新计时器。为了确保异步周期更新,RIP并没有严格按照30S的更新周期来执行,而是在该时间上增加了一个小的偏移量±5S。
周期更新:确认和保活作用
因为RIPV1和 RIPV2都是基于UDP的520端口传输,所以都是不可靠的,而获取未知网段路由是要可靠的传输,所以RIP要不断的进行周期更新来确认自己发的数据,对方是否受到(因为RIP协议没有确认包),以此来弥补自己没有确认机制这一缺陷。
保活:证明这自己还活着
周期更新----异步周期更新(为了防止网络拥堵)
RIP的计时器:
1、周期更新计时器:默认30S
2、失效计时器:180S —当一条路由信息180S未刷新,则RIP将判定该路由失效。(路由器将会把该路由从全局路由表中删除,还会保存在缓存中,并且将其开销值置为16,之后周期更新时依然携带。----带毒传输(目的是为了把失效路由信息传递出去))
3、垃圾回收计时器:120S —失效路由在120S内将继续发出,进行带毒传输。当该计时器归零后。将该路由信息彻底删除。