HCIE实验——聊聊ISIS中的Attach-bit
关于ISIS的区域和OSPF区域的对比:其中ISIS的一个区域,默认的操作方式与OSPF的totally stubby区域的操作是一样的,也就是说默认情况下,不仅外部路由无法进入区域,区间路由(OSPF是LSA-3,ISIS是level-2的LSP)也无法进入一个普通的区域。
那么OSPF中totally stubby区域内部的路由器如果要访问其他区域的设备,需要有默认路由,这个LSA-3的默认路由是由totally stubby区域的ABR产生并发往区域内部的,当然在双ABR的时候,是可能出现次优路径的。
ISIS一个区域内部的level-1的路由器要访问其他区域的时候,也需要默认路由,但是这个默认路由并不是由level-1-2路由器产生并发往区域内部的,而是由区域内部的level-1路由器,根据连接其他区域的level-1-2路由器产生的level-1的非伪节点LSP中携带的Attach-bit计算出来的。
下面我们用实验来了解一下Attach-bit产生及控制。
实验拓扑:R1、R2、R4属于49区域,其中AR2和AR4是level-1-2设备,AR1是level-1的设备;R3属于48区域是level-1-2设备。
R1的配置:
R2的配置:
R4的配置:
R3的配置:
这时查看R1的路由表中,并没有AR3的lo0(3.3.3.3/32)的路由,只有两条默认路由指向R2、R4。
但是按照OSPF的经验,这个默认路由应该由ABR(也就是ISIS区域的level-1-2路由器)产生并发送到区域内部的,这时查看LSDB中R2、R4的level-1的非伪节点LSP的详细信息,发现并没有这个默认路由。
所以这个默认路由实际上是由R1通过R2、R4产生的level-1的非伪节点LSP所携带的Attach-bit自己计算出来的。
那么什么时候Attach-bit会置位呢,并且它的值除了0和1以外还有其他的值吗?这个我们要了解下ISIS LSP的报文结构。
ISIS的LSP报文的头部结构中Attribute-bit一共有8bits,其中高3-6位是Attach-bit。
Attach-bit的意思为一台路由器以哪种metric-type连接其他区域。ISIS最初设计的时候有4种metric-type:error、expense、delay、default。
其中前三种是为了让ISIS支持QOS所设计出来的,后来几乎没有使用,所以现在ISIS基本上都是使用default的metric-type,默认每个接口的metric值都等于10。
由于default在高3-6位的最后一位(XXXX),所以当不连接其他区域的时候,这位置0;当连接其他区域的时候,这位置1,所以要么是0000=0x0,要么是0001=0x1。
所以我们看到的Attach-bit只有0和1两个值,因为其他三种metric-type我们现在是不使用的。
那么什么时候Attach-bit位会置位呢?是至少有一条隐含的路径连接其他区域的时候,level-1-2路由器产生的level-1的非伪节点LSP中Attach-bit会置位。这是什么意思呢?
情况一:在我们这个拓扑中AR2、AR4(属于49区域的level-1-2路由器)与AR3(属于48区域的level-1-2路由器)建立level-2的邻居关系,表明这两台设备都直接连接了其他区域。
所以AR2和AR4产生的level-1的非伪节点LSP中Attach-bit会置位。
情况二:将AR2、AR3之间链路down掉。
这时R2、R3之间的邻居关系将消失,但是AR2与AR4之间建立的level-1-2邻居关系,而AR4直接连接区域48,所以AR2可以通过level-2“隐含”的连接到区域48(所谓的其他区域),所以这时AR2和AR4产生的level-1的非伪节点LSP中Attach-bit也会置位。
、
当然现在也可以在R2上使用命令attached-bit advertise never,使level-1-2路由器即使可以连接到其他区域,也不会将Attach-bit置位(有兴趣可以自己测试下)。
情况三:将AR4与AR3之间的链路也down掉。
这时AR2、AR4与AR3之间的邻居关系全部down掉,但是AR2和AR4之间还是有level-1-2的邻居关系,这时AR2和AR4产生的level-1的非伪节点LSP中Attach-bit会置位吗?
答案是:不会的。
所以说Attach-bit默认只有在当level-1-2路由器至少有一条“隐含”的路径可以连接到其他区域的时候才会置位,并不是说有level-2邻居关系就能置位。
当然现在这种情况下,我们也可以在level-1-2路由器上,通过命令attached-bit advertise always,让路由器即使没有连接其他区域,也会将Attach-bit置位(当然一定要慎用,否则可能会出现黑洞)。
现在我们已经知道什么时候Attach-bit会置位了,那么区域内部的level-1的路由器收到这样的LSP后,会怎么操作呢?
对,默认情况下,它们会根据这个Attach-bit自己计算出到达最近的本区域的出口的默认路由(连接其他区域的level-1-2路由器,就是本区域的出口)。
原文地址:https://blog.51cto.com/14248289/2373750