首先感谢王欣超和任培强两位网络工程师的指导!

三大路由协议包括:OSPF、ISIS、BGP

细想这些协议技术的产生其实挺有意思的,由于都是人将其研发出来的,所以协议的很多机制都挺人性化。比如OSPF的邻居建立,它就像两个人第一次见面建立邻居关系,最基本的条件就是咱们两个人在互相问侯时候需要知道双方的名字,比如:hello,我是XXX,你是YYY吧?。。 否则你连我的名字都不知道我跟你建个毛的邻居关系。。

好了继续…

OSPF:

        OSPF的路由是以LSA来承载的,OSPF中撤销路由实则是撤销LSA或更新LSA的一个操作,根据OSPF对LSA的操作情况可以将其分为一类、二类LSA的撤销路由和三类、五类、七类LSA撤销路由两方面去讨论。

一类、二类LSA撤销路由:

情况一(一类、二类LSA处理过程类似):

    在该拓扑中运行OSPF路由协议,AR1路由器上有一个loopback0接口,地址为1.1.1.1/32。接下来在OSPF中将该地址先宣告到OSPF区域0然后删除再后查看LSA的变化情况。

[AR1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0        //宣告路由
[AR1-ospf-1-area-0.0.0.0]display  this 
[V200R003C00]
#
 area 0.0.0.0 
  network 1.1.1.1 0.0.0.0 
  network 10.0.12.1 0.0.0.0 
#
return
[AR1-ospf-1-area-0.0.0.0]
[AR1-ospf-1-area-0.0.0.0]undo network 1.1.1.1 0.0.0.0    //删除该路由

宣告路由的时候:

撤销路由的时候:

    根据抓包情况可以看出,当network一个路由之后,该路由器会产生一条一类LSA,其中就有刚添加的那个接口的信息。该LSA里面包含着link-ID和link-DATA(loopback接口为stub网络类型,所有它的一类LSA的link-ID是接口的地址,link-data是接口地址的掩码,普通传输网络的link-ID则是DR的接口IP,link-data则是本设备的接口IP)
序列号是:0x80000005

    当撤销一条路由后,该路由器仍然会产生一条LSA,只不过不再包含loopback0接口的信息了,变化的是序列号,变成了:0x80000006

    综合上述可以得出结论,OSPF的一类、二类LSA在撤销路由的时候会产生一条新的一类、二类LSA,新产出的LSA中不再包含撤销的那条路由信息,新LSA的序列号会在旧的LSA序列号上加1,发送给区域中所有的路由器,当其它路由器收到该新的LSA后会覆盖旧的LSA,路由器重新计算路由,以达到撤销路由的目的。

    而且根据这现象可以发现,当拓扑发生改变之后(一类LSA)路由器就会重新发送一次LSA信息也会跟着计算一次,由于二类LSA携带的是掩码等信息,所有路由也会跟着计算一遍,简而言之:拓扑变化会引起路由变化。这也是OSPFv2中的一个缺点,在OSPFv3(IPv6)中对其进行了改进(一类、二类LSA不在描述路由信息,仅描述拓扑信息,路由信息的用新增的一个LSA:link-LSA来描述,实现路由与拓扑计算分离),否则拓扑的重复变化也会导致路由频繁的计算,不仅对链路带宽造成影响也会增加路由器的计算压力。

三类、五类、七类LSA撤销路由:

该三种LSA的撤销方式一致,只不过五类和七类的LSA只有当OSPF引入了外部路由的时候才产生,而三类LSA则是当添加或撤销路由时候ABR向其它区域通告的,所以此处直接以三类LSA举例。环境如下:此时存在两个区域,AR2就变成了ABR,当在AR1上宣告或删除接口地址信息的时候,AR2路由器就会像area1区域通告三类LSA,描述其区域0内的路由信息。

宣告路由的时候:

撤销路由的时候:

    可以看出,当AR1新宣告一个地址后,作为ABR的AR2路由器会向区域1通告一条三类LSA,LSA的link-ID、metric和netmask共同描述路由信息,LS-age为1(OSPF的LS-age是递增的,而ISIS路由协议的ls-age则是递减的)。

    当撤销一条路由后,ABR同样会产生一条三类LSA,只不过此时的ls-age就被设置成了3600秒,ospf的LSA最大老化时间为3600秒,当达到最大老化时间后该LSA将不可用,路由器就会删除与该LSA相关的路由,以此来撤销路由。

ISIS:

    ISIS路由协议的路由信息是封装在LSP报文中的TLV中的,但是它对撤销路由的处理和OSPF的处理方式类似。

环境如下:路由器均为level-1-2路由器区域号均为49.0001

    在ISIS中撤销一条路由实则是将接口下的ISIS关闭:

<AR1>system view                        //进入系统视图
Enter system view, return user view with Ctrl+Z.
[AR1]interface LoopBack 0                //进入接口实挺
[AR1-LoopBack0]isis  enable                //加入一条路由
[AR1-LoopBack0]display this                //查看当前配置信息 
[V200R003C00]
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 
 isis enable 1
#
[AR1-LoopBack0]undo isis  enable         //撤销一条路由
[AR1-LoopBack0]display this 
[V200R003C00]
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 

撤销内部路由:

此时我们只观察L2路由器发的LSP报文

宣告路由的时候:

撤销路由的时候:

    由此可见,在ISIS中路由信息是由IP接口TLV和IP内部可达性TLV共同来描述的,ip接口TLV携带的是地址信息,区域内部可达性TLV携带的路由前缀信息和度量(外部引入的路由会放到IP外部可达性TLV里)且剩余生命时间是1199秒,默认1200秒,递减。

    撤销一条路由时的操作也是重新发送一条LSP消息,LSP的两个TLV中不再包含删除的路由的信息,并且序列号加1,路由器在收到一条LSP后会比较新旧,优选序列号大的LSP。路由器通过路由计算撤销该路由。

撤销外部路由:

宣告路由的时候:

撤销路由的时候:

    根据数据包分析可知,ISIS在撤销外部路由的时候除了在IP外部可达性TLV中不存在该路由信息之外(外部引入的路由没有IP接口TLV,它是用于描述拓扑的)其剩余生产时间会被置为0(当生存周期减到0后该LSP不可用,再等60sLSP从数据库中删除,路由删除,该60秒称为0老化时间,至于为啥还要再等60秒,我没有查到,也未想通…超超的猜测是可能与垃圾回收机制有关,我猜测的是可能和数据转发有关,因为如果直接删除LSP之后路由也会随之消失,最直接的影响就是数据转发问题)

BGP:

    BGP是通过update包来携带路由信息和撤销路由信息的

拓扑如下:

    两台设备通过直连接口建立IBGP邻居关系,AS为100,在AR1上将loopback0接口的地址加入到BGP中,然后撤销该路由,抓包分析。

<AR1>system-view 
Enter system view, return user view with Ctrl+Z.
[AR1]bgp 100
[AR1-bgp]dis thi    
[AR1-bgp]display this 
[V200R003C00]
#
bgp 100
 peer 10.0.12.2 as-number 100 
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.12.2 enable
#
return
[AR1-bgp]
[AR1-bgp]network 1.1.1.1 32            //加入路由
[AR1-bgp]undo network 1.1.1.1 32    //撤销路由

宣告路由的时候:

撤销路由的时候:

    根据抓包的分析可以得知,BGP在宣告一条路由的时候,该路由信息被放在update包中的NLRI(网络层可达性信息)中,包含了地址信息和前缀长度,度量的话是放在了路径属性中的MED属性中。

    而撤销路由则是路由器直接发update包,带有withdraw routes(撤销路由)这个属性,对方路由器收到该update报文后就会删除相应的IP路由。

BGP对引入的路由的撤销也是如此,只不过起源属性不一样,引入的是incomplete,network的是IGP。不同区域的路由撤销也是如此,只不过AS属性会改变。

(整理了一遍后才发现好多东西还不明白,学无止境…)

相关文章
评论
分享
  • OSPF的防环机制(转载)

    OSPF与距离矢量路由协议不同,运行OSPF的路由器之间交互并不是路由信息,而是LSA,而路由器的计算正是基于网络中所泛洪的各种LSA,所以实际上OSPF路由的环路规避机制还得依赖LSA在环路避免上的设计。 先来看看第一种:Type-...

    OSPF的防环机制(转载)
  • 自动化ARP攻击脚本

    最近用到ARP欺骗攻击这个工具,发现了一些问题:由于不确定局域网中具体哪台设备才是你的攻击对象,所以我一般都会采用全部攻击的方式。但是这又会引申出另一个问题:首先需要扫描存活主机,然后再将存活的主机IP地址挨个进行手工攻击(可能有批量...

    自动化ARP攻击脚本
  • 利用ms17_010漏洞攻陷windows server 2012服务器

    这几天给客户装了好多服务器,很多系统是windows server 2012 R2的,装完后也没有打补丁,然后我就对这个没打补丁的系统扫了一下还真发现了高危漏洞。(比较简单,不喜勿喷) 首先自己搭建的环境:kali linux (19...

    利用ms17_010漏洞攻陷windows server 2012服务器
  • CVE-2019-0708漏洞利用

    CVE-2019-0708漏洞利用9月7日上午,群里被CVE-2019-0708漏洞刷屏,原来是那个号称wannacry级别的漏洞 BlueKeep(CVE-2019-0708)漏洞利用发布了。吓得老夫赶紧打开虚拟机更新了一下kali...

    CVE-2019-0708漏洞利用
  • HCNP-Routing&Switching-IEEP H12-233知识点整理

    网络规划网络规划调研分析项目背景,确定用户的需求和目标,确定技术方向。 目标:项目背景、确定需求、技术方向。 项目背景方式:调查、沟通、报告 项目范围:工程边界、功能边界、覆盖范围 WBS:工作分解结构 把整个项目分解成较小的,更易于...

    HCNP-Routing&Switching-IEEP H12-233知识点整理