协议-OSPF与ISIS

协议-OSPF与ISIS_第1张图片OSPF

作者:Danbo

OSPF 数据包类型:

1.hello包:

协议-OSPF与ISIS_第2张图片

HELLO包的作用:

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

2.DR/BDR的选举

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

 

2.DBD包

协议-OSPF与ISIS_第3张图片

我们看一下可选字段:

DN

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

The high-order bit of the LSA Options field(a previously unused bit) is used to solve the problem described in theprevious section. We refer to this bit as the DN bit. Whena type 3, 5, or 7 LSA is sent from a PE to a CE, the DN bit MUST be set. The DNbit MUST be clear in all other LSA types.

 

When the PE receives, from a CE router, atype 3, 5, or 7 LSA with the DN bit set, the information from that LSA MUST NOTbe used during the OSPF route calculation. As a result, the LSA is nottranslated into a BGP route. The DN bit MUST be ignored in all other LSA types.

 

This prevents routeslearned via BGP from being redistributed to BGP. (Thisrestriction is analogous to the usual OSPF restriction that inter-area routesthat are learned from area 0 are not passed back to area 0.)

 

Note that the DN bit has no other effect onLSA handling. In particular, an LSA with the DN bit set will be put in thetopological database, aged, flooded, etc., just as if DN were not set.

 

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

 

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

地址:http://blog.sina.com.cn/s/blog_6dc951ef01011pr3.html

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

DC:(DemandCircuit,按需链路)

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

EA:在此不介绍

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。

RID选择优先级:

1.      手工配置

2.      最高lo地址

3.      最高的ip地址。

Hello的发送是基于路由器接口的,通过ipospf hello-interval来设定。

而,路由器的无效时间则是缺省间隔的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数据包的三个作用:

1.      协商主从关系。

2.      确定交换链路状态数据库的初始序列号。

3.      交换所有的LSA数据包头部。

 

LSR

 

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

Igg

 

OSPF路由汇总的作用:

1.      隐藏路由的不稳定。

2.      节约路由表的体积。

3.      减少LSA在网络上的洪泛。

 

两种路由的汇总:

1.      区域间的路由汇总。汇总类型3的路由,针对O IA

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

2.      域间汇总:针对区域外部的类型5的路由进行汇总。

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

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

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

执行路由汇总的原则:

Area area_id range 172.16.8.0 255.255.248.0/和面加上汇总成汇总路由

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

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

命令:summary-address 172.16.8.0 255.255.224.0

 

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

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

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

有时候我们需要去修改器开销,让其改变其选路:default-information originate metric 10-100

 

Stub区域的限制:

1.      基于RFC,多厂商支持

2.      拒绝Type-5、Type-4

3.      会自动宣一条Type-3 默认路由到ABR路由器,用于引导OSPF Stub区域内路由器访问外部网络。

4.      不能为骨干区域;不能有虚链路跨越在Stub区域。

5.      不能有ASBR

 

Totally Stub Area

1.      思科私有

2.      拒绝Type3-4-5-7

3.      同样会产生一条Type-3,去访问其他区域和外部网络。

4.      在ABR上只需要加上no-summary这个关键字就ok了.

5.      Area 1 defaut-cost 5 #这个是修改默认的COST值。

 

NSSA:

 

Totally NSSA:在ABR上过滤掉Type-3的LSA,这个是思科私有标准。

拒绝Type-3-4-5 LSA

 

OSPF接口cost值为64,对于回环接口cost值为1.

 

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

Type-0-1-2:

认证类型0:不认证。

认证类型1:明文认证。

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

认证类型2:MD5认证。

配置密钥:ip ospf message-digest-key 1 key uestc

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

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

ip ospf authentication message-digest以次启用md5认证。

 

认证方式:

1.      邻居间认证:这点在链路两边进行上面的配置即可。

2.      区域认证:

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

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

启用命令:area 1 authentication message-digest

ip ospf message-digest 启用区域的md5认证。

3.      虚链路认证

Ospf虚链路认证:

我们在ospf进程下:area 1 virtual-links 2.2.2.2 (authentication)可删message-digest-key 1 md5 uestc

启用虚链路认证:area 1 virtual-links 2.2.2.2 authentication message-digest

