*简介

路由协议可以分为静态路由协议和动态路由协议,动态路由协议有两类。一类是用于内部网路互联互通的IGP协议,其中代表的有RIP、EIGRP、OSPF、ISIS等,另一类是用于区域与区域之间互通的外部网关协议,目前只有BGP。

本章主要总结内部网关协议中的RIP、EIGRP和ISIS。其中RIP和EIGRP是距离矢量协议,而ISIS和OSPF同属于链路状态协议。

  • 距离矢量协议:传递路由条目,网络能见度只有一跳 ——基于Bellman算法
  • 链路状态协议:传递链路信息,网络能见度是整个拓扑结构——基于SPF(Short Path First),最短路径算法

RIP

  1. RIP使用跳数来描述一条路由的好坏,每经过一台路由器,跳数加一,当跳数为16跳的时候,这条路由就会作废。
  2. RIP消息封装的时候,使用UDP,端口号是520,并且源端口和目的端口都是520
  3. RIP迄今为止有三个版本,分别为:RIP1,RIP2,RIPng,目前IPv4使用的是Version2 IPV6使用的是Version RIPing。
  4. RIP在Cisco设备的管理距离为120
RIPv1 RIPv2
使用广播更新路由表 使用组播更新路由表
有类路由协议 无类路由协议
不支持VLSM 支持VLSM
不支持手工汇总 支持手工汇总
不支持路由表及Tag 支持路由标记
更新消息中的路由条目没有Next-hop信息 有Next-hop信息

有类路由协议更新不携带子网掩码,所以RIP宣告不能加mask,如果宣告1.1.1.0/24,最后宣告的还是1.0.0.0/8。

RIPv2使用的组播地址为 224.0.0.9

RIP的消息通知机制:

RIP默认30s会从所有参与RIP的接口发出路由表信息,当180s没有收到某条路由的时候,就会判断那 条路由可能失效了,但是依旧会放在路由表里面,只是不会再给别人了,当240s都没有收到这条路由的时候,就会彻底删除。

RIP配置

http://q5q3e2ctx.bkt.clouddn.com/RIP简单配置.webp

宣告RIP路由:

1
2
3
4
5
6
7
8
9
10
router rip                  #启动RIP协议
network 1.0.0.0 #将1.0.0.0加入到更新路由表中,将1.0.0.0所在接口也加入更新接口中
network 192.168.12.0

#当宣告完之后,R1就可以Ping通R4了

#修改RIP时间
router rip
timers basic 30 180 180 240 #分别是Updates、Invalid、Holddown、Flush

RIP机制

查看R1的路由表,可以发现去往R2~R4逐跳递增:

1
2
3
4
R     2.0.0.0/8 [120/1] via 192.168.12.2, 00:00:27, Ethernet0/0
R 3.0.0.0/8 [120/2] via 192.168.12.2, 00:00:27, Ethernet0/0
R 4.0.0.0/8 [120/3] via 192.168.12.2, 00:00:06, Ethernet0/0
#并且这里的时间也是正向计时,一到30s就重置。如果是失效的路由条目,则会经历180s和240s

查看RIP协议相关:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
R1#sh ip protocols
--------------------------------------------------------------
Routing Protocol is "rip"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
# 每隔30s发送一次更新消息,下一次预计在14s之后。
Sending updates every 30 seconds, next due in 14 seconds
# 180s判断为down,240删除无效
Invalid after 180 seconds, hold down 180, flushed after 240
Redistributing: rip
# 默认版本
Default version control: send version 2, receive version 2
# 配置接口
Interface Send Recv Triggered RIP Key-chain
Ethernet0/0 2 2
Loopback0 2 2
Interface Send Recv Triggered RIP Key-chain
# 自动网络汇总生效,会将所有子网划分的地址汇总为主类,主类就是子网掩码按照ABC类来
Automatic network summarization is in effect
# 最大负载均衡为4
Maximum path: 4
# 已经宣告的路由,这里也可以看出我们宣告的1.1.1.0变成了1.0.0.0,不加子网掩码
Routing for Networks:
1.0.0.0
192.168.12.0
# 路由信息来源 上一次更新时间是累加的,到30s刷新,和上面的预计14s形成呼应
Routing Information Sources:
Gateway Distance Last Update #16s之前更新过
192.168.12.2 120 00:00:16
#默认管理距离为120
Distance: (default is 120)

