
問題文
あなたはL3ネットワークの運用担当です。
L2NW網内で障害発生後、SV-56からSV-55宛のPingが届かなくなり、通信を至急復旧させないといけない。
暫定措置でもよいので、冗長構成を維持する必要はない。
SV-56からデフォルトGW(172.16.56.200)宛の疎通はまだある模様。
RT-01,RT-02,RT-03に対してはフル権限があり、好きに設定変更等できる。
達成条件
- SV-56からSV-55までのPingが成功すること。
SV-56:~# ping -c 3 172.16.55.1
PING 172.16.55.1 (172.16.55.1) 56(84) bytes of data.
64 bytes from 172.16.55.1: icmp_seq=1 ttl=62 time=2.31 ms
64 bytes from 172.16.55.1: icmp_seq=2 ttl=62 time=1.46 ms
64 bytes from 172.16.55.1: icmp_seq=3 ttl=62 time=1.31 ms
— 172.16.55.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.313/1.693/2.309/0.439 ms
制約
L2NWを構成する装置へのアクセスはできない。
解説
障害サマリー
SV-56からSV-55の上り通信は問題ないが、下り通信(172.16.56.0/24向け)がブラックホールされている。
RT-02およびRT-03はそれぞれ172.16.56.0/24をGi0/0/0/2のConnected経路からnetworkコマンドで網内BGPに伝搬している。
今回L2NW網内の障害よりRT-03 Gi0/0/0/2<ー>SV-56の間のどこかで切れている想定だがRT-03のGi0/0/0/2にてLinkDownは発生していない。
隣接セグメントの先区間にて障害がある想定。回線キャリア装置でリンクダウン転送、LPT(Link Pass Through)等を使わない限り、EthernetのLinkDownは隣接セグメントの障害でしか発生しないため。
結果、RT-03は172.15.56.0/24のConnected経路を保持し続け、RT-02と共にBGP網内で経路が広告し続ける。
SV-55から172.16.56.1宛の下り通信がRT-02かRT-03に流れるかはBGP Best Path選定の結果次第だが、特にBGP Attributeの属性で差分がないので、IGPによって左右される。
RT-01から見て、RT-03に直接接続するリンクを経由したOSPF累積コスト値が一番低いので、下り通信はまずRT-03に届いてGi0/0/0/2から到達不能な経路に向かう。
対処は複数あるだろうと思うので、制限を設けていない。
経路調査(上り)
SV-56からデフォルトGWを確認すると、RT-02,RT-03のVIP 172.16.56.200であり、GWに向かう172.16.56.0/24経路はeth1(172.16.56.1)から出る。
SV-56:~# ip route
default via 172.16.56.200 dev eth1
172.16.56.0/24 dev eth1 proto kernel scope link src 172.16.56.1
172.20.20.0/24 dev eth0 proto kernel scope link src 172.20.20.3
RT-02,RE-03のVIPと物理IPに対してPing打つとVIP(172.16.56.200)とRT-02 Gi0/0/0/2の物理IP(172.16.56.201)までは到達可能だが、RT-03 Gi0/0/0/2(172.16.56.202)は到達NG。
SV-56からPing確認
SV-56:~# arp
? (172.16.56.200) at 00:00:0c:07:ac:37 [ether] on eth1
? (172.16.56.201) at aa:c1:ab:ee:1d:f1 [ether] on eth1
? (172.16.56.202) at <incomplete> on eth1
SV-56:~# ping 172.16.56.200
PING 172.16.56.200 (172.16.56.200) 56(84) bytes of data.
64 bytes from 172.16.56.200: icmp_seq=1 ttl=255 time=0.823 ms
64 bytes from 172.16.56.200: icmp_seq=2 ttl=255 time=0.513 ms
64 bytes from 172.16.56.200: icmp_seq=3 ttl=255 time=0.504 ms
^C
— 172.16.56.200 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2043ms
rtt min/avg/max/mdev = 0.504/0.613/0.823/0.148 ms
SV-56:~# ping 172.16.56.201
PING 172.16.56.201 (172.16.56.201) 56(84) bytes of data.
64 bytes from 172.16.56.201: icmp_seq=1 ttl=255 time=1.04 ms
64 bytes from 172.16.56.201: icmp_seq=2 ttl=255 time=0.761 ms
64 bytes from 172.16.56.201: icmp_seq=3 ttl=255 time=0.817 ms
^C
— 172.16.56.201 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2058ms
rtt min/avg/max/mdev = 0.761/0.873/1.041/0.120 ms
SV-56:~# ping 172.16.56.202
PING 172.16.56.202 (172.16.56.202) 56(84) bytes of data.
From 172.16.56.1 icmp_seq=1 Destination Host Unreachable
From 172.16.56.1 icmp_seq=2 Destination Host Unreachable
From 172.16.56.1 icmp_seq=3 Destination Host Unreachable
From 172.16.56.1 icmp_seq=4 Destination Host Unreachable
^C
— 172.16.56.202 ping statistics —
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3053ms
pipe 4
一旦RT-03にログインして状態確認する。
まずRT-03からSV-56(172.16.56.1)宛のPingはNG。
sh ip route 172.16.56.1でルーティングテーブルを見るとGi0/0/0/2のConnected経路(172.16.56.0/24向け)の経路情報が有効である。
RT-03のGi0/0/0/2はUpでSV-55(172.16.55.1)宛にPingも問題なく到達する。
SV56<->RT-03 Gi0/0/0/2の間にて何かしら障害があるよう。
RT-03 経路確認、Ping確認
RP/0/RP0/CPU0:RT-03#ping 172.16.56.1
Mon Dec 23 04:08:33.908 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.56.1 timeout is 2 seconds:
..^C
Success rate is 0 percent (0/2)
RP/0/RP0/CPU0:RT-03#sh ip route 172.16.56.1
Mon Dec 23 04:03:16.188 UTC
Routing entry for 172.16.56.0/24
Known via “connected”, distance 0, metric 0 (connected)
Installed Dec 23 02:09:12.234 for 01:54:03
Routing Descriptor Blocks
directly connected, via GigabitEthernet0/0/0/2
Route metric is 0
No advertising protos.
RP/0/RP0/CPU0:RT-03#sh ip int GigabitEthernet 0/0/0/2
Mon Dec 23 04:19:31.060 UTC
GigabitEthernet0/0/0/2 is Up, ipv4 protocol is Up
Vrf is default (vrfid 0x60000000)
Internet address is 172.16.56.202/24
RP/0/RP0/CPU0:RT-03#ping 172.16.55.1
Mon Dec 23 04:22:42.030 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.55.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
RT-03でHSRPの状態確認をすると、Activeになっており、Priorityがデフォルトより優先高い「110」になっているので、通常こちらがメインだと推定。
ただ、RT-02と疎通がとれていないので、RT-02のActive状態への遷移に悪影響を与えていないはず。
RP/0/RP0/CPU0:RT-03#sh hsrp
Mon Dec 23 03:34:58.207 UTC
IPv4 Groups:
P indicates configured to preempt.
|
Interface Grp Pri P State Active addr Standby addr Group addr
Gi0/0/0/2 55 110 P Active local unknown 172.16.56.200
IPv6 Groups:
P indicates configured to preempt.
|
Interface Grp Pri P State Active addr Standby addr Group addr
RP/0/RP0/CPU0:RT-03#ping 172.16.56.201
Mon Dec 23 04:11:02.352 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.56.201 timeout is 2 seconds:
…^C
Success rate is 0 percent (0/3)
RT-02にログインして確認すると、SV-56(172.16.56.1)宛のPingとSV-55宛のPingが両方通っていることが確認できる。
またRT-02のHSRPもActive状態になっているので上り通信を受けられる状態であると推定。
これより一旦上り通信は確率できているはずだと推定し、下り通信を確認する。
RT-02 Ping確認等
RP/0/RP0/CPU0:RT-02#ping 172.16.56.1
Mon Dec 23 03:47:43.134 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.56.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
RP/0/RP0/CPU0:RT-02#ping 172.16.55.1
Mon Dec 23 03:51:40.431 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.55.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
RP/0/RP0/CPU0:RT-02#sh hsrp
Mon Dec 23 03:43:37.715 UTC
IPv4 Groups:
P indicates configured to preempt.
|
Interface Grp Pri P State Active addr Standby addr Group addr
Gi0/0/0/2 55 100 Active local unknown 172.16.56.200
IPv6 Groups:
P indicates configured to preempt.
|
Interface Grp Pri P State Active addr Standby addr Group addr
経路調査(下り通信)
SV-56(172.16.56.1)の下りルートをRT-01から確認すると172.16.56.0/24のPrefix情報がRouting Tableで利用され、NextHopがRT-03のLo0(3.3.3.3)だと分かる。
RT-03からSV-56への疎通はNGなので、到達不能な経路を元にパケットを転送していることが推定できる。
RP/0/RP0/CPU0:RT-01#sh ip route 172.16.56.1
Mon Dec 23 02:17:58.012 UTC
Routing entry for 172.16.56.0/24
Known via “bgp 55”, distance 200, metric 0, type internal
Installed Dec 23 02:10:26.906 for 00:07:31
Routing Descriptor Blocks
3.3.3.3, from 3.3.3.3
Route metric is 0
No advertising protos.
RT-02からSV-55及びSV-56へのPingは良好だが、下り通信もRT-02を経由しないとトラフィックは救済されない。
172.16.56.0/24の経路情報をBGPテーブルで見ると、RT-03が広告している172.16.56.0/24の経路がRT-02より優先されbest pathになっていることが分かる。
理由はmetric値(RT-01からRT-03のOSPFコスト累積値)がより小さいため。
RP/0/RP0/CPU0:RT-01#sh ip bgp
Tue Dec 24 09:43:24.957 UTC
BGP router identifier 1.1.1.1, local AS number 55
Status codes: s suppressed, d damped, h history, * valid, > best
i – internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i – IGP, e – EGP, ? – incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.55.0/24 0.0.0.0 0 32768 i
* i172.16.56.0/24 2.2.2.2 0 100 0 i
*>i 3.3.3.3 0 100 0 i
RP/0/RP0/CPU0:RT-01#sh ip bgp 172.16.56.0 255.255.255.0 detail
Mon Dec 23 02:19:45.085 UTC
BGP routing table entry for 172.16.56.0/24
Versions:
Process bRIB/RIB SendTblVer
Speaker 7 7
Flags: 0x00001001+0x20010000+0x00000000
Last Modified: Dec 23 02:10:26.806 for 00:09:18
Paths: (2 available, best #2)
Not advertised to any peer
Path #1: Received by speaker 0
Flags: 0x2000000000020005+0x00, import: 0x020
Not advertised to any peer
Local
2.2.2.2 (metric 16) from 2.2.2.2 (2.2.2.2), if-handle 0x00000000
Origin IGP, metric 0, localpref 100, valid, internal
Received Path ID 0, Local Path ID 0, version 0
Path #2: Received by speaker 0
Flags: 0x2000000001060005+0x00, import: 0x020
Not advertised to any peer
Local
3.3.3.3 (metric 11) from 3.3.3.3 (3.3.3.3), if-handle 0x00000000
Origin IGP, metric 0, localpref 100, valid, internal, best, group-best
Received Path ID 0, Local Path ID 1, version 7
問題は優先されている経路情報を用いると、到達不能な経路に通信がブラックホールされることなので、何かしらの方法でRT-03から広告される172.16.56.0/24経路を止めたい。
ネタバレ(正解回答例)
例1)RT02 Gi0/0/0/2のIFをShutdownする。
→これが一番シンプル。復旧確認ができないため、リスクはあるがL2NWの障害情報をあとから確認して回復判断できるかも。
RP/0/RP0/CPU0:RT-03#conf t
RP/0/RP0/CPU0:RT-03(config)#interface GigabitEthernet 0/0/0/2
RP/0/RP0/CPU0:RT-03(config-if)#shutdown
RP/0/RP0/CPU0:RT-03(config-if)#commit
RP/0/RP0/CPU0:RT-01#sh ip bgp
Tue Dec 24 09:48:56.072 UTC
BGP router identifier 1.1.1.1, local AS number 55
BGP generic scan interval 60 secs
Non-stop routing is enabled
BGP table state: Active
Table ID: 0xe0000000 RD version: 10
BGP table nexthop route policy:
BGP main routing table version 10
BGP NSR Initial initsync version 6 (Reached)
BGP NSR/ISSU Sync-Group versions 0/0
BGP scan interval 60 secs
Status codes: s suppressed, d damped, h history, * valid, > best
i – internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i – IGP, e – EGP, ? – incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.55.0/24 0.0.0.0 0 32768 i
*>i172.16.56.0/24 2.2.2.2 0 100 0 i
Processed 2 prefixes, 2 paths
RP/0/RP0/CPU0:RT-01#ping 172.16.56.1
Tue Dec 24 09:49:18.997 UTC
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.56.1 timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/3 ms
例2)OSPFコストを変更して下り通信をRT01に向かわせる。
→単一ユーザーの障害で多重区間の経路切替は通常避けるべき。RT-01<->RT-02のリンク障害があれば、RT-03がまた優先される。
例3)RT-01にRT-02向けのStatic Routeを追加。
※おそらく高級対処としてはBGPを用いた冗長構成にするか、L2NWのキャリアにLinkdown検知できない障害パターンについて確認した上、しっかり再発防止を検討する必要がある。
この問題に対して筆者の思い
以前勤務していたNOCではバックボーン網内とPE-CE間の保守が分離したため、似たような問題で切り分けが難航した件がありました。
この問題ではOSPF等のプロトコルを見ると、バックボーン区間に異常は無いという結果になり、PE-CE間は片系が活きているので最初は「あれ?」ってなります。
キャリア網を介してFHRPでPEの冗長構成を組むのはおそらく普段ないことで、非現実的な部分があったことについてすみません。
実際に類似構成で見てきた件ではCEとPEではBGPで冗長を取っているのが基本だったと思います。ですが、お客様がCERの設定を自由に変えられるサービス形態も多く、オーバレイでCisco教本を参考にCEのWAN IPをTunnelのSRC IPにして突然通信断がおきる事象などがあった。ちょうど片系断のみであれば工事通知を省略しても良いのではという議論がすすみそうになっていた時期に偶然見つけて監視をどうすべきかなど、色々悩まされました。
Config
詳細トポロジー図

