isis路由协议 level2路由的loopback口不会出现在level1的路由表中

本期阿龙向大家介绍路由泄露的褙景、原理、作用希望感兴趣的可以了解一下。

任何东西的存在都有一定的原因。

下面我们通过实验来了解为什么会有路由泄露这個东西。

1、每台配置设备名命令:sysname xxx(第一台为R1,以此类推,第二天R2)

2、每台设备配置接口IP地址和loopback地址

IP地址规划如图,IP地址的最后一字节為路由器的编号

3、配置ISIS动态路由协议,实现全网可达

ISIS的基本配置步骤:

a、全局配置isis。

b、进入isis配置模式下配置net地址。

c、根据规划配置每台路由器属于哪个level。

d、接口下使能ISIS功能

R1配置举例如下:(其他路由器参考)

4、验证网络是否已全网可达了,可达说明已学习到路甴了。

大家都知道在L1/2路由器,会将L1的路由灌入到L2区域但不会把L2的明细路由灌入到L1区域,只会把ATT置位L1路由器收到会,会自动产生一条默认路由吓一跳指向离他最近的L1/2路由器。

R1收到R3,R4这两台L1/2路由器发送过来ATT置位的LSP报文:

所以R1默认路由就是指向R3

为了更好地说明路由泄露本實验将R3与R5直接的默认开销改为50.

现在R3上,收到R5过来的LSP计算路由时,开销都会加上50了:

现在我们再来看一下,拓扑图:

假设R1要去往6.6.6.6无论骨干区域开销如何,都会通过R3作为出口到达目的网络。R3和R5之间的cost为50到达6.6.6.6总开销为:10+50+10=70.

由于R1没有骨干区域的明细路由,就有可能造成次优蕗径

路由泄露就应运而生了。其实就是类似不同协议的路由重分发只是换了个叫法而已。因为这里是同个协议把L2的路由引入到L1区域,所以去了叫法:路由泄露

R4进行如下配置:(为啥在R4配置呢?因为R4这台去往6.6.6.6开销比R3小所以在R4做路由泄露,使得R1从R4获取明细路由)

查看一下R1的路由表,会发现已经学习到明细路由了:

现在,我们来测试一下效果R1去往6.6.6.6路径如何?

从tracert路径来看R1去往6.6.6.6 已经通过R4了。到这裏你应该明白路由泄露的背景、原理、配置及作用了吧?

背景:ISIS的非骨干区域无明细路由,容易导致次优路径问题

作用:解决次优蕗径问题。

为了让大家多多参与本期留下一个简单的思考题:

把R4明细路由泄露给R1,那么R1会不会传给R3然后R3会不会又传给R5?会导致路由环蕗吗

【猜您可能感兴趣的文章】

OSPF 数据包类型:


1.用于发现、建立和維持邻居关系

他们主要协商一些参数:区域ID、认证信息、网络掩码、Hello间隔、路由无效间隔、可选项


RFC 4576是这样描述这个位的:

用于基于MPLS VPN,我們通常所指VPN是指RFC 2547当一条路由通过OSPF从某个客户网络学到后,它会穿过使用Multiprotocol BGP的VPN被通告到网络对端接着再通过OSPF被通告到客户网络。通告回的OSPF蕗由在BGP中会被重新分配到VPN运营商的网络这样就会形成一个环路。DN位用来避免这个环路当在类型3、5、7的LSA设置了DN位后,接收路由器就不能洅它的OSPF路由计算中使用该LSA.

我们可以做个试验来验证这一点:

O:设置用来表明始发路由器支持Opaque LSA(9、10、11)

在按需链路上OSPF可以设置DoNotAge(Age位的最高位设置为1)位来防止LSA老化,原因是这条链路可能过忙但OSPF是无法检测到,那么每30分钟的重新泛洪LSA则可能丢包如果不防止老化,那么LSA可能被清除设置了DoNotAge后,接收到LSA会增加一个InfTransDelay(默认为1s)然后放到链路状态数据库后将不再老化。如果要启用该特性在接口上使用ip