然后我们去清理一下ospf进程:clear ip ospf process

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

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

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

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

默认种子度量:

Protocol    Default Seed Metric

RIP        Inifinity 无穷大

EIGRP      infinity

OSPF      20 for all except BGP, which is 1(默认是20,对于BGP来说为1)

BGP       BGP metric is set to IGP metric value

ISIS        默认为0

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

我们首先看一下One-Point Redistribution

One-way:default route orstatic routes needed

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

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

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

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

1.      修改管理距离

2.      Route maps

3.      分发列表

4.      Manipulation of metrics 控制metric

 

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

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

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

default-metric 1 1 1 1 1 这个在所有协议都可以使用。

 

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

1.      路由更新的大小

2.      更新的频率

3.      设计的缺陷

4.      route-map和过滤的存在和位置设计不合理。

5.      路由的性能。

6.      扁平化和层次化的网络

7.      子网连续、物理分层和逻辑分层设计要合理。

8.      IP编制必须遵循物理拓扑,这样我们做在上层做合理的汇总。

9.      找一下1w节点园区网的

 

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

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

如果控制路由更新:

1.      改变设计

2.      设置被动接口

3.      使用过滤工具施行重分发。

包括:

1.      ACL

2.      Prefix lists

3.      Distribute lists

4.      Route maps

下面我们做实验来搞。

分发列表:

router rip

 redistribute ospf 1 metric 5

 1.distribute-list10 out OSPF 1  #表示凡是从ospf 1 发出去的到rip的去匹配分发列表10

 2.distribute-list 7 in Serial0  #应用于某接口

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

 

distribute-list:

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

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

 

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

前缀列表/、ge le

ip prefix-list xx deny 3.3.3.3/32

ip prefix-list xx permit 0.0.0.0/0 le 32

在进程下:distribute-list prefix xx in s1/0

 

我们讲一下route-map

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

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

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

 

route-map name permit/deny 10/20/30

match

set

 

路由充分发的时候:redistribute rip subnets route-map xx

应用在接口:ip policy route-map xx :此时叫做策略路由PBR

 

route-map xx permit 10

map ip address 1  #之前创建的ACL

set ip next-hop ****             set ip default next-hot ***首先匹配这条

ip policy route-map xx   #应用在进站接口。

打开PBR动态调试:debug ip policy

打开包调试:debug ip packet

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

 

基于网段来修改管理距离:distance 90 192.168.1.0 0.0.0.255 1

distance ad +源地址  #源地址指的是从哪台路由器过来的路由。值得是RID

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

 

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

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

图:

协议-OSPF与ISIS_第4张图片

redistribute eigrp 1 route-map xx

route-map xx deny 10

match tag 20

route-map xx permit 20

set tag 40

 

 

ISIS

三种路由器的形式:

L1 L2 L1-2三种路由器地址

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

OSI Area Routing问题:

isis默认的端口metric默认为10

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

协议-OSPF与ISIS_第5张图片

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

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

SNPA(Subnetwork Point of Attachment)

子网服务点:

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

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

Circuit ID:用来表示ISIS路由器下的某个接口比如01,02

而LAN ID则用来指示某台路由器下的某个接口:1921.6800.0001.01表示方法为:System ID + Circuit ID

 

清isis邻居:clear isis * 或者 clear clns neighbors

R1#show isis neighbors

System Id      Type Interface IP Address      State Holdtime Circuit Id

R2             L1L2 Se1/0     12.1.1.2        UP   27       00

R3             L2   Se1/1    13.1.1.3        UP    22      00

还有一个查看isis邻居的命令:show clns is-neighbors

R1#show clns is-neighbors

System Id      Interface   State Type Priority  Circuit Id         Format

R2             Se1/0       Up    L1L2 0 /0      00                 Phase V

R3             Se1/1       Up    L2   0         00                 Phase V

hostname 和 system id之间的映射表:show isishostname

 

show clns interface

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

进到路由进程下:is-type level-1/level-2/level-1-2

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

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

 

show clns protocol 可以看到sysid is-type,类似于show ipprotocol

 

基于接口修改isis的metric:isis metric * (1-63)也可以指定针对level-1还是level-2的。

 

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

如下图所示:

协议-OSPF与ISIS_第6张图片

1.      R1必须连接多个区域。

