JANOG50 NETCON問題解説 Level2-3

## はじめに
2022/7/13-15に函館で開催されたJANOG50併設イベントNETCONにご参加いただき、
ありがとうございました。
本記事ではJANOG50 NETCON にて出題した「Level2-3」について解説します。

## Level2-3について
### 問題概要
問題文と構成図を以下に記載します。

### 問題文
```
Server1とServer2はとあるビルの中で、別の階層に設置されている。
その後Serverの増設に伴いServer3、Server4が新たに設置された。
ある日、Switch3、Switch4が故障し、それに伴って対象のスイッチを交換した。
故障したSwicthの交換後、それぞれアクセスしたいServerに対して、アクセスができなくなったようだ。
接続したいサーバ同士で接続できるように設定変更をしてほしい。

ゴール
 1. Server1 <---> Server2でping疎通がある（Server1からping 172.16.0.254で応答がある）
 2. Server3 <---> Server4でping疎通がある（Server3からping 172.16.254.254で応答がある）
 ```
### 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/324289/3c971937-9956-9725-89c2-b550850d7062.png)

### 問題説明
Level2-3はLayer 2（L2）関連の問題になっており、
L2のServer間で通信ができないという問題になっていました。

## 問題解説
この問題では下記について誤りがありました。
- Switch3, Switch4で定義すべきVLAN30, VLAN70が定義されていなかった

Level2-3では、合計150点の問題でした。
採点基準は以下となります。
 75点条件: ゴールの 1 あるいは 2 を満たすこと。
150点条件: ゴールの 1 および 2 を満たすこと。

## 問題の解き方
1. Show interface TrunkでTrunk Portに流れているVLAN IDの確認
- Switch3
```
Switch3#show interfaces trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1
Gi0/1       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans allowed and active in management domain
Gi0/0       none
Gi0/1       none

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       none
Gi0/1       none
Switch3#
```
- Switch4
```
Switch4#show interfaces trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1
Gi0/1       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans allowed and active in management domain
Gi0/0       none
Gi0/1       none

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       none
Gi0/1       none
Switch4#
```
この通りVLAN30, 70に関してallowedにはなっていますが、
activeにはなっていないことが確認できます。
```
Port        Vlans allowed on trunk
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans allowed and active in management domain
Gi0/0       none
Gi0/1       none
```
2.VLAN IDの確認
- Switch3
```
Switch3#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/2, Gi0/3, Gi1/0, Gi1/1
                                                Gi1/2, Gi1/3
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  -      -      -        -    -        0      0
1002 fddi  101002     1500  -      -      -        -    -        0      0
1003 tr    101003     1500  -      -      -        -    -        0      0
1004 fdnet 101004     1500  -      -      -        ieee -        0      0
1005 trnet 101005     1500  -      -      -        ibm  -        0      0

Remote SPAN VLANs
------------------------------------------------------------------------------


Primary Secondary Type              Ports
------- --------- ----------------- ------------------------------------------

Switch3#
```
- Switch4
```
Switch4#show vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/2, Gi0/3, Gi1/0, Gi1/1
                                                Gi1/2, Gi1/3
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  -      -      -        -    -        0      0
1002 fddi  101002     1500  -      -      -        -    -        0      0
1003 tr    101003     1500  -      -      -        -    -        0      0
1004 fdnet 101004     1500  -      -      -        ieee -        0      0
1005 trnet 101005     1500  -      -      -        ibm  -        0      0

Remote SPAN VLANs
------------------------------------------------------------------------------


Primary Secondary Type              Ports
------- --------- ----------------- ------------------------------------------

Switch4#
```
この通りVLAN30, 70が未定義になっていることが確認できます。
つまり、VLAN30, 70が未定義のため、
Trunk Interfaceで流れなかったということになります。

3. VLAN IDの定義
下記の設定をSwitch3/4に設定することで、
Trunk InterfaceでVLAN30, 70が流れるようになり問題が解決いたします。
```
ena
configure terminal
vlan 30,70
end
```
VLANが定義されているかは以下で確認できます.
```
Switch3#sh vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/2, Gi0/3, Gi1/0, Gi1/1
                                                Gi1/2, Gi1/3
30   VLAN0030                         active
70   VLAN0070                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
Switch3#
```
```
Switch4#sh vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Gi0/2, Gi0/3, Gi1/0, Gi1/1
                                                Gi1/2, Gi1/3
30   VLAN0030                         active
70   VLAN0070                         active
1002 fddi-default                     act/unsup
1003 token-ring-default               act/unsup
1004 fddinet-default                  act/unsup
1005 trnet-default                    act/unsup
Switch4#
```
VLANを定義したことでTrunk InterfaceにVLANが流れていることが確認できます。
```
Switch3#sh interfaces  trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1
Gi0/1       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans allowed and active in management domain
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       30,70
Gi0/1       30,70
Switch3#
```

```
Switch4#sh interfaces  trunk

Port        Mode             Encapsulation  Status        Native vlan
Gi0/0       on               802.1q         trunking      1
Gi0/1       on               802.1q         trunking      1

Port        Vlans allowed on trunk
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans allowed and active in management domain
Gi0/0       30,70
Gi0/1       30,70

Port        Vlans in spanning tree forwarding state and not pruned
Gi0/0       30,70
Gi0/1       30,70
Switch4#
```

4.解決の確認
ゴールを満たしているかを確認してみます。
```
janoger@Server1:~$ ping 172.16.0.254 -c 3
PING 172.16.0.254 (172.16.0.254) 56(84) bytes of data.
64 bytes from 172.16.0.254: icmp_seq=1 ttl=64 time=39.5 ms
64 bytes from 172.16.0.254: icmp_seq=2 ttl=64 time=37.2 ms
64 bytes from 172.16.0.254: icmp_seq=3 ttl=64 time=37.4 ms

--- 172.16.0.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 37.170/38.014/39.490/1.046 ms
janoger@Server1:~$
```
```
[janoger@Server3 ~]$ ping 172.16.254.254 -c 3
PING 172.16.254.254 (172.16.254.254) 56(84) bytes of data.
64 bytes from 172.16.254.254: icmp_seq=1 ttl=64 time=55.1 ms
64 bytes from 172.16.254.254: icmp_seq=2 ttl=64 time=31.4 ms
64 bytes from 172.16.254.254: icmp_seq=3 ttl=64 time=19.10 ms

--- 172.16.254.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 19.972/35.486/55.104/14.633 ms
[janoger@Server3 ~]$
```
上記の通りゴール1, 2両方を満たした状態になっています。

## おわりに
Level2-3は自動で設定が補完される場合とされない場合があること
show running-configだと確認できない設定の確認方法
を体験いただきたくて出題させていただきました。

Trunk Portの設定した際にVLANが定義されていない場合には、
Access Portの設定（switchport access vlan {VLAN_ID}）と異なり、
自動でVLANが定義されない点に加えて、VLANの定義状態は（cisco IOSの場合）
show running-configで確認不可になっていますので、
running-configが同じでも通信ができない状態になってしまいます。

今回はJANOG50併設イベントのNETCONにご参加いただきありがとうございました。
少しでも楽しんでいただけたのならNETCONスタッフとして幸いです。
また、もしNETCONが開催される際には引き続きNETCONをよろしくお願いいたします。