关于RIP的30s、180s、240s,这里shutdown了R4的e0/0接口,在R3上观察现象,之后R3删除后,才会反应到R1上:

1
2
3
4
5
6
7
8
9
10
#R3 -- 180的down
R 1.0.0.0/8 [120/2] via 192.168.23.2, 00:00:21, Ethernet0/0
R 2.0.0.0/8 [120/1] via 192.168.23.2, 00:00:21, Ethernet0/0
R 4.0.0.0/8 [120/1] via 192.168.34.4, 00:01:32, Ethernet0/1
R 192.168.12.0/24 [120/1] via 192.168.23.2, 00:00:21, Ethernet0/0
#R3 -- 240s后,R1、R2、R3的4.4.4.0都被删除了
R 1.0.0.0/8 [120/2] via 192.168.23.2, 00:00:16, Ethernet0/0
R 2.0.0.0/8 [120/1] via 192.168.23.2, 00:00:16, Ethernet0/0
R 4.0.0.0/8 is possibly down, routing via 192.168.34.4, Ethernet0/1
R 192.168.12.0/24 [120/1] via 192.168.23.2, 00:00:16, Ethernet0/0

RIP汇总

RIP的自动汇总功能总是打开的,我们可以手动关闭:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
R1(config-router)#no auto-summary
int lo1
ip add 172.16.1.1 255.255.255.0
int lo2
ip add 172.16.2.1 255.255.255.0
int lo3
ip add 172.16.3.1 255.255.255.0
router rip
net 172.16.1.0
net 172.16.2.0
net 172.16.3.0

#当完成这一切,在R2的路由表上可以看到
R 172.16.1.0 [120/1] via 192.168.12.1, 00:00:02, Ethernet0/0
R 172.16.2.0 [120/1] via 192.168.12.1, 00:00:02, Ethernet0/0
R 172.16.3.0 [120/1] via 192.168.12.1, 00:00:02, Ethernet0/0

#现在在R1的出接口对路由进行汇总
R1(config)#int e0/0
R1(config-if)#ip summary-address rip 172.16.0.0 255.255.0.0

#之后再看R2的路由表,就会发现RIP好慢,明细路由还是要经历180-240的过程C:
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
R 172.16.0.0/16 [120/1] via 192.168.12.1, 00:00:22, Ethernet0/0
R 172.16.1.0/24 [120/1] via 192.168.12.1, 00:00:52, Ethernet0/0
R 172.16.2.0/24 [120/1] via 192.168.12.1, 00:00:52, Ethernet0/0
R 172.16.3.0/24 [120/1] via 192.168.12.1, 00:00:52, Ethernet0/0

不得不介绍一下清理路由表的办法了,RIP实在是太慢了: clear ip route *

RIP认证

1
2
3
4
5
6
7
8
9
R1(config)#key chain Cisco                              //设置钥匙的名字               
R1(config-keychain)#key 1 //第一把钥匙
R1(config-keychain-key)#key-string Cisco1 //第一把钥匙的内容
R1(config-keychain-key)#key 2
R1(config-keychain-key)#key-string Cisco2

R1(config-keychain-key)#int e0/0 //在接口上配置加密
R1(config-if)#ip rip authentication key-chain Cisco //用钥匙Cisco给RIP的加密
R1(config-if)#ip rip authentication mode md5 //加密格式为md5,也可以明文加密

当在R1上配置完认证之后,就会发现R2在R1上学到的条目进入了 180-240 的过程。此时R2已经不能学习到R1的路由条目了,除非在R2上也配置认证。

Key-chain的其他配置

1
2
3
4
5
6
7
8
9
R2(config-keychain-key)#?
Key-chain key configuration commands:
accept-lifetime Set accept lifetime of key
cryptographic-algorithm Set cryptographic authentication algorithm
default Set a command to its defaults
exit Exit from key-chain key configuration mode
key-string Set key string
no Negate a command or set its defaults
send-lifetime Set send lifetime of key

RIP防环

  1. 定义最大跳数,一个路由最远可以到15跳的地方,如果是16跳,就会认为不可达
  2. 水平分割,如果从接口上收到某条路由的更新,那么就不会将该路由再发回去
  3. 毒性逆转,和水平分隔矛盾,只能二选一,如果从接口上收到某路由的更新,那么就立即从收到的接口将该路由发回去,但是跳数是16,这样就不会从这个方向去学习路由了。
  4. 毒性路由,如果某个接口down了,就会立即更新该接口的网段,但是跳数是16,这样邻居收到后就立即删除
  5. 抑制计时器,180s没有收到路由更新就会判断可能失效,240s没有收到就会直接删除
  6. 触发更新,如果路由发生了变化,立即进行更新而不用等待30s

