LSDB同步
::: tip L1设备只能和L1设备在同区域建立L1的邻居。 L2设备和L2设备建立L2的邻居不受区域限制。 ::: 由上,AR12和AR13的区域ID应为49.0001。
在49.0001的区域内,L1的LSDB,AR11、AR12、AR13是相互同步的。 在49.0002的区域内,L2的LSDB,AR12、AR13、AR14、AR15是相互同步。
49.0002区域内的设备可以根据路由信息访问49.0001区域内的设备: L2设备中存在的L1设备的路由信息是根据L1-2设备的LSP计算得到的: ::: tip L1-2设备的接口下连接的网段会有L1-LSP和L2-LSP描述,分别通告给L1的设备和L2的设备。 :::
L1-2设备为什么会在自身的LSP中携带L1设备的路由信息?
L1-2设备是为了连通L1区域和L2区域的。
L1-2会将学习到的L1路由,当作叶子节点挂在L2的LSP上,会保留原有路由的开销值。
L1-2设备通告的L2-LSP,对L2设备有什么样影响?
L2设备只能学习L2的LSP。
L2设备会认为该路由信息(L1的路由)就是L1-2设备产生的。
49.0001区域内的设备可以访问49.0002区域内的设备。 L1的设备使用缺省路由访问L2设备:
L1设备的缺省路由是如何产生的?
L1-2设备通告的L1-LSP会将ATT bit置位。
L1设备收到ATT置位的L1-LSP,就会计算缺省路由。
ATT bit是如何置位的?
1. L1-2设备产生。
2. L1-2设备的L2-LSDB存在不同区域的L2-LSP。
如上,如果将AR14的区域改为49.0001,断开AR14-AR15,AR12、AR13就不会产生ATT置位的信号了: 再将AR14-AR15连接恢复,L1-2设备(AR12、AR13)的L2-LSDB存在不同区域(49.0002)的L2-LSP,AR12、AR13又会产生ATT置位的信号:
路由访问:
- L2设备通过明细路由访问L1设备(最优路径访问,因为明细路由携带路径开销)
- L1设备通过缺省路由访问L2设备(有可能会出现次优路径访问,因为L1设备只能将路径计算到L1-2) (缺省路由是L1-2设备给L1设备的)
::: tip L2区域相当于OSPF的骨干区域。 L1区域相当于OSPF的特殊区域。 :::
L1设备使用缺省路由访问存在的问题:
次优路径,L1设备计算的缺省路由开销只是本区域内入方向的开销。
L1设备的缺省路由只能到L1-2设备,L2区域的路径在L1设备中没有对应的开销值。
即L1设备根据缺省路由开销进行负载分担,如果L1-2设备后续L2区域的链路开销更大,则会形成次优路径。
如何解决次优路径问题?
- 改开销,将次优路径的开销值改大,使其优选最优路径L1-2设备下发的缺省路由。
此方法,要求最优的L1-2设备可以学习到L2设备的路由信息,不能有流量过滤之类的操作。 2. 配置静态缺省路由,将最优的L1-2设备设置为下一跳,通过修改优先级小于15。 如上,静态优先级60,ISIS优先级15,需要手动将静态缺省路由的优先级修改到更小的值: 此方法,当L1-2连接L2的链路中断,容易造成环路,如上述AR12-AR14断开后,AR11去往AR15通过静态路由到达AR12后,AR12访问AR15还是需要通过AR11,造成环路。 3. 路由渗透,通过L1-2设备将L2的路由引入到L1的区域内。
[AR3-isis-1]import-route isis level-2 into level-1
将AR12-AR14路由断开后,配置静态缺省路由AR11访问AR12,AR12中没有AR15的环回口信息,导致路由不可达: 执行路由渗透后AR12可以获取AR15的路由: 此时AR11再访问AR15,就不会有环路了: 原因是有了明细路由,就不会再走缺省路由了。
路由渗透:
路由渗透的本质是路由级别的变化(就是路由信息的引入)。 路由渗透只能由L1-2设备进行操作。 如上,在AR13上,AR15环回口的路由开销是0,只需要计算链路开销。 AR13-AR14的入方向开销默认10,AR14-AR15的入方向开销默认10,一共20。 查看AR13产生的L1的LSP: 如上,L1-2进行路由渗透时,对路由转换的变化:
- 将L2的路由转换为L1的路由,挂在L1的LSP上。
- L1的路由保留原有L2路由的开销。
上图中IP-internal后的*表示引入的路由。
ISIS设备对于L1路由和L2路由的优选:
L1优于L2优于带有U/D bit置1的L1路由。 在AR14也设置AR11相同的环回口: 如上,即使将AR12的G0/0/0口开销设置为50,AR12仍会优选L1的LSP。
如果存在多台L1-2设备,一台设备执行渗透,另一台设备如何访问? 根据路由级别优选的规则,另一台L1-2设备会根据L1的路由访问,出现次优路径。 如拓扑中AR13做了路由引入后,AR12学习AR15的环回口时,优选AR11发来的L1的LSP。
如何解决该次优路径
在L1-2设备执行路由渗透时,会给转换为L1的路由信息设置一个标记U/D bit ,如果置1,为DOWN,代表经过了路由转换;如果置0,为UP,代表没有路由转换。
如果L1-2设备收到带有U/D bit置位的L1路由,且存在和其对应的L2路由,则优选L2路由信息(即L2路由优于带有U/D bit置1的L1路由)。
存在多个L1-2设备时,都需要执行路由渗透。
L1-2设备执行渗透,则L1设备计算路由的下一跳就是该L1-2设备。 将AR13执行路由渗透后,AR11访问AR15的路由来源是AR13给的,下一跳就是AR13,即使AR13的开销更大也不会改变,即出现次优路径的问题:
[AR13-GigabitEthernet0/0/1]isis cost 50
将AR12也执行路由渗透:
[AR12-isis-1]import-route isis level-2 into level-1
此时AR11访问AR15的路径就会通过开销更小的AR12,AR13的链路作为备份。
L1-2设备是否会计算U/D bit置1的L1-LSP
- 不会,L1-2设备通过L2的LSDB可以学习到对应的L2-LSP。
- 会,L1-2设备的L2的LSDB中不存在对应的L2-LSP。
L1-2执行了路由渗透,下发L1-LSP时ATT bit不受影响,正常置位。 即L1收到ATT置1后可以正常计算缺省路由,和学到明细路由互不影响。L1访问明细路由时走明细路由条目,访问其他路由仍然会走缺省路由,如果明细路由消失,就都走缺省路由。相当于OSPF特殊区域给了明细路由。
L1-2设备会收到ATT bit置位的LSP。
::: warning L1-2设备一定不会用ATT bit计算缺省路由。 L1设备收到ATT bit置位1才会计算缺省路由。 :::
[AR13-isis-1]attached-bit advertise never (在L1-2设备上)设置ATT bit不置位
存在L1到L2的路由渗透: L2设备访问L1的路由是通过明细路由访问的,原因是L1-2设备默认执行了L1到L2的路由渗透。
外部路由
AR4上引入一条静态路由:
[AR4]ip route-static 192.168.1.0 24 NULL 0
[AR4-isis-1]import-route static
::: tip ISIS不区分内外部路由,统一当作叶子路由进行挂载。 :::
ISIS的外部路由统一使用分片LSP进行携带。一个分片LSP可以携带64个IP地址。一个IS-IS进程最多可以产生256个LSP分片。 分片LSP不携带拓扑信息,相当于实节点的分身,表示该节点还携带的一些外部路由信息,给该节点设备减轻了压力。
::: tip 引入的内部路由是在TLV128,引入的外部路由在TLV130。 如上拓扑中引入内部路由环回口,LSP抓包: 引入外部直连路由,LSP抓包: :::
拓扑中AR1可以访问AR4引入的静态路由(由于引入的静态指向NULL 0,所以无法ping通),如果要AR1通过明细路由访问到该静态路由,需要L1-2设备AR2将AR4路由进行L2到L1的转换,即路由渗透。
[AR2-isis-1]import-route isis level-2 into level-1 执行L2到L1的路由渗透
如上,L1-2设备执行路由渗透后,L1设备就可以通过明细路由访问L2设备引入的路由了。 L1设备访问L2设备引入的路由时,路由网段挂载在L1-2设备上发送的L1-LSP上: ::: warning 在L1-2设备进行路由渗透时,会把内部、外部的路由信息都当作叶子节点挂在L1的LSP上。即ISIS不区分内外部路由。 :::
ISIS在引入外部路由时,要根据设备的级别来进行引入,默认的引入是采用L2的方式。
使用L1设备进行路由引入后,在执行路由渗透时,需要加上级别才能引入: AR1引入静态192.168.10.0 24,isis执行不带级别的引入import-route static:
L1-2在引入外部路由时,不能用单一的级别引入,因为单一级别引入的路由是不支持渗透的,只能使用L1-2的模式引入: AR2引入静态192.168.20.0 24,ISIS执行L2级别的引入import-route static level-2: 只在L2分片LSP中存在,L1的分片LSP不存在: 使用L1-2模式引入,L1的分片LSP中出现该静态路由:
ISIS更新、撤销路由信息
内部路由
内部使用更新式的路由更新和更新式的路由撤销,和区域无关。
- 更新: 如上,在AR1设置环回口,AR1的G0/0/0口接收到更新路由的LSP,时间值1200s,序列号seq是顺序排列的值,携带需要更新的路由信息。
- 撤销: 如上,undo AR1的环回口,AR1的G0/0/0口接收到更新撤销路由后的LSP,1200s;seq是更新seq+1,不携带需要撤销的路由信息。
外部路由
- 更新:
- 第一条外部路由引入,时间1200s,seq是顺序排列的值,携带更新的路由信息:*
- 第二条外部路由引入,时间1200s,seq是上一个报文的seq+1,携带更新的路由信息:*
- 撤销:当存在多条外部路由,撤销其中一条,时间1200s,seq是上一个报文的seq+1,不携带撤销的路由信息(更新式的路由撤销):
- 当存在多条外部路由,撤销所有路由,时间0s,seq是上一个报文seq,不携带撤销的路由信息(时间老化撤销):*
ISIS的cost style
ISIS设计的开销有缺陷:
- 接口开销:6bit,即最大64(实际1-63)。
- 路由开销:10bit,即最大1024(如果路由的叠加开销超过1024,保留开销最大值1024,超出部分不计算)。
ISIS重新设计开销:
- 接口开销: 24bit。
- 路由开销: 32bit。
cost style:
窄风格: 宽风格:
::: tip 相邻设备使用不同类型的风格开销,不影响邻居的建立,但是会影响路由信息的学习。 ::: 如上述拓扑中,AR3为开销窄风格,AR4为开销宽风格。 AR3和AR4可以正常建立ISIS邻居: AR3可以正常收到AR4引入路由的分片LSP: 但是AR3无法计算该路由:
设备对不同的cost style报文的处理:
发送报文类型 | 接收报文类型 | |
---|---|---|
1.窄风格 | 窄 | 窄 |
2.窄兼容 | 窄 | 窄+宽 |
3.兼容 | 窄+宽 | 窄+宽 |
4.宽风格 | 宽 | 宽 |
5.宽兼容 | 宽 | 窄+宽 |
即发送报文时按照自身的开销风格,接收报文时可以兼容对方的开销风格。 |
将L2的设备AR2、AR3都改成宽兼容风格,AR2和AR3可以访问AR4引入路由。L1设备AR1虽然从L1-2设备收到了ATT bit置1的L1-LSP,但是没有缺省路由,也无法访问,需要将L1设备也更改为宽兼容:
::: warning 当改变了某台ISIS设备的cost style,所有与之相连的ISIS设备都需要改变风格。 :::
伪节点描述拓扑信息,即实节点连接了哪些物理设备:
不同开销风格的影响
不同的路由风格对于内部路由来说仅仅是开销的不同,主要对外部路由产生影响。 如上,可以选择开销类型是通过内部计算还是外部计算。 ::: tip 默认的开销类型是external外部计算。 :::
在引入外部路由时可以选举计算开销的类型,该类型受cost style的影响。
窄风格:internal是优于external。
- internal 引入外部路由的开销值默认为0 ,可以在引入时设置cost值为0-63。 可以通过查看分片LSP详细信息看到开销值:
- external 引入外部路由的开销值默认为64,可以在引入时设置cost值为0-63,但是默认开销和设置的开销是相互叠加的64+(0-63)。 通过查看分片LSP详细信息看到开销值:
即internal的开销一定会比external更小。 ::: tip 可以认为是窄风格和宽风格都是默认开销叠加设置的开销。 :::
验证:
将拓扑中所有设备开销风格都设为默认的窄风格。AR4和AR5同时引入192.168.1.0/24。
[AR4-isis-1]import-route static cost-type external AR4做外部开销类型
[AR5-isis-1]import-route static cost-type internal AR5做内部开销类型
::: warning 需要注意更改AR5的静态优先级。 上述操作完成后,AR5的路由表中学习到的外部路由是通过优先级更小的ISIS从AR4学习来的: 如上,应将AR4和AR5引入静态路由的优先级改为相同的小于15的值: [AR4]ip route-static 192.168.1.0 24 NULL 0 preference 14 [AR5]ip route-static 192.168.1.0 24 NULL 0 preference 14 ::: 如上,AR3的数据库中有AR4和AR5的分片,计算最优路径:
宽风格: 不区分internal还是external。
- internal 引入外部路由的开销值默认为0,可以在引入时设置cost值为0-4261412864。
- external 引入外部路由的开销值默认为0,可以在引入时设置cost值为0-4261412864。
如下,AR3设备访问引入的外部路由使用负载分担的方式: 开销默认(相同时)使用负载分担,设置开销值后按照开销最优计算路径。
验证:
将将拓扑中所有设备开销风格都设为默认的宽风格。AR4和AR5同时引入192.168.1.0/24。
[AR4-isis-1]import-route static cost-type external AR4做外部开销类型
[AR5-isis-1]import-route static cost-type internal AR5做内部开销类型
查看AR4和AR5的分片LSP: 如上,宽风格下,无论哪种开销类型,引入外部路由的默认开销都为0。 ::: tip 分配LSP中+IP-external表示该路由的源地址是外部的。 :::
组播涉及到的协议有IGMP和PIM。