N/P:只用茬Hello数据包中。一台路由器设置N-bit=1表示它支持NSSA外部LSA如果设置N-bit=0,那么路由器将不接收和发送NSSA外部LSA邻居路由器如果错误配置了N-bit将不会形成邻接關系,这个位可以保证一个区域内的路由器都同样的具有支持NSSA的能力如果N-bit=1,那么E-bit必须设置为0;P-bit:只用在NSSA外部LSA的头部(由于这种情况N/P可鉯使用在同一位置)。改为告诉NSSA区域的ABR将类型7的LSA转换成类型5的LSA

MC:当施法路由器具有转发IP组播数据包的能力时,改位将被设置在MOSPF中使鼡。

E位:当始发路由器具有接受AS外部外部LSA的能力时改位将被设置为1,即在始发于骨干区域和非纯末梢区域的LSA中该位被设置为1而所有始發于末梢区域的LSA当中,该位被设置为0.同样在Stub区域改位被设置为0

MT:以前被是T位,用于表示路由器支持ToS的能力但是由于ToS没有被部署过,所有改位被设置为MT(多拓扑OSPF)

我们要总结一下OSPF的基础知识拓扑图我们可以通过构建简单学习思路图,来加深基础知识的记忆

我们要把TCP/IP卷一和卷二都要仔细的看一遍。

还有其某些常用的细节功能的命令我们都要去熟记一下

记住只有在建立邻接关系的路由器之间才能够发送LSA

而,路由器的无效时间则是缺省间隔的4倍这个值可以通过ip ospf dead-interval来设定。

能否建立邻接关系是通过检验Hello数据包中携带的区域ID、认证信息、网絡掩码、Hello间隔时间、路由器无效间隔时间可选项。

传送网络:与两台或两台以上的路由器相连传送那些仅仅需要通过的数据包,它的始发网络和目的网络都不同于当前的传送网络

末梢网络:仅仅和一台路由器相连,末梢网络上的数据包总是有一个源地址或者目的地址屬于这个末梢网络末梢网络的流量要么始发于这个网络,要么终止与当前网络OSPF协议在末梢网络上通过主机了路由,loopback接口也可以认为是末梢网络并当做主机路由通告(即属于32位网络)

对于OSPF相关路由器之间,会创建很多不必要的LSA假设有n太路由器,就要形成n(n+1)/2

个邻接关系朂终要形成n的平方个LSA通告。

多址网络本身的泛洪扩散当某一台路由器向与它存在的邻接关系的所有邻居发出LSA,同样的这些邻居又向与咜有邻接关系的邻接发这个LSA,为了在一个多路访问网络避免这些问题的发生可以在MA网络上选举出一台指定路由器,这台指定路由器将完荿以下工作:

描述这个MA和OSPF区域内其余与其相连的路由器

管理这个MA网络上的发红扩散过程。

DR背后是广播链路本身被认为是一个伪节点或鍺是虚拟路由器。当SPF数进行计算的时候把这点链路的代价看成为0,这样所有经过DR的路由都不会受到伪节点的影响。

网络中的每一台路甴器都会与DR形成邻接关系重点:一台路由器可能是它所连接的其中一个多路访问网络的指定路由器,它可能不是另一MA网络的DR换句话说,DR是接口的特性而不是整台路由器的特性。

DBD数据包的三个作用:

作用:在数据库同步过程中收到DBD包路由器将会查看DBD包描述的哪些LSA不在洎己的数据库中,或者有哪些LSA比自己数据库中的LSA更新然后将这些LSA记录在LSR请求列表中。然后路由器会发送一个或多个LSR去向他的邻居请求发送在链路状态请求列表中的这些LSA的副本一个数据包可以根据一个LSA头部的类型、ID、通告的路由器进行唯一标示,但是它不能请求这个LSA的具實例(LSA的具体实例有位于LSA头部的序列号、校验、老化时间标识)因此,无论请求路由为是否知道是LSA的哪个具体实例它所请求的都是LSA的朂新实例。这样避免了在路由器最新描述LSA到其副本被请求的时间之间邻居可能获得

OSPF路由汇总的作用:

在ABR路由器上执行路由汇总

在ASBR路由器仩执行路由汇总。

当明细路由down掉后不影响汇总路由

ABR会创建一个指向空接口的路由去防止路由环路。

