HCNP Routing&Switching之IS-IS路由聚合和认证
前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html;今天我们来聊一聊IS-IS路由聚合和认证相关话题;
IS-IS路由聚合(汇总)
路由聚合又称路由汇总,从字面理解就是把多个明细路由聚合(汇总)为一条路由;我们知道在ospf里路由汇总是优化LSDB、路由表的一种手段;在ospf中路由的汇聚只能在abr或asbr上进行汇总;而对于IS-IS来讲,汇总路由是只可以在本地生成LSP的路由器上做,主要作用是优化路由表;
实验:如下拓扑,配置IS-IS
R1的配置
sys sys R1 int g0/0/0 ip add 12.0.0.1 24 isis 1 net 1212.0000.0000.0001.00 is-le level-1 int g0/0/0 isis en 1
R2的配置
sys sys R2 int g0/0/0 ip add 12.0.0.2 24 int lo 1 ip add 172.16.0.2 24 int lo 2 ip add 172.16.1.2 24 int lo 3 ip add 172.16.2.2 24 int lo 4 ip add 172.16.3.2 24 isis 1 net 1212.0000.0000.0002.00 is-le level-1 int g0/0/0 isis en 1 int lo 1 isis en 1 int lo 2 isis en 1 int lo 3 isis en 1 int lo 4 isis en 1
验证:在R1上查看对应路由表,看看R1是否能够学习到达R2lo接口的路由
提示:可以看到R1能够通过isis正常学习到R2lo接口路由;
在R2上将L1的路由汇总
验证:在R1上查看isis路由,看看是否能够学习到一条汇总的路由?
提示:可以看到在R1上对应原来的明细路由没有了,学习到对应汇总路由;
IS-IS汇总路由环路的产生
默认情况下,汇总后的路由是包含对应明细路由,所以对应路由器学习到汇总路由,和某明细路由通信是完全没有问题;但是,汇总路由中某一条明细路由挂掉后,汇总路由还是存在的,它不会自动删除,只有当对应汇总路由包含的明细路由都宕掉以后,对应汇总路由才会被删除;这样一来对于学习到汇总路由的一方来说,它要去访问对方的某明细路由,在正常情况下如果对应明细路由挂掉,对应通信会丢包,即环路不会产生;但是如果汇总路由的路由器有一条缺省路由指向学习汇总路由的路由器,此时就会产生环路;
验证:删除R2的lo1接口,在R1上查看对应路由表,看看汇总路由是否会被删除?
在R1上查看isis 路由表看看对应汇总路由是否被删除?
提示:可以看到但R2的lo1接口挂掉以后,对应R1上的汇总路由不会受到影响;
验证:现在在R1上pingR2的lo1接口地址,看看是否能够ping通?是否有环路?
提示:可以看到现在R1是ping不通R2的lo1接口,对应也没有环路;
验证:在R2上新建一条缺省路由,下一跳指向R1,再次在R1上ping或tracert R2的lo接口地址,看看有什么变化?
再次在R1上ping R2 的lo1接口地址,看看有什么变化?
提示:可以看到现在R1pingR2的lo1接口地址是ping不通的,但是R1pingR2的lo1接口地址是产生了环路;
NULL0口路由
null0口是路由器上的一个特殊逻辑接口,该接口不转发任何数据,类似liunx里的/dev/null设备,俗称黑洞接口;任何数据发送给null0接口都会被丢弃;为了防止IS-IS路由汇聚以后产生环路,在IS-IS汇聚路由时我们可以指定是否生成一条NULL0接口路由;其实不光是IS-IS路由汇聚存在这种问题,ospf、RIP、bgp都存在这种情况;所以我们在汇聚路由时应该考虑可能产生环路的情况;
IS-IS路由汇聚生成NULL0口路由
提示:IS-IS生成null0接口路由,只需在汇聚路由配置后面加上generate_null0_route这个参数,对应IS-IS汇聚路由时,会自动在路由表产生一条汇聚后的路由其出接口指向null0接口的路由;
验证:在R2上查看路由表,看看对应null0路由是否生成?
提示:可以看到此时R2的路由表中自动生成了一条汇聚后的路由,其出接口指向了NULL0接口;
验证:现在在R1上tracert R2的lo1接口地址,看看是否还会有环路呢?
提示:现在可以看到R1tracert R2 的lo1接口地址,对应环路就没有了;其主要原因R2有一条去往172.16.0.0/22的路由,其出接口指向了NULL0接口,破环路原R2在lo1接口挂掉以后,对应明细路由消失以后走默认路由的规则;
IS-IS路由汇聚后开销取值
IS-IS路由聚合,对应开销取所有被聚合路由中最小值;
验证:修改R2的lo2、3、4接口开销为5、10、15,看看对应汇总路由的开销是多少?
在R1上查看对应汇总路由的开销
提示:可以看到对应汇总路由的开销是15,我们知道IS-IS接口默认开销是10,而R1学习到的汇总开销为15,根据上述拓扑我们可以知道,在R2上发送的汇总路由开销为5(15-10,10是R1接收口的接口开销);从上述实验可以看到对应汇总路由的开销是取被汇总的明细路由中开销最小的路由开销;
IS-IS认证
IS-IS认证有三种认证方式,分别是接口认证、区域认证和路由域认证;认证的模式也有三种,分别是明文认证、md5认证和密钥链认证;
接口认证配置
提示:配置认证会导致邻居关系down掉;配置接口认证我们只需要在对应接口下选择对应的认证模式即可;这个和ospf一样,两边认证密码和模式必须一样,对应邻居关系才能正常建立;这种认证方式生效范围是单个接口,L1和L2的报文都生效;
区域认证配置
提示:配置区域认证,我们需要在对应isis进程下使用如上命令进行配置;区域认证只对L1的报文生效,对L2无效;
路由域认证配置
提示:路由域认证也是在对应isis进程下进行配置,但路由域认证只对L2报文有效,对L1无效;
验证:在R1上删除接口认证和区域认证,看看是否能够和R2正常建立邻居?
提示:可以看到在R1上只配置路由域认证,R2不配置认证,对应邻居关系也能建立(前提是R1和R2都是L1,或者两者建立的是L1的邻居);这说明路由域认证对L1的报文不生效;
验证:更改R1和R2的路由器类型为L2,修改R1的认证方式为区域认证,看看R1是否能够和R2建立邻居?
更改R2类型为L2
更改R1为L2,并在R1上删除路由域认证,配置区域认证
查看R1和R2是否建立邻居?
提示:可以看到R1配置了区域认证,R2并没有配置任何认证,对应邻居是可以正常建立(前提是R1和R2的路由器类型为L2,或者他们建立的是L2的邻居);其原因是区域认证只对L1报文生效,对L2报文无效;
Keychain认证模式
Keychain认证模式和md5和明文认证模式都不一样,keychain翻译过来是密钥链;它允许一个密钥链上配置多个密钥,在不同的时间段发送和接收不同的密钥进行认证;
Keychain密钥链新建
提示:keychain支持定义发送和接收时间,所以在新建密钥链时,我们需要指定对应时间模式是绝对模式还是相对模式,所谓绝对模式是明确的年月日时分,相对模式是描述经过多长时间;定义好密钥链模式以后,在对应模式里我们可以配置不同的key id和密码;上述命令表示新建一个名为test、模式为绝对模式的密钥链,其中key id为1的密钥是admin.com,key id为2 的密钥为admin23.com;
绝对模式下配置密钥链发送时间和接收时间
新建相对模式密钥链,并配置密钥和时间
提示:上述命令表示新建一个名为test1,模式为相对模式的密钥链;其中id为1的密钥为admin123.com,id为2的密钥为123.com;对于密钥2来说,它的发送时间是每周的周一、周五、周日;接收时间为每周一至周四;
IS-IS调用keychain密钥链
提示:调用密钥链可以在接口、区域和路由域,和配置MD5和明文认证模式一样;