JANOG55 NETCON 問題解説(現地問題5)

イベント参加

京都で開催された JANOG55 盛況でしたね。参加者が 4000 人超えるとかすごいことになってるなって思いました。

さて、今回私は NETCON 実行委員として参加して、オンライン問題1問 / 現地問題3問を作成しました。ここでは現地問題5について解説していこうと思います。

問題

問題はこう言うものでした。

問題文

学習のために RT-01 と RT-02 を接続して設定を確認していたがうまくいかない。なぜだろう。

達成条件

RT-01 の 192.168.55.1 から RT-02 の 192.168.55.2 に対して通信ができること。

ping 192.168.55.2 source 192.168.55.1

制約

セカンダリアドレスを追加するなどのアドレス割り当てを変更することは禁止です。

事象の確認

とりあえず疎通するのかみてみます。

RT-01#ping 192.168.55.2 source 192.168.55.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.55.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.55.1
.....
Success rate is 0 percent (0/5)

通らないのでアドレス割り当てを確認すると、RT-01 / RT-02 どちらも VLAN 3 インターフェースにアドレスが割り当てられていますが、状態としては down / down になっていることが確認できます。

RT-01#show ip interface brief | i 192.168.55
Vlan3 192.168.55.1 YES TFTP down down

RT-02#show ip interface brief | i 192.168.55
Vlan3 192.168.55.2 YES TFTP down down

administratively down ではないので、設定でインターフェースが無効にされているわけではなさそうです。ただし、インターフェースの Status / Protocol どちらも down になっているので、レイヤ3(IP) より下のレイヤに問題がありそうです。

原因調査

レイヤ3より下ということはレイヤ2(データリンク層)またはレイヤ1(物理層)になりますが、ランプ状態を見るとグリーン点灯になっているため、レイヤ1には問題はなさそうです。と言うことはレイヤ2に問題がありそうだと絞り込めます。IPアドレスが割り当てられているインターフェースが SVI(Switched Virtual Interface) であることから、VLAN に関係がありそうかな?と予想して進めてみます。

では VLAN の設定はどうなっているのでしょうか?

RT-01#show vlan-switch

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0, Fa1, Fa2, Fa3, Fa4, Fa5
                                                Fa6, Fa7
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1    enet  100001     1500  -      -      -        -    -        1002   1003
1002 fddi  101002     1500  -      -      -        -    -        1      1003
1003 tr    101003     1500  1005   0      -        -    srb      1      1002
1004 fdnet 101004     1500  -      -      1        ibm  -        0      0
1005 trnet 101005     1500  -      -      1        ibm  -        0      0


RT-02#show vlan-switch

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0, Fa1, Fa2, Fa3, Fa4, Fa5
                                                Fa6, Fa7
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1    enet  100001     1500  -      -      -        -    -        1002   1003
1002 fddi  101002     1500  -      -      -        -    -        1      1003
1003 tr    101003     1500  1005   0      -        -    srb      1      1002
1004 fdnet 101004     1500  -      -      1        ibm  -        0      0
1005 trnet 101005     1500  -      -      1        ibm  -        0      0

おや?どちらも VLAN1, 1002-1005 しかないですね。Vlan3 インターフェースがあるのに VLAN 3 が存在しなかったら通信できません。少なくとも VLAN 3 を作成する必要はありそうです。

対処方法

VLAN 3 が存在しないのが問題に見えるので、双方で作成してみます。

RT-01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-01(config)#vlan 3
RT-01(config-vlan)#end
RT-01#
*Jan 29 14:13:08.299: %SYS-5-CONFIG_I: Configured from console by console
RT-01#show vlan-switch id 3

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
3    VLAN0003                         active

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
3    enet  100003     1500  -      -      -        -    -        0      0
RT-01#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.1    YES TFTP   down                  down

RT-02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-02(config)#vlan 3
RT-02(config-vlan)#end
RT-02#
*Feb  6 11:57:09.163: %SYS-5-CONFIG_I: Configured from console by console
RT-02#show vlan-switch id 3

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
3    VLAN0003                         active

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
3    enet  100003     1500  -      -      -        -    -        0      0
RT-02#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.2    YES TFTP   down                  down

ちゃんと作ったのにダメですね…と思ったら、公式ドキュメントにはこんなことが書いてあります。

物理ポートと関連付けられていない場合、SVI を作成してもアクティブにはなりません。

確かに、show vlan-switch id 3 の出力には VLAN 3 に紐づくポートはなさそうです。念のため別のコマンドでも確認してみましょう。

RT-01#show interface status

Port    Name               Status       Vlan       Duplex Speed Type
Fa0                        notconnect   1            auto    auto 10/100BaseTX
Fa1                        connected    1          a-full   a-100 10/100BaseTX
Fa2                        notconnect   1            auto    auto 10/100BaseTX
Fa3                        notconnect   1            auto    auto 10/100BaseTX
Fa4                        notconnect   1            auto    auto 10/100BaseTX
Fa5                        notconnect   1            auto    auto 10/100BaseTX
Fa6                        notconnect   1            auto    auto 10/100BaseTX
Fa7                        notconnect   1            auto    auto 10/100BaseTX