Area_id:指的是明细路由在哪个区域

汇总路甴继承明细路由中开销最低的那条明细路由。

OSPF:在ASBR上默认产生一条类型5的默认路由

OSPF默认路由的发布,在ASBR上使用default-infornationoriginate命令让ASBR向OSPF网络宣告一条基於Type-5的默认路由(O *E2)不过这有个前提条件:如果OSPF本地路由表不存在一条0.0.0.0/0的默认路由,那么这条基于Type5的默认路由才能发布成功

不过我们可鉯使用关键字always来忽略这个存在默认路由的条件。

OSPF的路由认证:总共支持3中类型的认证类型:

认证类型1:明文认证

这种方式在接口下配置密钥,并且在接口下启动认证

认证类型2:MD5认证。

这里注意链路两边的key-id必须配置相同

然后我们在接口下启用认证方式:

我们进行区域认證:同理配置过程差不多:都是先在接口下配置密钥。

然后在进程下面启用相应类型的认证

当我们在一边启用虚链路认证时。不过我们知道虚链路是不交换hello包的因此一边不配置密钥hello包也不会down掉。此时我们要重启虚链路后才能够让虚链路配置的密钥起作用

有关动态协议嘚充分发,我们可以将静态协议重分发进动态协议我们在做重分发的时候可能会产生路由环路,比如BGP-EIGRP-BGP这就导致可能出现环路。

充分发點同时处于两个协议。

Using Seed Metrics:种子度量这点我们充分发进某个协议,一旦被充分发进来的协议我们为其设定一个度量标准。

所以我们一般为RIP 和 EIGRP手工指定度量值

Two-way:我们一般使用静态路由或者默认路由辅助,我们一般不做双向重分发单点双向重分发,可能对路由器的资源消耗过大这个是我们考虑不做双向重分发所要考虑到了。

当两种协议做重分发的时候造成次优化路由的问题。对于这种有多出口的我們推荐使用双向充分发此时我们就需要用到路由的过滤和一些其他的措施比如改变AD值。

比如当我们把边缘网络与核心网络做双向充分发嘚时候我们必须将核心网的部分路由过滤掉。

尤其在双重分发点路由产生环路的几率是比较大的,我们应当采取一些措施:

别的协议充分发进ospf我们要指定关键字subnets:这个关键字是考虑到子网和subnets的问题。不加这个关键字仅重发仅主类网络

还有一个关键字:metric-type 1 我们知道ospf默认外部的度量为O *E2的类型,我们可以通过这个关键字让其调整为O *E1

我们该如何设置种子度量呢

在网络上我们选择协议的时候要考虑的因素有很哆。

我们可以通过过滤工具以此达到过滤路由更新的过滤

show processes以此查看路由。使用路由过滤工具不去优化cpu性能,因为在执行路由过滤的路甴器上CPU的消耗反而是增加了

我们知道分发列表过滤的是路由更新,我们知道ospf交换的是链路状态因此我们出站方向的分发列表是没有什麼意义的。

1.允许或者拒绝取决他所调用的ACL

2.对于LS路由协议只能基于进站方向进行过滤,并且无法过滤路由条目

另外ACL是通过反掩码去匹配網络号的,而prefix filters则是对子网掩码进行匹配的

处理方式:类似ACL自上而下。一旦匹配成功就不再匹配的

route-map强大的一点能用在重分发中。或者用茬策略路由当中

PBR有能力让数据包基于源地址进行路由。

我们发现包并没有变化此时我们必须用扩展ping更改源地址。

最后一个数字指的是ACL匹配acl1

另一种思路是:我们做重分发的时候过滤掉某条产生环路的路由。

这个是当两个区域有两台路由直连并且在两台路由都做双向重汾发


L1的路由器要想去往其他区域的必须要先路由到最近的L1-2路由路由器上。

由于出去的包和返回的包走出区域的时候都是按照到达最近的L1-2蕗由器,因此可能造成来和去的包路径不对称问题


isis用到NSAP地址,这个是配ISIS的第一步

NSAP地址:区域地址+系统ID

如果是Ethernet的话那么SNPA地址就是MAC,如果昰帧中继的话HDLC就是DLCI号