2.      R1类型必须是L1-2路由器。

 

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

R1(config-if)#isis circuit-type ?

 level-1       Level-1 onlyadjacencies are formed

 level-1-2     Level-1-2adjacencies are formed

 level-2-only  Level-2 onlyadjacencies are formed

 

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

 

Route Leaking(路由泄露):将level2泄漏部分(通过acl去抓)到level1

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

我们在L1-2路由器上:

redistribute isis ip level-2 into level-1distribute-list 100

access-list 100 permit ip 9.9.9.0 0.0.0.255any

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

    9.0.0.0/24 is subnetted, 1 subnets

i ia   9.9.9.0 [115/153] via 12.1.1.1, Serial1/0

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

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

我们知道RIP封装UDP

EIGRP直接封装IP头部

OSPF 直接封装IP头部

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

Level1封装的组播MAC为:0180.c200.0014

Levle2封装的组播MAC为:0180.c200.0015

 

ISIS总共有四种Hello包:

1.      Hello (ESH、ISH、IIH)

2.      LSP

3.      PSNP (partial sequence numberPDU) 类似于LSR、ACK

4.      CSNP (complete sequence numberPDU) 类似于OSPF 的DBD报文

而每种报文又分为L1和L2

 

ISIS 仅支持Broadcast和P2P

 

在广播模式下:

DIS(Designated IS)创建伪节点和代表局域网。

查看一个网络的DIS: show clns is-neighbors 这样可以显示优先级和Circuit ID

其中Circuit ID看到的就是DIS的主机名

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

 

DIS特点:

1.      L1和L2分别选举DIS

2.      没有备份DIS

3.      DIS配有preempt

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

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

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

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

show isis database

R1#show isis database

IS-IS Level-1 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00            * 0x00000025   0x515C       1186              1/0/0

R1.02-00            * 0x00000004   0xB206       1168              0/0/0

R2.00-00              0x0000001F   0xF817       1132              0/0/0

R2.02-00              0x00000001   0x8AA4       0 (429)           0/0/0

IS-IS Level-2 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00            * 0x00000023   0x2046       451               0/0/0

R3.00-00              0x00000019   0x21CB       451               0/0/0

 

我们要向查看详细的路由信息,则是通过:show isis database verbose来查看:

R1#show isis database verbose

 

IS-IS Level-1 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00            * 0x00000025   0x515C       1101              1/0/0

 Area Address: 49.0001

 NLPID:        0xCC

 Hostname: R1

  IPAddress:   1.1.1.1

 Metric: 10         IP 100.1.1.0255.255.255.0

 Metric: 10         IP 12.1.1.0255.255.255.0

 Metric: 5          IP 13.1.1.0255.255.255.0

  Metric:10         IP 1.1.1.0 255.255.255.0

 Metric: 10         IS R1.02

 Metric: 10         IS R2.00

 Metric: 143        IP-Interarea9.9.9.0 255.255.255.0

R1.02-00            * 0x00000004   0xB206       1083              0/0/0

 Metric: 0          IS R1.00

 Metric: 0          IS R2.00

R2.00-00              0x0000001F   0xF817       1045              0/0/0

 Area Address: 49.0001

 NLPID:        0xCC

 Hostname: R2

  IPAddress:   2.2.2.2

 Metric: 10         IP 100.1.1.0255.255.255.0

 Metric: 10         IP 12.1.1.0255.255.255.0

 Metric: 10         IP 2.2.2.0255.255.255.0

 Metric: 10         IS R1.00

 Metric: 10         IS R1.02

R2.02-00              0x00000001   0x8AA4       0 (341)           0/0/0

IS-IS Level-2 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00            * 0x00000023   0x2046       361               0/0/0

 Area Address: 49.0001

 NLPID:        0xCC

 Hostname: R1

  IPAddress:   1.1.1.1

 Metric: 5          IS R3.00

 Metric: 10         IP 1.1.1.0255.255.255.0

 Metric: 20         IP 2.2.2.0255.255.255.0

 Metric: 10         IP 12.1.1.0255.255.255.0

 Metric: 5          IP 13.1.1.0255.255.255.0

 Metric: 10         IP 100.1.1.0255.255.255.0