RT-01#show interface status

Port    Name               Status       Vlan       Duplex Speed Type
Fa0                        notconnect   1            auto    auto 10/100BaseTX
Fa1                        connected    1          a-full   a-100 10/100BaseTX
Fa2                        notconnect   1            auto    auto 10/100BaseTX
Fa3                        notconnect   1            auto    auto 10/100BaseTX
Fa4                        notconnect   1            auto    auto 10/100BaseTX
Fa5                        notconnect   1            auto    auto 10/100BaseTX
Fa6                        notconnect   1            auto    auto 10/100BaseTX
Fa7                        notconnect   1            auto    auto 10/100BaseTX

どのポートも VLAN 1 が割り当てられています。これではアクティブにならないのは当然ですね。と言うことで、素直にやればこうです。

conf t
interface Fa1
 switchport access vlan 3

実際にやってみましょう。

RT-01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-01(config)#interface Fa1
RT-01(config-if)#switchport access vlan 3
RT-01(config-if)#end
RT-01#
*Jan 29 14:20:36.159: %SYS-5-CONFIG_I: Configured from console by console
*Jan 29 14:20:36.407: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
*Jan 29 14:21:06.423: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed state to up

RT-02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-02(config)#interface Fa1
RT-02(config-if)#switchport access vlan 3
RT-02(config-if)#end
RT-02#
*Feb  6 12:04:37.099: %SYS-5-CONFIG_I: Configured from console by console
*Feb  6 12:04:37.343: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to down
*Feb  6 12:05:07.359: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed state to up

%LINEPROTO-5-UPDOWN のメッセージで Vlan3 インターフェースが up になったのが確認できました。コマンドでも確認してみましょう。

RT-01#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.1    YES TFTP   up                    up

RT-01#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.1    YES TFTP   up                    up

これで達成条件の通り ping も飛ぶようになりました。

RT-01#ping 192.168.55.2 source 192.168.55.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.55.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.55.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

なお、別解として以下の回答もOKです。この回答は私はみていないので、どなたもやってない…?

interface Fa1
 switchport mode trunk

この設定に変更してみます。

RT-01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-01(config)#interface Fa1
RT-01(config-if)#no switchport access vlan 3
*Jan 29 14:43:17.791: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed
RT-01(config-if)#switchport mode trunk
RT-01(config-if)#end
RT-01#
*Jan 29 14:43:31.819: %SYS-5-CONFIG_I: Configured from console by console
*Jan 29 14:43:32.187: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to down
*Jan 29 14:43:34.699: %DTP-5-TRUNKPORTON: Port Fa1 has become dot1q trunk
*Jan 29 14:43:35.215: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to up
*Jan 29 14:44:05.211: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
*Jan 29 14:44:05.215: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed state to up
RT-01#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.1    YES TFTP   up                    up

RT-02#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-02(config)#interface Fa1
RT-02(config-if)#no switchport access vlan 3
*Feb  6 12:27:18.735: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed
RT-02(config-if)#switchport mode trunk
RT-02(config-if)#end
RT-02#
*Feb  6 12:27:32.763: %SYS-5-CONFIG_I: Configured from console by console
*Feb  6 12:27:33.131: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to down
*Feb  6 12:27:35.643: %DTP-5-TRUNKPORTON: Port Fa1 has become dot1q trunk
*Feb  6 12:27:36.159: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1, changed state to up
*Feb  6 12:28:06.155: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan1, changed state to up
*Feb  6 12:28:06.159: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan3, changed state to up
RT-01#show ip interface brief vlan3
Interface                  IP-Address      OK? Method Status                Protocol
Vlan3                      192.168.55.1    YES TFTP   up                    up

Vlan 3 インターフェースが up/up になっているので、もちろん ping 疎通も問題ありません。

RT-01#show interfaces trunk

Port      Mode         Encapsulation  Status        Native vlan
Fa1       on           802.1q         trunking      1

Port      Vlans allowed on trunk
Fa1       1-4094

Port      Vlans allowed and active in management domain
Fa1       1,3

Port      Vlans in spanning tree forwarding state and not pruned
Fa1       1,3
RT-01#ping 192.168.55.2 source 192.168.55.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.55.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.55.1
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 1/1/1 ms

NG回答例

いくつか、NG回答として不正解にさせていただいたものがあります。それぞれ以下のような判断からです。

  • Gi0 が接続されているので、それぞれのアドレスを Vlan 3 → Gi0 に付け替えました!
    → 制約に「アドレス割り当てを変更することは禁止」があるのでNGです。
  • LAG を組んでそこを通せばいける気がする…
    → 設定できるかを確認してみると、出来なさそうですね。
RT-01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RT-01(config)#interface Fa1
RT-01(config-if)#chann?
% Unrecognized command
RT-01(config-if)#exit
RT-01(config)#interface po?
% Unrecognized command