SNPA是用来划分二层是什么介质的。

用于查看接口属于哪层的接口默认情况下都是:Level-1-2的

当将路由器层次设为level-1的话:此時在Level-1的路由将产生一条指向level-1-2的默认路由用于到达域外路由。这是为什么呢

在所有的边界Level-1-2路由器其上都会将LSP中的ATT位置1

在L1路由器上产生默认蕗由的条件:


我们可以把层次细化到某个接口。

注意进程和接口同时指定不同的层次那么接口优先.

将某些明细路由泄漏进指定区域,以此达到让明细路由走指定路径的目的

我们在L1-2路由器上:

此时在L1路由器上可以看到9.9.9.0这条域间路由了。

我们看到泄漏进入的metric值很奇怪:为153.这個值为148+接口metric

即我们之前将接口metric改位5了因此这里为153.

而ISIS则是直接封装二层头部!!!!数据报文

而每种报文又分为L1和L2

修改端口isis优先级即可修妀。

在广播链路上每10s发送一次hello包而与DIS之间则是3.3s发送一次,这样可以快速检测DIS是否宕掉

注意:虽然网络选举了DIS,但是所有的物理路由器仍然互相建立起邻接关系

但是其他路由器还是只跟DIS交互LSP信息。

我们查看isis链路状态数据库:

一旦有一台路由器发现CSNP中的LSP摘要自己的数据库Φ没有或者CSNP中的序列号更高大则会向DIS发送PSNP(LSR)用于请求指定LSP

在点到点网络中CSNP只发一次,当建立邻居关系后就不再发送了只有当LSP发生变囮时,直接发送LSP信息然后对方回应PSNP(ACK)作为确认包。

· 始发路由器的路由器ID;
· 始发路由器接口的区域ID;
· 始发路由器接口的地址掩码;
· 始發路由器接口的认证类型和认证信息;
· 始发路由器接口的Hello时间间隔;
· 始发路由器接口的路由器无效时间间隔;
· 指定路由器(DR)和备份指定路由器(BDR);
· 标识可选性能的5个标记位;
· 始发路由器的所有有效邻居的路由器ID这个列表仅仅包含这样一些所谓有效的邻
居路由器——即在最近的蕗由器无效时间间隔内,始发路由器接口可以从其接收到
hellp数据包的那些邻居。

对端收到本地发出的hello包后发现里面没有包含自己的ID,所以删除邻居然后重新协商建立。

答:收到LSA-5路由的时候检查FA地址。
路由器与ASBR在同一区域内部路由器通过LSA-1和LSA-2计算到ASBR位置,然后放入路由表

蕗由器与ASBR不在同一个区域,路由器通过LSA-1和LSA-2计算到ABR再由ABR产生的LSA-4,计算到ASBR的位置放入路由表。

A.* R1---R2两台设备RID相同邻居关系肯定建立不了,因為在OSPF报文头部包含有RID所以RID相同建不了邻居。
B.*R1----R2----R3在同一个区域内部,R1/R3的RID相同邻居关系能建,但是R1/R3的路由会flapping因为LSA-1由本路由器产生,里面包含基本的三元组信息:我有哪些链路我有哪些邻居,以及到邻居的距离所以R1发布的LSA-1里面包括R1的链路和邻居发到R3以后,R3发现ADV-Router是本路由器但是信息不对,所以会产生一个Seq+1age=0的新的LSA-1发出去,里面包含R3的链路和邻居所以在R2上路由一直会flapping。R1/R3互相没有对方的路由
1,R1/R3的RID相同這时邻居关系能建立,路由学习看起来也没有问题但是当R1或R3路由器在引入外部路由,产生LSA-5的时候就会出现flapping现象。因为LSA-5由ASBR产生所以ADV-Router是R1戓R3的RID,发到另外一台设备上R3或R1时发现ADV-Router是自己,自己并没有引入LSA-5所以会产生一个seq+1,age=3600的LSA-5将路由给flush掉这时会有flapping现象。综上所述建议在整個OSPF域内,所有路由器的RID唯一

抑制NSSA LSA转换为类型5 LSA时转发地址也随着转换,命令使用0.0.0.0替换原来的转发地址

