当カテゴリのポストは、独自の勉強で既にCCIE Blueprintをそれなりに網羅している事が前提の説明が多々含まれています。分からない用語等が出てきた場合は、Workbook等を勉強して戻ってきてください。
L2の勉強はCCIEラボ試験に合格する為には必須です。ある意味では、最重要課題です。
なぜか?
L2は全てのトポロジのベースとなります。TshootもConfigもL2が期待通りの動作をして初めてL3に移る事が出来ます。いくらIGPに精通していたとしても、L2の設定が完璧でなければそもそもIGPに進めないのです。
TshootではL2の切り分け、ConfigではL2の設定完了をいかに早くするか、が合格の鍵を握っていると言っても過言ではありません。
今日の結論先出し:L2を疑う際には、まずはSWの「show spanning-tree」をチェックする。
L2の切り分けが必要な例
例えば、以下の様な簡単なトポロジがあったとします。
R1/R2/R3の各インターフェースのIPは各セグメントの第4オクテットをRouter番号に置き換えてください。例えばR2のSwitch側は192.168.1.2です。
また、前提として以下が成立するとします。(今回はL2の話なので)
- 物理結線は正しい
- L3のレベルの設定は正しい。パケットのフィルタリングもされていない。
このトポロジでR1からR2へ、またR1からR3へPINGが飛ばないとします。
R1#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R1#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) R1#
前提を信じると、L2が問題の可能性が高いですね。皆さんは何をチェックしますか?
- 各機器のsh runでインターフェースの設定を確認する。
- SWでsh vlan/sh int trunk当たりを実施してvlanの状態を確認する。
いずれも、間違いではありませんね。1でも2でも間違いを見つける事が出来る可能性があります。でも、仮に接続されているルーターが、今回の例みたいに3つではなく30台とか非常に多い場合はどうでしょう?30のルーターに対してsh runして確認をしていると時間がいくらあっても足りません。
そんな時はまずはSWでsh spanning-treeです
なぜか?
仮にSW側が正常に各インターフェースに対してL2通信を許可していると、sh spanning-treeで必ず該当インターフェースが表示されるはずだからです。Access/Trunkどちらでもです。仮にSWの対向ルータのインターフェースがダウンしていてもです。
例えば今回はこんな感じです。
SW1#sh span vlan 100 VLAN0100 Spanning tree enabled protocol ieee Root ID Priority 32868 Address aabb.cc00.1500 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32868 (priority 32768 sys-id-ext 100) Address aabb.cc00.1500 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Et0/0 Desg FWD 100 128.1 Shr SW1#
どうでしょう?この時点でもう変ですよね?e0/1,e0/2が表示されていません。これだけで、少なくともSW1の設定がおかしいことに気づくはずです。SW1のe0/1,e0/2を直さないと、絶対に通信出来ません。
sh runはこの後で良いのです。やってみましょう。まずはR2側のインターフェースです。
SW1#sh run int e0/1 Building configuration... Current configuration : 93 bytes ! interface Ethernet0/1 switchport access vlan 10 switchport mode access duplex auto end SW1#
アクセスポートのVLANが「100」ではなく「10」になっていますね。これを直す必要がある訳です。
(実は前のコマンドを「sh span vlan 100」ではなく「単純にsh span」としたら、vlan10の箇所にe0/1が見つかるのですが、今回はsh span関連の説明がしたかったので、あえて「sh span vlan 100」としました)
直します。
SW1#conf t Enter configuration commands, one per line. End with CNTL/Z. SW1(config)#int e0/1 SW1(config-if)#switch acc vlan 100 SW1(config-if)#do sh run int e0/1 Building configuration... Current configuration : 94 bytes ! interface Ethernet0/1 switchport access vlan 100 switchport mode access duplex auto end SW1(config-if)#do sh span vlan 100 VLAN0100 Spanning tree enabled protocol ieee Root ID Priority 32868 Address aabb.cc00.1500 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32868 (priority 32768 sys-id-ext 100) Address aabb.cc00.1500 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Et0/0 Desg FWD 100 128.1 Shr Et0/1 Desg LRN 100 128.2 Shr SW1(config-if)#
VLAN100のspanning-treeグループにe0/1が表示されましたね。これでR2へはOKなはずです。
e0/2の設定を見てみましょう。
SW1(config-if)#do sh run int e0/2 Building configuration... Current configuration : 165 bytes ! interface Ethernet0/2 switchport access vlan 100 switchport trunk encapsulation dot1q switchport trunk allowed vlan 20 switchport mode trunk duplex auto end
お、アクセスポートの場合は正しいvlanを設定していますが、trunkの設定が間違っていますね。vlan20しか送らない設定となっています。
直しましょう。(これをTshootと仮定して、vlan20を消さずに100を追加します)
SW1(config-if)#int e0/2 SW1(config-if)#switch trunk allow vlan add 100 SW1(config-if)#do sh run int e0/2 Building configuration... Current configuration : 169 bytes ! interface Ethernet0/2 switchport access vlan 100 switchport trunk encapsulation dot1q switchport trunk allowed vlan 20,100 switchport mode trunk duplex auto end SW1(config-if)#do sh span vlan 100 VLAN0100 Spanning tree enabled protocol ieee Root ID Priority 32868 Address aabb.cc00.1500 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32868 (priority 32768 sys-id-ext 100) Address aabb.cc00.1500 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Et0/0 Desg FWD 100 128.1 Shr Et0/1 Desg FWD 100 128.2 Shr Et0/2 Desg LIS 100 128.3 Shr SW1(config-if)#
はい、対象のインターフェース全てがspanning-treeグループに入りましたね。念のためPINGしましょうか。
R1#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms R1#ping 192.168.1.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds: .!!!! Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms R1#
OKです!
いかがでしたでしょうか?ちなみに、R3についてはもちろんSWのsh int trunkで見つける事が出来たと思うのですが、やはり台数が大量になった場合は全sh int trunkをする事は非効率です。
まとめ
CCIEラボ試験で仮にL2が問題だと思ったら、とりあえず接続しているSWにてsh spanning-tree(短縮してsh span)しましょう。SWに問題なければ対象のインターフェースが全てVLANのspanning-treeに入っているはずです。
これはconfigで自分のミスの確認にも非常に有効ですよね。
もちろん、これだけだとルーター側の設定(今回の例だとR3のサブインターフェースのencapが間違っている等)は見つけれません。それはSW側が問題ない事を切り分けた後でよいでしょう。
CCIEラボ試験ではスピードが命です。問題の意図を瞬時に把握し、原因の切り分けを行う事が正義です。いくら確認コマンドを沢山知っていても、時間がかかるものは間違いです。(確認コマンドを沢山知っているのは、当たり前っていう世界です)
CCIEラボ対策をしている方は、常に効率性を意識しながら勉強しましょう。
コメント
ありがとうございます。参考になりました。たしかにsh spa vlanは便利ですね。
こちらこそ、訪問してくれてありがとうございます。
お役にたてて良かったです。