News
发布日期:2022-06-20 浏览次数:2048 来源:崔志鹏
HCIE Datacom技术笔记-ISIS认证详解
HCIE技术学习技术咨询可在网页咨询
认证的分类
根据报文的种类,认证可以分为以下三类:
接口认证:对hello报文做认证,接口认证不通过邻居关系起不来;
区域认证:对L1的SNP、LSP报文做认证,认证不通过,路由有问题;
路由域认证:对L2的SNP、LSP报文做认证,认证不通过,路由有问题;
根据报文的认证方式,可以分为以下三类:
明文认证:抓包能看到密码;
MD5认证:抓包看到的是加密后的字符串;
Keychian认证:可以实现周期性的密码更新,密码平滑过度业务不中断;
认证信息的携带形式
IS-IS通过TLV的形式携带认证信息,认证TLV的类型为10,具体格式如下:
Type:ISO定义认证报文的类型值为10,长度为1字节。
Length:指定认证TLV值的长度,长度1字节。
Value:指定认证的具体内容,其中包括了认证的类型和认证的密码,长度为1~254字节。
其中认证的类型为1字节,具体定义如下:
0:保留的类型
1:明文认证
54:MD5认证
255:路由域私有认证方式
HCIE Datacom实验:R3/R5不用开启了,R2做了路由泄露
接口认证:明文
R1
interface GigabitEthernet0/0/0
ip address 1.1.12.1 255.255.255.0
isis enable 1
isis authentication-mode simple plain wolf
此时R1发送的hello报文中携带TLV=10的认证TLV,并且还是明文的:
Authentication (t=10, l=5)
Type: 10
Length: 5
clear text (1), password (length 4) = wolf
此时R1看不到R2的邻居关系,R2可以看到R1邻居关系处在init状态,为什么?
@isis如果没有启用认证,代表发送报文时不携带认证TLV,对接收到的报文不做认证,不管是否携带认证TLV;
@isis如果启用了认证,发送报文携带认证TLV,接收报文时对报文进行认证,即报文要携带认证TLV;
@R1发现R2发送的hello报文没有携带认证,认证不通过,此时R1看不到R2这个isis邻居;
@R1hello报文没有携带R2的mac地址,所以R2认为邻居关系是init状态;
@如果是两次握手甚至还存在单边邻居关系;
@两边的认证方式必须一致,你是MD5那我也得是MD5;
@相关命令:isis authentication-mode simple plain wolf send-only //发送是携带认证TLV,收到的hello报文无需携带认证信息;(如果一端是send only,一端不做认证,邻居可以起来)
-----------------------------------------------------------------
接口认证:密文
R1
interface GigabitEthernet0/0/0
ip address 1.1.12.1 255.255.255.0
isis enable 1
isis authentication-mode md5 plain wolf
此时R1发送的hello报文中携带TLV=10的认证TLV,并且还是密文的:
Authentication (t=10, l=17)
Type: 10
Length: 17
hmac-md5 (54), message digest (length 16) = 63523f8e3b94afff9d9bf31b406b1bbf
--------------------------------------------------------------------------------------------------------------------------------------------------------------
接口认证:Keychian
R1/R2:
keychain wolf mode absolute
key-id 1
algorithm hmac-md5
key-string cipher %$%$q|;p3C98G;~vY#O~DF'"Ni>i%$%$
send-time utc 15:45 2022-05-21 duration 02
receive-time utc 15:45 2022-05-21 duration 02
key-id 2
algorithm hmac-md5
key-string cipher %$%$X)GGP*$$D7QHW&;P!J9/Ni~'%$%$
send-time utc 15:47 2022-05-21 duration 02
receive-time utc 15:47 2022-05-21 duration 02
interface GigabitEthernet0/0/0
isis authentication-mode keychain wolf
注意:
@配置了两个key-id,15:45-15:47采用key-id 1做认证,15:47-15:49采用key-id 2做认证;
@假设我15:40将认证配置好,在15:40-15:45之间的这段时间AR1和AR2正常发送hello报文,报文不携带认证,但是邻居建立不起来;
@15:45-15:47两台设备此时开始发送TLV=10的hello报文采用key-id 1做认证,邻居关系正常建立;
Authentication (t=10, l=17)
Type: 10
Length: 17
hmac-md5 (54), message digest (length 16) = f846c837926a7e6965dd01b24d5ea96a
@15:47-15:49两台设备此时开始发送TLV=10的hello报文采用key-id 2做认证,邻居关系正常建立;
Authentication (t=10, l=17)
Type: 10
Length: 17
hmac-md5 (54), message digest (length 16) = fb8b2d24fa73fdaf6e648731e5dcf0bc
@15:49以后两台设备继续发送hello报文但是不在携带TLV=10的认证了,邻居此时无法正常建立,所以最后一个key id要设置成永远不超时;
-----------------------------------------------------------------
区域认证
R1:只在R1上做认证
isis 1
is-level level-1
network-entity 49.0123.0000.0000.0001.00
area-authentication-mode simple plain wolf
此时R1上看不到R2泄露进来的路由,但是R2上可以看到R1的路由。
注意:
@区域认证不会影响邻居关系;
@会对发送的SNP和LSP的报文进行认证;
@如果一台level-2的路由器配置区域认证,相当于没有配置,报文中不会携带认证字段,同样的一台level-1的路由器配置了路由域的认证也一样;
相关命令:
①如果一台设备没有配置认证,我发送的SNP LSP报文不携带认证,不对收到SNP LSP报文做认证
②area-authentication-mode simple plain wolf //发送SNP LSP的报文需要携带认证,针对收到SNP LSP必须携带认证;
③area-authentication-mode md5 plain wolf all-send-only //发送SNP LSP的报文需要携带认证,不对收到SNP LSP报文做认证;
④area-authentication-mode md5 plain wolf snp-packet send-only //针对SNP LSP报文需要携带认证,仅对接收的LSP做认证;
⑤area-authentication-mode md5 plain wolf snp-packet authentication-avoid //针对LSP报文需要携带认证,仅对接收的LSP做认证;
后两条命令在广播的网络上使用,因为DIS会周期性的发送CSNP,每个报文都做认证,消耗设备的资源;
-----------------------------------------------------------------
路由域认证
R2:只在R2上做认证
isis 1
network-entity 49.0123.0000.0000.0002.00
import-route isis level-2 into level-1
domain-authentication-mode simple plain wolf
此时R2上看不到R4的路由,但是R4上可以看到R2泄露进来的路由。
注意:
@路由域的套路跟区域认证的套路一模一样;
@区域认证和路由域认证要么就不配置,要么就全网一起配置
WOLFLAB网络实验室HCIE技术学习联系网站客服预约免费试听