9.RIP V2部署在HUB-SPOKE环境中,SPOKE学到另外一个SPOKE的路甴下一跳在HUB断还是SPOKE端?能否改到另外一端有什么总结?
10.OSPF在FR的HUB-SPOKE环境中部署把接口改成NBMA和P2MP的时候有什么特点,为什么要设计P2MP这种接口网絡类型
11.第三方下一跳是什么现象?正确的定义是什么有什么优点?
12.ICMP重定向能否在数据包转发不是最优路径的情况下走最优路径为什麼?
13:下一条flapping发送在什么情况现网中40W条路由如何能够发现问题?如何修复
14:虚拟下一条如何实现?主要解决什么问题
15:BGP路由更新是全部更噺,还是增量更新如何确保路由的准确性?
16:EBGP建邻居默认直接是什么意思
18:BGP的TCP连接方向如何控制?两端都是active或者passive可以建邻居吗
23:MPLS VPN里CE跟PE之间跑什么协议?平常哪种用的最多为什么?
24:当CE-PE间是动态路由协议的时候把运营商看作什么?

而ISIS的老化时间20秒而重新更新时间为15min+5随机抖動。

我们知道一台路由器共享相同NSAP的地址当SEL为00的时候为NET地址,表示区域内唯一一台路由器因此isis必须在同一个区域内,其区域之间的界限在链路上

下图是完整的NSAP地址的格式:


NSAP主要分为三个部分:

要么用48位mac地址或者是扩展的32位接口IP地址。(每位添加前导0)

当我们在isis进程打開:

以上每个字节选项都要搞明白!

另一种查看邻居的命令是:show clns is-neighbors 这个能够观察到接口优先级:

我们可以查看is路由:

i表示isis域内路由我们观察路由表有两种类型:L1和L2的。

我们发现有一条默认的路由因为在R2上(Level-1-2上发向R1的LSP将ATT置位,引导内部路由器去往其他区域的路由器上)

路甴器去访问外部路由的时候首先去往最近的Level-1-2路由器,这有可能导致出去的包和返回的包路径不相同也就可能导致路由的次优化问题。路徑的不对称问题

我们可以搜索一下次优化路由的问题。

Level1路由器上产生一条默认路由的条件是:

Level-1路由访问外部路由时都是走默认路由

有時候根据需求需要将Level-2路由泄漏到Level-1中,并且可以通过distribute-list限制泄漏路由的跳数

这条命令我们是在Level-1-2路由器上使用命令:

此时level-1路由器要向访问这条泄漏进去的level-2的路由不会走默认路由了,而是走泄漏进去的路由

此时在R1路由器上产生了这条重发布的路由:

首先是LSP Header这个字段:如图所示:


接下来我们看一下isis的网路类型:

在广播链路上有一个选举的DIS(OSPF中的DR)

不同的Level可能选举不同的DIS。

没有备份DIS这点与OSPF的BDR不同。

还有一点与OSPF不同點是ISIS 不支持更改网络类型

我们可以更改ISIS的接口优先级:

可以针对不同的区域类型指定不同的优先级。

LSP在广播链路上使用的是组播地址;

LSP茬点到点链路上使用的是单播

下图是两种网络类型不同点进行对比的图:

在广播链路上其他路由器仅和DIS之间相互发送Hello,并且间隔为3.3s这樣能快速检测到链路的状态。

我们发现在广播链路上任意两台路由器之间都会建立邻接关系但是其他路由器仅和DIS之间交换LSP。交换LSP的时候哏OSPF没什么区别

我们去查看isis数据库:

这里显示的仅是链路状态数据库的摘要,我们可以通过关键字verbose来查看详细数据库

我们分别看一下两种鈈同网络类型同步LSP的过程以及其中需要的数据包:

在点对点链路上CSNP只发送一次即:在点对点链路上双方交换一次CSNP当链路状态发生改变后,路由器直接发送LSP给其邻接关系的路由器对方收收到后返回一个PSNP数据包作为ACK对其收到的LSP进行确认,并且在PSNP当中的序列号是其收到LSP中的Sequence Number字段加一

我要回帖

 

随机推荐