RT-01
hostname RT-01
username clab
group root-lr
group cisco-support
secret 10 XXXX
grpc
port 9339
no-tls
address-family dual
!
line default
transport input ssh
!
netconf-yang agent
ssh
!
interface Loopback0
ipv4 address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/0
description to-RT-55
ipv4 address 172.16.55.200 255.255.255.0
!
interface GigabitEthernet0/0/0/1
description to-RT-02
ipv4 address 192.168.1.2 255.255.255.252
!
interface GigabitEthernet0/0/0/2
description to-RT-03
ipv4 address 192.168.2.2 255.255.255.252
!
router static
address-family ipv4 unicast
!
router ospf 55
router-id 1.1.1.1
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/1
cost 15
network point-to-point
!
interface GigabitEthernet0/0/0/2
cost 10
network point-to-point
!
!
!
router bgp 55
address-family ipv4 unicast
network 172.16.55.0/24
!
neighbor 2.2.2.2
remote-as 55
description to-RT-02
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
neighbor 3.3.3.3
remote-as 55
description to-RT-03
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
!
ssh server v2
ssh server netconf vrf default
end
RT-02
hostname RT-02
username clab
group root-lr
group cisco-support
secret 10 $6$8C/kWH.g6.90W…$QbQp.wMbNar7L66qbWh5kRsOJkf.Y4EPaBWYbHMUelyJmlZMOIKAoi3YXIiJmz4A9AKZ1rNh7Yt9kJBmVGLIg0
!
grpc
port 9339
no-tls
address-family dual
!
line default
transport input ssh
!
netconf-yang agent
ssh
!
interface Loopback0
ipv4 address 2.2.2.2 255.255.255.255
!
interface MgmtEth0/RP0/CPU0/0
ipv4 address 172.20.20.9 255.255.255.0
ipv6 address 3fff:172:20:20::2/64
ipv6 address 3fff:172:20:20::4/64
ipv6 address 3fff:172:20:20::5/64
ipv6 address 3fff:172:20:20::6/64
ipv6 address 3fff:172:20:20::9/64
!
interface GigabitEthernet0/0/0/0
description to-RT-01
ipv4 address 192.168.1.1 255.255.255.252
!
interface GigabitEthernet0/0/0/1
description to-RT-03
ipv4 address 192.168.0.1 255.255.255.252
!
interface GigabitEthernet0/0/0/2
description to-SW-01
ipv4 address 172.16.56.201 255.255.255.0
!
router static
address-family ipv4 unicast
0.0.0.0/0 MgmtEth0/RP0/CPU0/0 172.20.20.1
!
address-family ipv6 unicast
::/0 MgmtEth0/RP0/CPU0/0 3fff:172:20:20::1
!
!
router ospf 55
router-id 2.2.2.2
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
cost 15
network point-to-point
!
interface GigabitEthernet0/0/0/1
cost 100
network point-to-point
!
!
!
router bgp 55
address-family ipv4 unicast
network 172.16.56.0/24
!
neighbor 1.1.1.1
remote-as 55
description iBGP-to-RT-01
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
neighbor 3.3.3.3
remote-as 55
description iBGP-to-RT-03
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
!
router hsrp
interface GigabitEthernet0/0/0/2
address-family ipv4
hsrp 55
authentication janog55
address 172.16.56.200
!
!
!
!
ssh server v2
ssh server netconf vrf default
end
RT-02
hostname RT-02
username clab
group root-lr
group cisco-support
secret 10 XXXXX
!
grpc
port 9339
no-tls
address-family dual
!
line default
transport input ssh
!
netconf-yang agent
ssh
!
interface Loopback0
ipv4 address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/0/0/0
description to-RT-01
ipv4 address 192.168.1.1 255.255.255.252
!
interface GigabitEthernet0/0/0/1
description to-RT-03
ipv4 address 192.168.0.1 255.255.255.252
!
interface GigabitEthernet0/0/0/2
description to-SW-01
ipv4 address 172.16.56.201 255.255.255.0
!
router static
address-family ipv4 unicast
!
!
router ospf 55
router-id 2.2.2.2
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
cost 15
network point-to-point
!
interface GigabitEthernet0/0/0/1
cost 100
network point-to-point
!
!
!
router bgp 55
address-family ipv4 unicast
network 172.16.56.0/24
!
neighbor 1.1.1.1
remote-as 55
description iBGP-to-RT-01
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
neighbor 3.3.3.3
remote-as 55
description iBGP-to-RT-03
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
!
router hsrp
interface GigabitEthernet0/0/0/2
address-family ipv4
hsrp 55
authentication janog55
address 172.16.56.200
!
!
!
!
ssh server v2
ssh server netconf vrf default
end
RT-03
hostname RT-03
username clab
group root-lr
group cisco-support
secret 10 XXXXX
grpc
port 9339
no-tls
address-family dual
!
line default
transport input ssh
!
netconf-yang agent
ssh
!
interface Loopback0
ipv4 address 3.3.3.3 255.255.255.255
!
interface GigabitEthernet0/0/0/0
description to-RT-01
ipv4 address 192.168.2.1 255.255.255.252
!
interface GigabitEthernet0/0/0/1
description to-RT-02
ipv4 address 192.168.0.2 255.255.255.252
!
interface GigabitEthernet0/0/0/2
description to-SW-02
ipv4 address 172.16.56.202 255.255.255.0
!
router static
address-family ipv4 unicast
!
router ospf 55
router-id 3.3.3.3
area 0
interface Loopback0
!
interface GigabitEthernet0/0/0/0
cost 10
network point-to-point
!
interface GigabitEthernet0/0/0/1
cost 100
network point-to-point
!
!
!
router bgp 55
address-family ipv4 unicast
network 172.16.56.0/24
!
neighbor 1.1.1.1
remote-as 55
description to-RT-01
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
neighbor 2.2.2.2
remote-as 55
description to-RT-02
update-source Loopback0
address-family ipv4 unicast
next-hop-self
!
!
!
router hsrp
interface GigabitEthernet0/0/0/2
address-family ipv4
hsrp 55
authentication janog55
preempt
priority 110
address 172.16.56.200
!
!
!
!
ssh server v2
ssh server netconf vrf default
end
コメントを残す