毒性路由实验:shutdownR4的lo0接口,然后在R3上观察现象

1
2
3
4
5
6
7
8
9
10
11
#R3
R 1.0.0.0/8 [120/2] via 192.168.23.2, 00:00:01, Ethernet0/0
R 2.0.0.0/8 [120/1] via 192.168.23.2, 00:00:01, Ethernet0/0
R 4.0.0.0/8 [120/1] via 192.168.34.4, 00:00:18, Ethernet0/1

R4(config-if)#shutdown

R 1.0.0.0/8 [120/2] via 192.168.23.2, 00:00:02, Ethernet0/0
R 2.0.0.0/8 [120/1] via 192.168.23.2, 00:00:02, Ethernet0/0

#竟然只用了几秒钟中就反应过来了。

RIP命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
router rip                                                  #启动RIP协议
version 2
network 1.1.1.0 #将1.0.0.0加入到更新路由表中,将1.0.0.0所在接口也加入更新接口中
timers basic 30 180 180 240 #分别是Updates、Invalid、Holddown、Flush
no auto-summary #关闭自动汇总

#手动汇总
(config-if)# ip summary-address rip 172.16.0.0 255.255.0.0


认证配置:
key chain NAME #设置钥匙的名字
key 1 #第一把钥匙
key-string STRING #第一把钥匙的内容

int e0/0 #在接口上配置
ip rip authentication key-chain NAME #用钥匙给RIP的加密
ip rip authentication mode md5 #加密格式为md5,也可以明文加密

EIGRP

增强型内部网关路由选择协议(Enhanced Interior Gateway Routing protocol,EIGRP)

EIGRP协议的特点:

  • EIGRP有自治系统,一个EIGRP网络,必须所有的路由器都属于同一个自治系统才可以传递路由。

  • EIGRP使用DUAL扩散更新算法来保障无环路最优路径计算

  • 是无类路由协议,每个路由条目都包含子网掩码

  • 传输模块RTP(Reliable Transport Protocol),使用组播224.0.0.10

  • EIGRP的非周期、有边界、和部分;非周期:只在度量和网络拓扑变化时才更新,部分:只发送变化的路由条目,有边界:更新仅发给受影响的路由

  • 更新消息直接存放于IP包头之后,所有没有传输层。在IP包头协议字段中用88表示。

  • 管理距离在Cisco设备上有三种,分别是5,90,170

  • EIGRP的更新是可靠传输的,任何一个给邻居的路由信息都必须得到邻居的确认。

  • EIGRP的度量值(Metric)计算会包含:带宽(Bandwidth)、延迟(delay)、可靠性(reliability)、负载(loading)、最大传输单元(MTU)

EIGRP的数据报:

  • Hello,用于邻居的发现和恢复,Hello数据报使用组播方式发送,而且使用不可靠的发送方式
  • ACK,是不包含数据的Hello数据报,ACK总是用单播方、不可靠的发送方式
  • Update,传递路由更新信息,仅传递给有需要的路由,单台路由单播发送,多台路由组播发送
  • Query & Reply,查询和答复,是DUAL用来管理它的扩散计算的

EIGRP三张表

1、邻居表

​ EIGRP路由器在启动之后,就会每隔5秒钟,发送一个hello消息,且从任何接口的222.0.0.10组播地址收到hello,就会立即将对方加入到自己的邻居表

​ 邻居表中的邻居都会有一个死亡事假你,是3倍hello消息间隔,每次收到邻居的hello都会重置死亡计时器,死亡计时器一旦到零,就会直接删除和这个邻居有关的一切路由信息。

查看EIGRP的邻居表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
R1#show ip eigrp neighbors 
EIGRP-IPv4 Neighbors for AS(100)
平均往返时间
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 192.168.15.5 Et0/1 11 00:01:03 1280 5000 0 8
0 192.168.12.2 Et0/0 10 00:02:24 9 100 0 15


Hold Uptime:
SRTT:平均往返时间
RTO:重传计时,基于SRTT
QCnt:重传队列
SeqNum:

度量值Metric计算