R3.00-00              0x0000001A   0x1FCC       1170              0/0/0

 Area Address: 49.0003

 NLPID:        0xCC

 Hostname: R3

  IPAddress:   3.3.3.3

 Metric: 10         IS R1.00

 Metric: 10         IP 3.3.3.0255.255.255.0

 Metric: 10         IP 9.9.9.0255.255.255.0

 Metric: 10         IP 13.1.1.0255.255.255.0

 

CSNP和PSNP的比较

Broadcast:

每10s由DIS向外发CSNP(类似DBD,LSP的摘要信息)。

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

P2P:

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

 

 

OSPF面试题:

1.      OSPF在一端reset ospf1 process后,对端先显示down,然后邻居再起来,请问是为了什么?

答:

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

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

 

2.      LSA-5所包含的路由,如何才能放入路由表。

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

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

3.      为什么ROUTE-ID要全域唯一,不唯一会有什么现象?(重要!!)

答:这个有三种情况:
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+1,age=0的新的LSA-1发出去,里面包含R3的链路和邻居。所以在R2上路由一直会flapping。R1/R3互相没有对方的路由。
C.*R1-----area 0----R2----area 1----R3,R1-R2间是area 0,R2-R3间是area 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唯一。

 

4.      area 1 nssa translate type-7always 有什么用?好处?

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

 

5.      RIP,OSPF,BGP如何实现支持CIDR?

6.      .ISIS发送iner-area路由的时候跟OSPF有什么不同,如何过滤。

7.      .set-overload-bit on-startupwait-for-bgp命令有什么用?

P447
8.RIP,OSPF,ISIS,BGP如何删除路由?
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建邻居默认直接是什么意思?
17:BGP的MULTI-SEESION是什么意思?好处?如何实现?
18:BGP的TCP连接方向如何控制?两端都是active或者passive可以建邻居吗?
19:MPLS superbackbone如何证明?如何理解?
20:使用nssa区域连接mpls 核心有没问题?
21:sham-link可否和virtual-link在同一区域?shan-link什么时候会flapping,如何解决?
22:IGP的SoO和BGP的SoO同样有效吗?怎么用?
23:MPLS VPN里CE跟PE之间跑什么协议?平常哪种用的最多?为什么?
24:当CE-PE间是动态路由协议的时候?把运营商看作什么?

 

 

ISIS有两种me tric的计算,默认是窄的(narrow)计算方式,然后并把其限制到6-bit,因此其大小范围是0-63。此时其path metric值为10-bits,其范围是:0-1023

在ios12.0支持wide metric允许24-bit的接口metric和path metric

然后默认metric为10.

Hello包分为IIH和ESH

其实isis还有一个大的层次:level 0

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

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

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

协议-OSPF与ISIS_第7张图片

NSAP主要分为三个部分:

1.      Area ID:用于标明属于哪个区域。

2.      System ID:用户标明区域内的哪台路由器。

3.      NSEL:用于表明上层服务。

IDP(Initial Domain Part):

AFI(Authority Format ID):1个字节,49为私有Area

IDI(Initial Domain ID):可变长的 [Varible-Length]

47.0001

47.0002

 

DSP(Domain Sepcific Part):

HODSP(High-OrderDSP):这个是自定义的 可边长的 [Varible-Length]

SystemID : 6bytes 只要确保area内唯一即可

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

NSAP-Selector(0x00) 1byte

其中Area Address是可变长的,1-13字节

 

SNAP(Subnetwork Point osAttachment.子网连接点)

用于标明子接口二层介质类型,LAN是MAC,如果是Frame-Relay则是DLCI(Data Link ConncetionIdentifier)

CircuitID:在点到点接口上SNPA被电路ID使用

在LAN中,Ciricuit ID则是与DIS的Sys-ID相连接,共同组成LAN ID

而思科使用hostname代替了6为的Sys-ID

我们可以通过:show isis hostname来查看Sys-ID与hostname之间的绑定的关系。

当我们在isis进程打开:

log-adjacency-changesal

我们可以清理其isis邻居关系:clear isis *或者clear clns neighbors

查看邻居命令:show isis neighbors

R2#showisis nei

 

SystemId      Type Interface IP Address      State Holdtime Circuit Id

R1             L1   Se1/0    12.1.1.1        UP    25      00

