タイトルで何のことかわかってしまった人はネットワークの実務経験があると思います。 そういった方には物足りない記事だと思います。
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ポートにたどり着く前に破棄されてしまいます。
そもそも存在しないVLANをallowed設定できてしまうより、 エラーや警告を出すか、allowed設定時に自動で作成する仕様変更が望まれます。
Ciscoとしては、VTPでVLAN情報を複数Switchで同期させる構成が推奨なのですかね。 ちなみに私はVTPを運用しているところを見たことはありません。。