2、拓扑表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
R1#sh ip eigrp topology 
EIGRP-IPv4 Topology Table for AS(100)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
r - reply Status, s - sia Status

P 192.168.23.0/24, 1 successors, FD is 307200
via 192.168.12.2 (307200/281600), Ethernet0/0
P 192.168.34.0/24, 2 successors, FD is 332800
via 192.168.12.2 (332800/307200), Ethernet0/0
via 192.168.15.5 (332800/307200), Ethernet0/1
P 192.168.12.0/24, 1 successors, FD is 281600
via Connected, Ethernet0/0
P 5.5.5.0/24, 1 successors, FD is 409600
via 192.168.15.5 (409600/128256), Ethernet0/1
P 192.168.45.0/24, 1 successors, FD is 307200
via 192.168.15.5 (307200/281600), Ethernet0/1
P 2.2.2.0/24, 1 successors, FD is 409600
via 192.168.12.2 (409600/128256), Ethernet0/0
P 3.3.3.0/24, 1 successors, FD is 435200
via 192.168.12.2 (435200/409600), Ethernet0/0
P 192.168.15.0/24, 1 successors, FD is 281600
via Connected, Ethernet0/1
P 1.1.1.0/24, 1 successors, FD is 128256
via Connected, Loopback0
P 4.4.4.0/24, 1 successors, FD is 435200
via 192.168.15.5 (435200/409600), Ethernet0/1

#拓扑表中记录了每个目的地的相关信息,比如后继路由器、可行 后继路由器、可行距离、通告距离。
#FD:可行距离(Feasible Distance),到达目的地的最小度量值就是可行距离,类似Metric
#FC:可行性条件(Feasibility Condition),邻居比自己的FD小
#FS:可行性后继路由器(Feasible Successor),满足FC后,这个邻居就会变成该网络的可行后继路由器
#通告距离:就是去往这个目的地的下一跳到目的地的度量值,相当于邻居表到这个目的地的度量值

当拓扑表中最佳后继路由器失效了,会导致EIGRP向所有的邻居发起查询,并且会将邻居标记为(q)

如果3分钟内,邻居都没有任何形式的回复,那么就会主动断开和这个邻居的关系

3、EIGRP路由表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
R1#show ip route eigrp 
2.0.0.0/24 is subnetted, 1 subnets
D 2.2.2.0 [90/409600] via 192.168.12.2, 00:10:49, Ethernet0/0
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/435200] via 192.168.12.2, 00:08:41, Ethernet0/0
4.0.0.0/24 is subnetted, 1 subnets
D 4.4.4.0 [90/435200] via 192.168.15.5, 00:08:41, Ethernet0/1
5.0.0.0/24 is subnetted, 1 subnets
D 5.5.5.0 [90/409600] via 192.168.15.5, 00:09:29, Ethernet0/1
D 192.168.23.0/24 [90/307200] via 192.168.12.2, 00:10:29, Ethernet0/0
D 192.168.34.0/24 [90/332800] via 192.168.15.5, 00:08:43, Ethernet0/1
[90/332800] via 192.168.12.2, 00:08:43, Ethernet0/0
D 192.168.45.0/24 [90/307200] via 192.168.15.5, 00:09:29, Ethernet0/1
[AD/FD]
#eigrp的管理距离
内部路由:90
外部路由:170
汇总路由:5

metric maximum hops 102 修改最大跳数

路由汇总 – 在路由出口手动汇总

EIGRP的自动汇总默认是关闭着的,无论是手动汇总还是自动汇总都会影响本地路由表,这个条目管理距离为5,并且吓一跳距离为NULL0,NULL0和loopback一样,都是软件模拟出来的接口,不过Loopback在通信过程中会正常响应,而NULL0会将数据直接丢弃不会回复,等于NULL0就是黑洞。

汇总的时候产生的NULL0是为了尽快结束路由查找,因为汇总丢失了明细,所以当出现路由访问的时候,明细路由应该优先形成匹配,如果明细路由没有被匹配上,说明地址不存在,可以直接丢弃。

1
2
ip summary-address eigrp 100 172.16.0.0 255.255.0.0
no auto-summary

EIGRP的配置

http://q5q3e2ctx.bkt.clouddn.com/EIGRP简单配置.webp

1
2
3
4
5
6
7
8
9
R1(config-if)#router eigrp 100						
R1(config-router)#network 192.168.12.0 0.0.0.255
R1(config-router)#network 1.1.1.0 0.0.0.255