補足

この問題に挑戦した方は、コマンド体系の違いに悩まれたのではないでしょうか。この問題に使用した Cisco 892J はルータでありながらスイッチとして動作するポートも持つモデルで、ISDN 接続に利用できる BRI インターフェースも備えています。そのため、通常のスイッチで使うコマンドが通ったり通らなかったり、普段使うコマンドがエラーになったりすることがあります。おそらくこの辺りが該当するかと思います。

RT-01#show vlan
% Ambiguous command:  "show vlan"

RT-01#sh ip int br
% Incomplete command.

「いつも使えるコマンドが使えない!何でだ!?ないのか?」とパニックになったかもしれませんが、メッセージをよく見ると対処が見えます。

  • % Ambiguous command: “show vlan” :「Ambiguous = あいまいな」と言う意味なので、「これではどのコマンドか特定できない」と言うメッセージ
  • % Incomplete command.:「Incomplete = 不完全な」と言う意味なので、「入力が不足している」と言うメッセージ

です。もし存在しないコマンドを叩いたらこういう感じになります。

RT-01#show ip int what
                  ^
% Invalid input detected at '^' marker.

^ マーカーの位置で不正な入力を検出」が出た時が「入力したコマンドがない」時です。じゃあどうすれば良いのか。CLI には心強い味方「?」と TAB キー補完があります。これを使えばそのコマンドがあるのかないのか、どこまでなら補完が効くのかをみながらそれっぽいコマンドを探せます。

show vlan の場合は、? 入力で出てくる候補の中からそれっぽいの(vlan-range は違いそう)をそれぞれ叩くと、求めてる出力が得られたので show vlan-switch だなとわかります。

RT-01#show vlan?
vlan-range  vlan-switch  vlans ←vlan 以降のマッチする候補が出てくる

RT-01#show vlans

No Virtual LANs configured.

RT-01#show vlan-switch

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0, Fa2, Fa3, Fa4, Fa5, Fa6
                                                Fa7
3    VLAN0003                         active    Fa1
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup

VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1    enet  100001     1500  -      -      -        -    -        1002   1003
3    enet  100003     1500  -      -      -        -    -        0      0
1002 fddi  101002     1500  -      -      -        -    -        1      1003
1003 tr    101003     1500  1005   0      -        -    srb      1      1002
1004 fdnet 101004     1500  -      -      1        ibm  -        0      0
1005 trnet 101005     1500  -      -      1        ibm  -        0      0

では sh ip int br の場合は?

RT-01#sh ip int br[TABキー押下]
RT-01#sh ip int bri? ← bri まで補完されたのでここで ? 入力
BRI  brief

なんと、いつも使う brief オプション以外に BRI が候補として出てきました。これは前述した通りこのモデルに BRI インターフェースが存在するため、指定可能な候補として一致することから bri でも不完全とみなされるのです。と言うことで、brie まで入れると…

RT-01#sh ip int brie
Interface                  IP-Address      OK? Method Status                Protocol
BRI0                       unassigned      YES unset  administratively down down
BRI0:1                     unassigned      YES unset  administratively down down
BRI0:2                     unassigned      YES unset  administratively down down
FastEthernet0              unassigned      YES unset  down                  down
FastEthernet1              unassigned      YES unset  up                    up
FastEthernet2              unassigned      YES unset  down                  down
FastEthernet3              unassigned      YES unset  down                  down
FastEthernet4              unassigned      YES unset  down                  down
FastEthernet5              unassigned      YES unset  down                  down
FastEthernet6              unassigned      YES unset  down                  down
FastEthernet7              unassigned      YES unset  down                  down
FastEthernet8              unassigned      YES unset  administratively down down
GigabitEthernet0           unassigned      YES unset  up.                   up
Vlan1                      unassigned      YES unset  down                  down
Vlan3                      192.168.55.1    YES TFTP   up                    up

コマンドが通りました。Incomplete は、おそらく「BRI0」の「0」が不足していると言うメッセージだったと思われます。brief オプションよりもインターフェース名(BRI)の方が優先されているのかな?

このように、普段使用するコマンドが通らなくても、落ち着いてヘルプや補完を利用することで適切なコマンドを探すことができるので、トラブルシューティングの際は落ち着いてCLI操作に取り組みましょう。

コンフィグ

注意:この設定を入れる前に、running-config からの VLAN 削除および vlan.dat を消してから適用してください。手順としては以下の流れが良いかと思います。

#conf t
(config)#no vlan 1-4094
(config)#end
#delete /force flash:vlan.dat

RT-01

version 15.7
!
hostname RT-01
!
interface GigabitEthernet0
 no shutdown
!
interface Vlan3
 ip address 192.168.55.1 255.255.255.0

RT-02

version 15.7
!
hostname RT-02
!
interface GigabitEthernet0
 no shutdown
!
interface Vlan3
 ip address 192.168.55.2 255.255.255.0

コメント

タイトルとURLをコピーしました