京都で開催された 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 インターフェースが存在するため、指定可能な候補として一致することから br
i でも不完全とみなされるのです。と言うことで、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
コメント