EIGRP是无类路由,宣告加上通配符掩码可以保留子网掩码
R1(config-router)#do sh run | sec eigrp
router eigrp 100
network 1.1.1.0 0.0.0.255
network 192.168.12.0
1
2
bandwidth 9000 #设置带宽
delay 999 #设置延迟

EIGRP的认证

key-chain配置和RIP一样,剩下的是套在接口上,这里我们配置R3-R4的EIGRP认证

1
2
3
R3(config-keychain)#int e0/1
R3(config-if)#ip authentication key-chain eigrp 100 Cisco
R3(config-if)#ip authentication mode eigrp 100 md5

把R5任意接口down掉,此时发现,R3ping R4的e0/0接口还是能ping通,我一度以为是认证对EIGRP无效,搞了半天,才发现他们是直连,C。接着R1pingR4就ping不通了。

EIGRP的汇总

1
2
3
4
5
6
7
8
9
10
11
12
13
int lo1
ip add 172.16.1.1 255.255.255.0
int lo2
ip add 172.16.2.1 255.255.255.0
int lo3
ip add 172.16.3.1 255.255.255.0
router eigrp 100
network 172.16.1.0 0.0.0.255
network 172.16.2.0 0.0.0.255
network 172.16.3.0 0.0.0.255
int e0/0
ip summary-address eigrp 100 172.16.0.0 255.255.0.0

1
2
#EIGRP默认开启自动汇总
R5#show ip route eigrp

汇总前:

  172.16.0.0/24 is subnetted, 3 subnets
      D        172.16.1.0 [90/409600] via 192.168.15.1, 00:01:13, Ethernet0/0
    D        172.16.2.0 [90/409600] via 192.168.15.1, 00:01:13, Ethernet0/0
    D        172.16.3.0 [90/409600] via 192.168.15.1, 00:01:13, Ethernet0/0

汇总后:

1
2
3
4
5
6
R2#show ip route eigrp
172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks
D 172.16.0.0/16 [90/409600] via 192.168.12.1, 00:00:35, Ethernet0/0
D 172.16.1.0/24 [90/486400] via 192.168.23.3, 00:00:35, Ethernet0/1
D 172.16.2.0/24 [90/486400] via 192.168.23.3, 00:00:35, Ethernet0/1
D 172.16.3.0/24 [90/486400] via 192.168.23.3, 00:00:35, Ethernet0/1

会发现,即使是汇总,和R1相邻的路由器上也可以收到明细路由,但是R3等不和R1相邻的路由器上,就只能收到汇总后的路由。

1
D     172.16.0.0/16 [90/435200] via 192.168.23.2, 00:00:02, Ethernet0/0

EIGRP–FD值

修改EIGRP的AD值和FD值,可以通过掉接口的带宽和延迟做到。

现在可以看到R1去往34网段负载均衡,我们现在想让R1只从R2走,所以这里调高R1的e0/1接口的带宽和延迟,接口的带宽和延迟可以用show interfaces e0/1查看。

1
2
3
4
5
6
7
8
9
#R1路由表
D 192.168.34.0/24 [90/332800] via 192.168.15.5, 00:00:17, Ethernet0/1
[90/332800] via 192.168.12.2, 00:00:17, Ethernet0/0

#R1拓扑表
P 192.168.34.0/24, 2 successors, FD is 332800
via 192.168.12.2 (332800/307200), Ethernet0/0
via 192.168.15.5 (332800/307200), Ethernet0/1

调整带宽,如果是在接口下修改,可能会影响多条路径,建议使用偏移列表offset-set。

offset只能增加从某个接口进入或者出去的路由

1
2
3
4
5
6
7
8
9
10
11
R1(config-if)#bandwidth 5000

再看拓扑表:
#R1
P 192.168.34.0/24, 1 successors, FD is 332800
via 192.168.12.2 (332800/307200), Ethernet0/0
via 192.168.15.5 (588800/307200), Ethernet0/1
#R1的路由表中,也只会选择从R2走了

调整时延类似:
R1(config-if)#delay 10000

时延和带宽可以影响FD,影响EIGRP度量值的五个要素:带宽(Bandwidth)、延迟(delay)、可靠性(reliability)、负载(loading)、最大传输单元(MTU)。

1
FD=metric = 256 * { 10^7/bw + delaysum / 10 }

ISIS

ISIS采用了 面向无连接的CLNS协议,但需要保留IP地址做ISIS的Router-ID。其中CLNP地址的写法为:

