技術を楽しもう!

IT(ネットワーク)業界を中心に、仕事や趣味等、色々な技術を記録します。

VLAN追加後に通信ができない

https://www.pakutaso.com/shared/img/thumb/IMARIC20160805210023_TP_V.jpg

タイトルで何のことかわかってしまった人はネットワークの実務経験があると思います。 そういった方には物足りない記事だと思います。

VLANを追加した後に通信ができないというのは、 2パターン思いつきます。 いずれもCiscoのSwitch(Catalyst / Nexus)のTrunkポートで発生する事象です。

add キーワード漏れ

これはネットワークエンジニアとして勤務していれば、 誰もが経験したか、聞いたことがあると思います。

事前はこのような状態だとします。 allowed vlan は、そのインタフェースで通信を許可するVLANを指定する設定です。

interface GigabitEthernet1/0/1  
  switchport trunk allowed vlan 100,200

VLAN300の許可を追加するために下記を投入します。

interface GigabitEthernet1/0/1 
  switchport trunk allowed vlan 300

すると最後の設定が上書きされてVLAN300のみを許可する設定になります。 なので、もともと設定されていたVLAN100と200は通信できなくなってしまいます。 これを防ぐには、下記のように投入します。

interface GigabitEthernet1/0/1  
  switchport trunk allowed vlan add 300

上記なら既存のVLAN100、200は残したまま、 VLAN300が追加されるので、通信断が起きることはありません。 削除したいときはadd の代わりに remove です。

または、下記のように投入しても良いですが、 VLANが多くなると転記ミスが発生するので、addの方がおすすめです。

interface GigabitEthernet1/0/1  
  switchport trunk allowed vlan 100,200,300

allowedの意味を勘違い

こちらは若手に結構多い印象です。 VLANを作成せずに、allowed vlan設定を追加しただけで、 「追加したのに接続できない!」とプチ騒ぎになることがあります。

VLANを使うには、そのVLAN番号がデータベースに存在している必要があるので、 前述の状況なら、下記のコマンドも投入する必要があります。

vlan 300

上記は指定した番号のVLANをデータベースに登録するコマンドです。 allowed vlan 設定は、通過しようとするデータのVLAN番号を見て、 allowedに含まれていれば通過させるという設定です。

送られてきたデータに付与されたVLAN番号がデータベースに存在しなければ、 そもそもそのSwitchに流入できないので、 そのtrunkポートにたどり着く前に破棄されてしまいます。

f:id:takashi-tobey:20200208135525p:plain

そもそも存在しないVLANをallowed設定できてしまうより、 エラーや警告を出すか、allowed設定時に自動で作成する仕様変更が望まれます。

Ciscoとしては、VTPでVLAN情報を複数Switchで同期させる構成が推奨なのですかね。 ちなみに私はVTPを運用しているところを見たことはありません。。