问题:AR32的Loopback0无法访问AR28的Loopback0,请诊断其问题原因。
一、故障根因判断
AR32的Loopback0无法访问AR28的Loopback0的原因有下面四点:
(1)在区域0或者区域1下使用filter命令调用ACL或者prefix-list,对 AR28的loopback0接口路由做了区域间路由过滤。
(2)在AR28的区域0中执行区域间路由汇总命令并加上关键字not-advertise,导致路由不被通告。
(3)AR28的G2/0/0接口上使用了ospf filter-lsa-out summary acl命令做了3类LSA泛洪过滤。
(4)AR28上使用filter-policy import命令对loopabck0接口的路由做了过滤。
二、故障分析
2.1 故障重现:在AR32上,使用ping命令测试AR28的Loopback0的接口地址,验证故障现象是否存在,测试结果如下:
<AR32>ping -a 10.5.1.32 10.5.1.28
PING 10.5.1.28: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 10.5.1.28 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
由以上的输出结果看见,此故障确实存在,由于AR32通过OSPF协议计算AR28的Loopback0接口地址的路由,所以需要在AR32上进一步检查是否存在AR28的Loopback0接口地址的路由信息。
2.2 在AR32上使用display ip routing-table命令检查是否存在AR28的Loopback0接口地址的路由信息,测试结果输出如下:
<AR32>dis ip routing-table
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
Destinations : 17 Routes : 17
Destination/Mask Proto Pre Cost Flags NextHop Interface
10.5.1.27/32 OSPF 10 2 D 10.5.239.28 GigabitEthernet0/0/0
10.5.1.30/32 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.1.31/32 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.1.32/32 Direct 0 0 D 127.0.0.1 LoopBack0
10.5.1.34/32 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.14.0/24 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.34.0/24 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.128.0/24 OSPF 10 2 D 10.5.239.28 GigabitEthernet0/0/0
10.5.129.0/24 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.130.0/24 O_ASE 150 1 D 10.5.239.28 GigabitEthernet0/0/0
10.5.239.0/24 Direct 0 0 D 10.5.239.32 GigabitEthernet0/0/0
10.5.239.32/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
10.5.239.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
由以上输出可知,AR32不存在AR28的Loopback0接口地址的路由信息,由于AR32于AR28运行的是OSPF协议,所以在AR32需要进一步检查OSPF邻居关系是否建立。
2.3 在AR32上使用dis ospf peer brief 检查它与AR28的OSPF的邻居是否正常建立,测试结果如下:
<AR32>dis ospf peer brief
OSPF Process 1 with Router ID 10.5.1.32
Peer Statistic Information
-------------------------------------------------------------------------------------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.1 GigabitEthernet0/0/0 10.5.1.28 Full
--------------------------------------------------------------------------------------------------------------------------------------------------------
由以上输出可见,AR32与AR28正常建立了邻居关系,由于OSPF计算出对方路由的前提是收到对方的LSA,所以在AR32上查看OSPF的LSDB。
2.4 在AR32上通过命令dis ospf lsdb查看当前LSDB中是否有AR28的Loopback0接口对应的LSA。结果如下所示:
<AR32>dis ospf lsdb
OSPF Process 1 with Router ID 10.5.1.32
Link State Database
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.5.1.32 10.5.1.32 1336 48 80000006 1
Router 10.5.1.28 10.5.1.28 1346 36 80000004 1
Network 10.5.239.32 10.5.1.32 1336 32 80000002 0
Sum-Net 10.5.128.0 10.5.1.28 1385 28 80000001 1
Sum-Net 10.5.1.27 10.5.1.28 1324 28 80000001 1
Sum-Asbr 10.5.1.27 10.5.1.28 1324 28 80000001 1
结果表明LSDB中没有存在AR28的Loopback 0所对应的3类LSA,但是有AR28通告的1类LSA。需要进一步查看该一类LSA中的详细信息。
2.5 在AR32上进一步使用命令dis ospf lsdb router 10.5.1.28查看AR28产生的1类LSA。结果如下所示:
<AR32>dis ospf lsdb router 10.5.1.28
OSPF Process 1 with Router ID 10.5.1.32
Area: 0.0.0.1
Link State Database
Type : Router
Ls id : 10.5.1.28
Adv rtr : 10.5.1.28
Ls age : 1629
Len : 36
Options : ASBR ABR E
seq# : 80000004
chksum : 0x3e7c
Link count: 1
* Link ID: 10.5.239.32
Data : 10.5.239.28
Link Type: TransNet
Metric : 1
结果显示AR28通告的1类LSA中只有描述g2/0/0接口对应的TransNet类型的链路状态描述信息没有Loopback0接口对应的链路状态描述信息,所以可以判断AR28的Loopback0没有发布在OSPF area 1中,由于不能判定AR28的Loopback0是否发布在区域0中,所以需要进一步在AR27上查看OSPF的LSDB。
2.6 使用命令dis ospf lsdb router 10.5.1.28查看AR28通告的1类LSA中是否有Loopback0口对应的链路状态信息。结果如下所示:
dis ospf lsdb router 10.5.1.28
OSPF Process 1 with Router ID 10.5.1.27
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 10.5.1.28
Adv rtr : 10.5.1.28
Ls age : 218
Len : 48
Options : ASBR ABR E
seq# : 80000009
chksum : 0x8ad1
Link count: 2
* Link ID: 10.5.128.28
Data : 10.5.128.28
Link Type: TransNet
Metric : 1
* Link ID: 10.5.1.28
Data : 255.255.255.255
Link Type: StubNet
Metric : 0
Priority : Medium
结果表明在AR27的OSPF区域0的LSDB中AR28通告的1类LSA中存在Loopback0对应的StubNet类型的链路状态信息,可以判定AR28的Loopback0已经发布在OSPF区域0中了。
综上分析:
由于在AR27上的区域0中的OSPF LSDB中看到AR28的Loopback0接口,证明Type 1-LSA确实存在,但是AR32的区域1的OSPF LSDB中无法看到AR28的Loopback0的LSA,所以判定是在AR28上做了相应的3类LSA过滤行为,在当前环境中针对自身Loopback0接口的3类LSA的过滤方式有下面四种:
(1)在区域0或者区域1下使用filter命令调用ACL或者prefix-list,对 AR28的loopback0接口路由做了区域间路由过滤。
(2)在AR28的区域0中执行区域间路由汇总命令并加上关键字not-advertise,导致路由不被通告。
(3)AR28的G2/0/0接口上使用了ospf filter-lsa-out summary acl命令做了3类LSA泛洪过滤。
(4)AR28上使用filter-policy import命令对loopabck0接口的路由做了过滤。
三、故障处理
3.1 AR28上做了路由过滤策略的故障处理需要在AR28上执行以下命令:
system-view //进入系统视图//
ospf 1 //进入ospf进程//
undo filter-policy import //删除路由过滤策略//
area 0 //进入区域0//
abr-summary 10.5.1.28 255.255.255.255 //如果有路由汇总命令并最后有not-advertise关键字请删除之//
undo filter export //删除export策略//
area 1 //进入区域1//
undo filter import //删除import策略//
int g2/0/0
undo ospf filter-lsa-out //删除LSA泛洪策略//
执行完成以上命令后在AR32用以下命令进行检查:
display ospf lsdb //检查OSPF数据库中是否能够收到AR28的类型3的LSA//
display ip routing-table //此时AR32的路由表中应该能够收到AR28的loopback0 IPV4地址//
ping -a 10.5.1.32 10.5.1.28 //此时在AR32如果能够ping通AR28的loopback0的IPV4地址,则故障解决//
3.2 高可能性--能收到路由但是ping测不通,则可能是AR28/AR32上做了流量过滤策略。
在AR28/AR32上执行以下命令
system-view //进入系统视图//
interface g2/0/0(或者AR32的G0/0/0) //进入接口视图//
undo traffic-filter inbound/outbound //删除接口过滤策略//
undo traffic-policy inbound/outbound //删除接口过滤策略//
3.3 如果通过以上办法仍然无法解决故障则需要用户提供设备的详细配置,或者到达用户现场进行现场排查并拨打华为400电话请求华为TAC专家协助故障处理。