49.0001.0000.0000.0001.00

49:是标志地址的作用,这里是私有地址的意思

0001:区域号

0000.0000.0001:设备ID

00:端口号 —NSEL

简介

ISIS最早不是给TCP/IP设计的,是给CLNS无连接网络设计的,但是CLNS被淘汰了。ISIS的开发者给ISIS协议加上了TCP/IP的支持模块,将其变为集成的ISIS,但是依旧不如OSPF流行,所以渐渐被人遗忘。

近年来云计算数据中心崛起,数据中心网络日益复杂,而OSPF的区域划分很不自由,并且OSPF是基于IP来进行信息传递的,而数据中心并不是完全的TCP/IP的网络环境,所以OSPF使用受到很大的限制。FC网络不允许浪费传输效率

  • ISIS在Cisco设备中的管理距离为115

ISIS配置

http://q5q3e2ctx.bkt.clouddn.com/image-20200215102028992.webp

1
2
3
4
5
router isis							#启动协议
net 49.0001.0000.0000.0001.00 #宣告CLNP地址
int e0/0,lo0 #在接口下配置ISIS
ip router isis

ISIS邻居

1
2
3
4
5
6
7
8
R3#show isis neighbors 

System Id Type Interface IP Address State Holdtime Circuit Id
R1 L1 Et0/0 192.168.123.1 UP 22 R3.01
R1 L2 Et0/0 192.168.123.1 UP 27 R3.01
R2 L1 Et0/0 192.168.123.2 UP 22 R3.01
R2 L2 Et0/0 192.168.123.2 UP 26 R3.01
R4 L2 Et0/1 192.168.34.4 UP 9 R4.01

ISIS的Hello包正常情况下,10s一次,30s没收到就判定死亡。ISIS有指定路由器的概念,但是ISIS的世界中,路由器不叫路由器,而叫中间系统,所以DR就变成了DIS

DIS的Hello包是3.3s一次,10s没收到就判定DIS死亡,剩下的路由器会重新选举一台路由器作为DIS。

DIS没有备份的概念,谁都可以随时抢占。DIS会优先判定优先级,优先级为0的设备,依旧可以做DIS。

DIS在优先级一样的情况下,会通过比较MAC地址数值大小,越打越优。

ISIS角色

  1. Level-1 Router:

    区域内部路由器,用来在区域内部学习和交换LSP(相当于OSPF的LSA)

    L1路由器只能和L1或者L12路由器建立邻居

    L1路由器可以知道整个区域的拓扑,但是其他区域连路由都学不到,通过默认路由离开这个区域

  2. Level-2 Router

    区域间路由器,用来在区域间传递LSP信息

    L2路由器只能和L2或者L12路由器建立邻居

    L2路由器知道整个AS的区域情况,可以学习到每个区域的路由条目

  3. Level-1-2 Router

    用来将L1和L2路由器相连,一般是区域边界路由器(相当于OSPF的ABR)

    L12路由器可以和L1和L2建立邻居

    L12路由器拥有L1和L2所有的能力

    默认情况下,路由器启动ISIS后,就是L12路由器

    L12路由器会给L1路由器下发一个默认路由

L1邻居关系

  • 同一个区域才可以建立L1邻居关系

L2邻居关系

  • 不管是不是一个区域,都可以建立L2邻居关系

由于ISIS路由器默认是L12路由器,相当于同时开启L1和L2,所以会建立两个邻居关系。

1
2
3
4
5
#修改ISIS当前路由器的角色
is-type level-1

#或者在接口上修改邻居类型
isis circuit-type level-1

在ISIS数据库中,1200s倒计时,每900s一次泛洪。

1
2
3
4
5
6
7
8
9
10
R1#sh isis database level-1
IS-IS Level-1 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
R1.00-00 * 0x00000008 0x1564 785 1/0/0
R2.00-00 0x00000009 0xC590 1062 1/0/0
R3.00-00 0x00000008 0x50F3 1105 1/0/0
R3.01-00 0x00000003 0x734B 740 0/0/0
R4.00-00 0x00000006 0x83FE 75 1/0/0
R4.01-00 0x00000002 0xBA8F 123 0/0/0
R4.02-00 0x00000002 0x9AAF 64 0/0/0

ATT:如果这个被写为1,说明必须产生一条默认路由指向这个路由器

