はじめに
JANOG55(京都)で開催されたNETCONのLevel3-2問題について問題解説をします。
これは、実際に体験した障害?から作成した問題で、CiscoのNX-OSとIOS-XEとのデフォルト値の違いにより発生するものです。
問題文
とあるネットワーク構築部隊での話。
上司が新人に仕事を依頼しています。
上司:新しいネットワークの技術検証をしておいて
新人:ルータ2台構築の案件ですね
上司:そうだよ。2台のルータをIPv6リンクローカルで接続して、ISISでLoopBackインターフェイスに付与したIPv6アドレス同士が疎通できるようにしておいて。
新人:わかりました。RT-01のLoopback0がfc00:1000::1でRT-02がfc00:1000::2ですね。
上司:そうだね。RT-01は設定済みだから触らないように。
しばらくして・・・。
新人:RT-02に設定を投入したのですが、疎通できません・・・。
上司:ISISの設定が問題ないか確認して。
新人:なんでかな?
という訳で、どこがおかしいか確認して、RT-02からRT-01へpingで疎通確認ができるようにしてください。
〇トポロジ
〇制約
- 設定の変更が可能なのはRT-02のみ。
- isisを使ってルーティングすること(Staticやほかのルーティング技術を用いることは禁止)
〇達成条件
RT-02でping fc00:1000::1の実行結果が次のように表示されること
RT-02#ping fc00:1000::1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to FC00:1000::1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
解答
RT-02# config terminal
RT-02(config)# router isis UNDERLAY
RT-02(config-router)# metric-style wide
*RT-02(config-router)# metric-style transitionでも可
解説
今回はRT-01がCiscoのNX-OS、RT-02がCiscoのIOS-XEとなっています。
show runnning-configおよび問題文からisisが問題であることがわかります。
まずはshow runnning-configでisisに関係しそうな部分を見てみましょう
interface GigabitEthernet2
description eth-1-1.RT-01
no ip address
no shutdown
negotiation auto
ipv6 enable
ipv6 router isis UNDERLAY
no mop enabled
no mop sysid
isis circuit-type level-2-only
isis network point-to-point
router isis UNDERLAY
net 10.0000.0000.0002.00
is-type level-2-only
大きく間違いはないようです。
show isis databaseでisisの状態を確認します。
RT-02#sh isis database
Tag UNDERLAY:
IS-IS Level-2 Link State Database:
LSPID LSP Seq Num LSP Checksum LSP Holdtime/Rcvd ATT/P/OL
RT-01.00-00 0x00000004 0x89A7 899/1199 0/0/0
RT-02.00-00 * 0x00000003 0x748F 900/* 0/0/0
一応、対向のルータは見えています。
次にshow isis protcolを見てみましょう
RT-02#sh isis protocol
Tag UNDERLAY:
IS-IS Router: UNDERLAY (0x10000)
System Id: 0000.0000.0002.00 IS-Type: level-2 lsp-mtu: 1492
Manual area address(es):
10
Routing for area address(es):
10
Interfaces supported by IS-IS:
GigabitEthernet2 - IPv6
Loopback0 - IPv6
Redistribute(CLNS):
static (on by default)
Distance for L2 CLNS routes: 110
RRR level: none
Generate narrow metrics: level-1-2
Accept narrow metrics: level-1-2
Generate wide metrics: none
Accept wide metrics: none
Parallel flooding: suppressed
Adjacency stagger: disabled
IP/IPv6 Redistribution Limit: 10000(Default) Threshold: 75%
L2 Redistributed routes: 0
よく見ると、metricがnarrowになっていることがわかります。
RT-02では明示的にmetric-styleの設定を入れていません。
ここまででわかったことは、RT-02からRT-01は一応、見えてはいる。
しかし、isisのneighborは張れていない
RT-02のmetric-styleはnarrowである。
ここで、RT-01でshow isis protcolを見てみましょう
RT-01# sh isis protocol
ISIS process : UNDERLAY
Instance number : 1
UUID: 1090519320
Process ID 15726
VRF: default
System ID : 0000.0000.0001 IS-Type : L2
SAP : 412 Queue Handle : 12
Maximum LSP MTU: 1492
Stateful HA enabled
Graceful Restart enabled. State: Inactive
Last graceful restart status : none
Start-Mode Complete
BFD IPv4 is globally disabled for ISIS process: UNDERLAY
BFD IPv6 is globally disabled for ISIS process: UNDERLAY
Topology-mode is base
Metric-style : advertise(wide), accept(narrow, wide)
Area address(es) :
10
Process is up and running
VRF ID: 1
Stale routes during non-graceful controlled restart
Enable resolution of L3->L2 address for ISIS adjacency
SRTE: Not registered
OAM: Not registered
SR IPv4 is not configured and disabled for ISIS process: UNDERLAY
SR IPv6 is not configured and disabled for ISIS process: UNDERLAY
SRv6 is disabled for ISIS process: UNDERLAY
Interfaces supported by IS-IS :
loopback0
Ethernet1/1
Topology : 0
Address family IPv4 unicast :
Number of interface : 0
Distance : 115
Default-information not originated
Address family IPv6 unicast :
Number of interface : 2
Distance : 115
Default-information not originated
Topology : 2
Address family IPv4 unicast :
Number of interface : 0
Distance : 115
Default-information not originated
Address family IPv6 unicast :
Number of interface : 0
Distance : 115
Default-information not originated
Level1
No auth type and keychain
Auth check set
Level2
No auth type and keychain
Auth check set
L1 Next SPF: Inactive
L2 Next SPF: Inactive
Attached bits
MT-0 L-1: Att 0 Spf-att 0 Cfg 1 Adv-att 0
MT-0 L-2: Att 0 Spf-att 0 Cfg 1 Adv-att 0
RT-01のmetric-styleはwideですね。
ということで、RT-02のmetric-styleをwideもしくはtransitionに変更すれば、pingが通るようになります。
なお、transitionの場合は、narrowとwideどちらも使えるようになりますが、NX-OSのデフォルト値(明示的に設定しない場合の値)はwideなので、wideの設定をすればOKです。なお、IOS-XEのデフォルト値はnarrowです。
さいごに
どうでしょうか?難しかったですか?
RT-01側のみ設定変更可能な場合は、RT-01のmetric-styleをtransitionにする必要がありました。
ルータが2台しかいないので、今回のmetric値は10になり、narrowだろうが、wideだろうが関係ありませんが、ここが一致していないとneighborを貼ることができません。