R3             L2   Se1/1    23.1.1.3        UP    22      00

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

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

R2#showclns is-neighbors

 

SystemId      Interface   State Type Priority  Circuit Id         Format

R1             Se1/0       Up    L1   0         00                 Phase V

R3             Se1/1       Up    L2   0         00                 Phase V

我们还可以查看isis的接口信息:show clns interface

R2#showclns interface

FastEthernet0/0is administratively down, line protocol is down

  CLNS protocol processing disabled

Serial1/0is up, line protocol is up

  Checksums enabled, MTU 1500, EncapsulationHDLC

  ERPDUs enabled, min. interval 10 msec.

  CLNS fast switching enabled

  CLNS SSE switching disabled

  DEC compatibility mode OFF for this interface

  Next ESH/ISH in 31 seconds

  Routing Protocol: IS-IS

    Circuit Type: level-1-2

    Interface number 0x0, local circuit ID0x100

    Neighbor System-ID: R1

    Level-1 Metric: 10, Priority: 64, CircuitID: R2.00   #包括优先级64 metric的值,包括is-type类型,Circuit Type类型。

    Level-1 IPv6 Metric: 10

    Number of active level-1 adjacencies: 1

    Level-2 Metric: 10, Priority: 64, CircuitID: R2.00

    Level-2 IPv6 Metric: 10

    Number of active level-2 adjacencies: 0

    Next IS-IS Hello in 1 seconds

if state UP

我们可以查看is路由:

R2#showip route

Codes:C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O -OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 -OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPFexternal type 2

       i- IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidatedefault, U - per-user static route

       o - ODR, P - periodic downloaded staticroute

 

Gatewayof last resort is not set

 

     1.0.0.0/24 is subnetted, 1 subnets

i L1   1.1.1.0 [115/20] via 12.1.1.1, Serial1/0

     2.0.0.0/24 is subnetted, 1 subnets

C       2.2.2.0 is directly connected, Loopback0

     3.0.0.0/24 is subnetted, 1 subnets

i L2   3.3.3.0 [115/20] via 23.1.1.3, Serial1/1

     23.0.0.0/24 is subnetted, 1 subnets

C       23.1.1.0 is directly connected,Serial1/1

     12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected,Serial1/0

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

我们把R1设为Level-1路由:R1(config-router)#is-type level-1,然后查看R1路由器上的路由:

R1#showip ro

Codes:C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O -OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 -OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPFexternal type 2

       i - IS-IS, su - IS-IS summary, L1 -IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidatedefault, U - per-user static route

       o - ODR, P - periodic downloaded staticroute

 

Gatewayof last resort is 12.1.1.2 to network 0.0.0.0

 

     1.0.0.0/24 is subnetted, 1 subnets

C       1.1.1.0 is directly connected, Loopback0

     2.0.0.0/24 is subnetted, 1 subnets

iL1    2.2.2.0 [115/20] via 12.1.1.2,Serial1/0

     23.0.0.0/24 is subnetted, 1 subnets

iL1    23.1.1.0 [115/20] via 12.1.1.2,Serial1/0

     12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected,Serial1/0

i*L1 0.0.0.0/0 [115/10] via 12.1.1.2,Serial1/0

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

 

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

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

 

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

1.      R1路由器必须连接两个区域。

2.      并且R2必须是Level1 only类型的路由器。

这点缺一不可。

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

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

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

redistributeisis ip level-2 into level-1 distribute-list 100

access-list100 permit ip 192.1.1.0 0.0.0.255 any

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

泄漏进去路由的metric为148+默认的接口metric值。

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

R1#ship ro

Codes:C - connected, S - static, R - RIP, M - mobile, B - BGP

       D - EIGRP, EX - EIGRP external, O -OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 -OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPFexternal type 2

       i - IS-IS, su - IS-IS summary, L1 -IS-IS level-1, L2 - IS-IS level-2

       ia - IS-IS inter area, * - candidatedefault, U - per-user static route

       o - ODR, P - periodic downloaded staticroute

 

Gatewayof last resort is 12.1.1.2 to network 0.0.0.0

 

     1.0.0.0/24 is subnetted, 1 subnets

C       1.1.1.0 is directly connected, Loopback0

     2.0.0.0/24 is subnetted, 1 subnets

