这是实验拓扑,下面是基本配置:
R1:
sys
sysname R1
user-interface console 0
idle-timeout 0 0
int loop 0
ip add 1.1.1.1 24
int g0/0/0
ip add 192.168.12.1 24
q
R2:
sys
sysname R2
user-interface console 0
idle-timeout 0 0
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int s0/0/0
ip add 192.168.23.2 24
q
R3:
sys
sysname R3
user-interface console 0
idle-timeout 0 0
int loop 0
ip add 3.3.3.3 24
int s0/0/0
ip add 192.168.23.3 24
q
配置完成后,R2 ping 一下直连,测试连通性
配置IS-IS路由协议:
R1:
isis
network-entity 10.0000.0000.0001.00
int g0/0/0
isis enable
int loo 0
isis enable
默认IS-IS 进程号为 1,配置路由器的网络实体名,即指定系统的区域ID和系统ID。
路由器上需要运行IS-IS的接口必须使用isis enable命令来启用IS-IS协议。
抓取 ISIS ?hello 报文:
用IS-IS协议 物理接口的 MTU 为 1497, 有 3 个字节给 LLC 使用了。
system ID length 默认为 6,是系统ID 号长度 。
max area 默认为 3 ,代表最大支持 3个 network-entity 。
每台设备最多可以配置三个NET,系统ID必须是相同,区域ID可以不同。
?
一般情况下,一个路由只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。为了支持区域的平滑合并,分割及转换,在设备的实现中,一个ISIS进程下最多可配置3个区域地址。
hello 报文中只有 holding timer ,hello * 3= holding timer ,hello 时间不同,不影响建立邻居
但MTU 要相同。
hello 报文中的padding 在P2P 网络中,建立好之后,就没有了,节约带宽,在广播网络中一直有
int s0/0/0
isis padding-hello //一直有padding
int s0/0/0
isis small-hello //没有padding
两条命令互斥。
? isis作为链路状态协议,一个重要的原则是要保证整个网络中所有设备的lsdb数据库保持完全一致,这样才能保证各设备计算出的最小生成树(spf)是基于同一个拓扑,从而保证不会出现环路。isis报文作为链路层报文,发送和接收过程是没有分片的概念的,也就是说接口的mtu决定了可以收到的lsp的最大长度。
? 举个例子,a与b建立isis邻居。但a的接口mtu为1000,b的接口mtu为2000,b的lsdb中有一条长度为1500的lsp。在这种情况下,这条lsp发到a是要丢弃的,因为超过了a的接口mtu。结果是a与b的lsdb就不一致了。
? 解决方案就是把hello报文填充到接口的mtu长度。b的hello报文全部长度现在是2000,发到a就丢弃了。建不起来isis邻居,自然不会有不一致的现象。
? 建不起来邻居可以识别出来继而修改不一致的mtu,而数据库不一致导致的后果完全无法预见,是无法接受的。
? 华为设备的实现:广播网的hello是根据mtu填充的;对于p2p的hello,华为是根据ls plength(单条lsp的最大生成长度)的大小进行填充。在p2p邻居up后,不再对hello报文进行填充。当然,也可以通过small-hello和padding-hello命令强制指定是否填充。
R2 R3配置isis:
R2:
isis
network-entity 10.0000.0000.0002.00
int g0/0/0
isis enable
int s0/0/0
isis enable
int loo 0
isis enable
R3:
isis
network-entity 10.0000.0000.0003.00
int s0/0/0
isis enable
int loo 0
isis enable
P2P 链路可以用 2-way 也可以用 3-way 来建立,华为默认采用的是三次握手
int s0/0/0
isis ppp-negotiation 3-way (only)
不在同一个网段,建立 ISIS 邻居:
R2:
int s0/0/0
isis peer-ip-ignore
R3:
int s0/0/0
ip add 192.168.35.3 24
isis peer-ip-ignore
设置了 peer-ip-ignore 后,P2P 网络不是同一个网段的两边,也能建立邻居。
R2上查看邻居信息 display isis peer。
与系统ID为 0000.0000.0001 的邻居建立了 Level-1邻接关系及Level-2邻接关系,3条邻居信息的状态均为 up, 表示 IS-IS邻接关系已经正常建立。
?
由于系统ID不易于管理和维护时的识别和认读,可以在IS-IS视图下设置为动态主机名。
R1:
isis
is-name R1
R2:
isis
is-name R2
R3:
isis
is-name R3
查看一下,系统ID已经被动态主机名替换
配置IS-IS 认证功能:
1、接口认证: ? ?对Level-1和Level-2的Hello 报文进行认证
2、区域认证: ? ?对Level-1的SNP和LSP报文进行认证
3、路由域认证:对Level-2的SNP和LSP报文进行认证
认证方式:Null、明文、MD5
?接口认证:
R1:
int g0/0/0
isis authentication-mode simple huawei
在R1 的g0/0/0 接口抓IIH 包
看system-id 是0001 ,也就是 R1 的 hello 包 ,可以看到认证字段,也能看到明文的密码
如果是 md5 认证,抓包是看不到密码的
只做一边的认证,邻居关系断开 ,两边都做相同的认证之后,关系才能建立
R2:
int g0/0/0
isis authentication-mode simple huawei
MD5 认证
int g0/0/0
isis authentication-mode md5 huawei
清除ISIS? LSDB:
<>reset isis 1 all
?