P:如果L2或者L12路由器链断开,可以使用带P置为的LSP数据进行打通

OL:overload,以前的路由器性能不佳,会超载。但是现在OL被利用来作为故障修复,设备升级的时候的故障路标。

我们会发现R3收到了两个LSP,那个R3.00-00是本体,R3.01-00是PSN(伪节点)发来的。

show isis database detail

ISIS汇总

路由器汇总只能做在区域边界的L1/L2或者L2路由器上,并且只能汇总自己这个区域的。

R5:添加环回口lo1~lo3,并且添加到isis进行路由汇总

1
2
3
4
5
6
7
Loopback1                  172.16.1.1      YES manual up                    up
Loopback2 172.16.2.1 YES manual up up
Loopback3 172.16.3.1 YES manual up up
R5(config-router)#int range lo1 -3
R5(config-if-range)#ip router isis
R5(config-if-range)#router isis
R5(config-router)# summary-address 172.16.0.0 255.255.0.0

ISIS其他

ISIS度量值本来是衡量4个数值,但是目前来说,一个也不支持,所以当前的集成ISIS度量值可以理解为跳数,没经过一个入口,路由metric + 10;

ISIS默认路由注入default-information originate,这个命令只有在L1/L2或者L2路由器上有效。ISIS的L1/2路由器默认会给L1路由器下发默认路由,通过数据库ATT位置来通知的。可以在L2或者L1/2路由器上配置默认路由器来影响其他L1/2或者L2路由器。默认路由需要在ISIS下宣告。

ISIS命令

http://q5q3e2ctx.bkt.clouddn.com/image-20200215102028992.webp

  1. R1pingR5
  2. 在R5上创建lo1-3:172.16.x.1/24,并且通告金isis,level-2,要求R4学到的是汇总的条目
  3. 在R5上下发默认路由,让所有的路由器都可以学习到,并且可以ping同R5没有被宣告的100.1.1.1/24 lo100的地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#R1
router isis
net 49.0001.0000.0000.0001.00
interface Loopback0
ip address 1.1.1.1 255.255.255.0
ip router isis
interface Ethernet0/0
ip address 192.168.123.1 255.255.255.0
no shutdown
ip router isis

#R2
router isis
net 49.0001.0000.0000.0002.00
interface Loopback0
ip address 2.2.2.2 255.255.255.0
ip router isis
interface Ethernet0/0
ip address 192.168.123.2 255.255.255.0
no shutdown
ip router isis
interface Ethernet0/1
ip address 192.168.24.2 255.255.255.0
no shutdown
ip router isis

#R3
router isis
net 49.0001.0000.0000.0003.00
interface Loopback0
ip address 3.3.3.3 255.255.255.0
ip router isis
interface Ethernet0/0
ip address 192.168.123.3 255.255.255.0
no shutdown
ip router isis
interface Ethernet0/1
ip address 192.168.34.3 255.255.255.0
no shutdown
ip router isis

#R4
router isis
net 49.00020000.0000.0004.00
interface Loopback0
ip address 4.4.4.4 255.255.255.0
ip router isis
interface Ethernet0/0
ip address 192.168.34.4 255.255.255.0
no shutdown
ip router isis
interface Ethernet0/1
ip address 192.168.24.4 255.255.255.0
no shutdown
ip router isis
interface Ethernet0/2
ip address 192.168.45.4 255.255.255.0
no shutdown
ip router isis

#R5
router isis
net 49.0003.0000.0000.0005.00
interface Loopback0
ip address 5.5.5.5 255.255.255.0
no shutdown
ip router isis
interface Ethernet0/0
ip address 192.168.45.5 255.255.255.0
no shutdown
ip router isis

#配置完这些R1就可以Ping通R5了


----------------------
#R5 --- 汇总
int lo10
ip add 172.16.1.1 255.255.255.0
ip router isis
int lo20
ip add 172.16.2.1 255.255.255.0
ip router isis
int lo30
ip add 172.16.3.1 255.255.255.0
ip router isis

router isis
summary-address 172.16.0.0 255.255.0.0
#配置完这些,R4上就可以看到:
i L2 172.16.0.0/16 [115/20] via 192.168.45.5, 00:00:04, Ethernet0/2


----------------------
#R5 --- 默认路由
interface Loopback2
ip address 100.1.1.5 255.255.255.255
router isis
default-information originate


show isis database level-1 #查看链路状态数据库
show isis neighbors #查看ISIS邻居