iL1    2.2.2.0 [115/20] via 12.1.1.2,Serial1/0

     3.0.0.0/24 is subnetted, 1 subnets

iia    3.3.3.0 [115/158] via 12.1.1.2,Serial1/0

     23.0.0.0/24 is subnetted, 1 subnets

iL1    23.1.1.0 [115/20] via 12.1.1.2,Serial1/0

     11.0.0.0/24 is subnetted, 1 subnets

i ia   11.11.11.0 [115/158] via 12.1.1.2, Serial1/0

     12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected,Serial1/0

i*L10.0.0.0/0 [115/10] via 12.1.1.2, Serial1/0

 

ISISHello包:包括以下的Hello包的九种类型:

Hello(ESH,ISH,IIH):三种

LSP:两种(Level-1 和 Level-2)

PSNP(Paritcalsequence number PDU):两种

CSNP(Completesequence number PDU):两种

 

我们看一下ISIS-LSP(Link-State Packet)包格式类型:

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

协议-OSPF与ISIS_第8张图片

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

Broadcast:Multiaccess subnetworks that support addressing of a group of attached systems

Point-to-Point:Permanent or dynamically established links

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

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

DIS的选举原则:

1.      Only routers with adjacencies are eligible.

2.      Highest interface priority.

3.      Highest SNPA(MAC) breaks ties.

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

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

 

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

 

R1(config-if)#isispriority 10 ?

  level-1 Specify priority for level-1 routing

  level-2 Specify priority for level-2 routing

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

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

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

 

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

 协议-OSPF与ISIS_第9张图片

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

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

我们去查看isis数据库:

R2#show isis database

 

IS-ISLevel-1 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00              0x00000019   0xBD5D       1138              0/0/0

R2.00-00            * 0x00000015   0x9CBF       1106              1/0/0

IS-ISLevel-2 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R2.00-00            * 0x00000016   0x2CC5       496               0/0/0

3333.3333.3333.00-00  0x0000000B  0x3B4A        723               0/0/0

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

R2#showisis database verbose

 

IS-ISLevel-1 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R1.00-00              0x00000019   0xBD5D       1027              0/0/0

  Area Address: 49.0001

  NLPID:       0xCC

  Hostname: R1

  IP Address:  1.1.1.1

  Metric: 10         IP 12.1.1.0 255.255.255.0

  Metric: 10         IP 1.1.1.0 255.255.255.0

  Metric: 10         IS R2.00

R2.00-00            * 0x00000015   0x9CBF       995               1/0/0

  Area Address: 49.0001

  NLPID:       0xCC

  Hostname: R2

  IP Address:  2.2.2.2

  Metric: 10         IP 12.1.1.0 255.255.255.0

  Metric: 10         IP 23.1.1.0 255.255.255.0

  Metric: 10         IP 2.2.2.0 255.255.255.0

  Metric: 10         IS R1.00

IS-ISLevel-2 Link State Database:

LSPID                 LSP Seq Num  LSP Checksum LSP Holdtime      ATT/P/OL

R2.00-00            * 0x00000017   0x2AC6       1180              0/0/0

  Area Address: 49.0001

  NLPID:       0xCC

  Hostname: R2

  IP Address:  2.2.2.2

  Metric: 10         IS 3333.3333.3333.00

  Metric: 20         IP 1.1.1.0 255.255.255.0

  Metric: 10         IP 2.2.2.0 255.255.255.0

  Metric: 10         IP 12.1.1.0 255.255.255.0

  Metric: 10         IP 23.1.1.0 255.255.255.0

3333.3333.3333.00-00  0x0000000B  0x3B4A        610               0/0/0

  Area Address: 49.0002

  NLPID:       0xCC

  Hostname: R3

  IP Address:  3.3.3.3

  Metric: 10         IS R2.00

  Metric: 10         IP 3.3.3.0 255.255.255.0

  Metric: 10         IP 11.11.11.0 255.255.255.0

  Metric: 10         IP 23.1.1.0 255.255.255.0

 

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

PSNP                    CSNP

Broadcast                Request/ACK              由DIS每10s类似于DBD

Point-to-Point            ACK                      邻接建立只发一次

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

 

你可能感兴趣的:(网络)