ほぼ同じ文言で二つの依頼が届きます。すべての VPN クライアントを選んだ VLAN に入れる、あるいは既存の VLAN トランクを VPN 越しに通す。これは別の製品です。OpenVPN に組み込みの VLAN 対応モードは前者のためのスイッチモデルであり、透過的なタグ転送の同義語ではありません。誤って選ぶと、設定済みに見えるのに、本来届けたいフレームを黙って捨てる設計になります。

VLAN 対応モードが実際に作るもの

サーバー専用の TAP 構成で vlan-tagging を有効にすると、デーモンは自身の TAP デバイスと接続した各クライアントを、内部スイッチのポートとして扱います。クライアント側ポートはタグなしで、その VLAN の対応付けはサーバー側でクライアントごとの vlan-pvid コンテキストによって設定され、クライアントが送る内容で決まるわけではありません。モデルの要点はまさにそこです。所属は、認証された相手についてサーバー側が下す判断です。クライアントプロファイル側は、自分がどの VLAN に属するかを知る必要がありません。

サーバーの TAP 側は vlan-accept によって、タグ付きかタグなしの受け入れポリシーを独自に持ちます。そのスイッチ内部の転送は、client-to-client が設定されている場合も含め、一致する VID の間でだけ行われます。したがって、異なる VLAN の二つのクライアントは、どちらもサーバーに接続していても、サーバー経由で互いに到達できません。

このモデルはアクセスポートのモデルです。クライアントから出るフレームはタグなしで、対応付けは身元に基づいてサーバーが課します。ノート PC に自分の通信を自分でタグ付けさせるのは、別の設計を求めることになります。

割り当ては、クライアントが自己申告する値ではなく、認証されたクライアントの身元に従う必要があります。割り当てを省くことは隔離状態でもありません。クライアントは既定の PVID に落ちるため、ccd の記述がないことは中立ではなく、黙ったポリシー判断になります。

透過トランクが代わりに必要とするもの

すでにタグが付いたフレームを端から端まで運ぶには、まず VLAN 対応の処理を切ります。スイッチモデルとタグの保持は二者択一であり、両方を有効にすることは、一方の機能にもう一方の仕事をさせることになります。

無効化は始まりにすぎません。各端点のブリッジと物理スイッチポートは、どの VLAN を許可するか、どのタグをネイティブとするか、タグなしフレームをどう扱うかで合意していなければなりません。制限のないトランクを延長すると、つなぎたかった二つよりもはるかに多くのブロードキャストドメインが露出します。

フレームサイズには独自の予算が要ります。タグ付きイーサネットフレームにカプセル化を加えると、解説記事からコピーされるペイロードの数字より大きくなります。ルーテッドトンネルで問題なかった MTU は、トランク経路が動く証拠にはなりません。

答えを決める三つの条件

第一に、クライアントのプラットフォームはそもそも TAP をサポートするか。Android と iOS は対応せず、macOS の対応も限られるため、モバイル利用者が多い環境では、VLAN をどう並べても TAP の設計はどちらも選べません。ルーテッドの TUN セッションはイーサネットフレームではなく IP パケットを運び、サーバー側の VLAN 設定では変えられません。トポロジーを設計する前に利用環境を確認してください。この条件だけは回避できないからです。そしてスイッチ作業が終わってから気づくのも、たいていこの条件です。

第二に、VLAN を割り当てるのは誰か。「認証した相手に基づいてサーバーが割り当てる」ならスイッチモデルが合います。「すでに存在するタグを使って、既存のスイッチ基盤が割り当てる」ならトランクの設計が必要です。

第三に、ネットワークのどこまでを到達可能にすべきか。スイッチモデルは、各クライアントを構造上ひとつの VLAN に保ちます。トランクの設計はブリッジであり、設定を誤ったブリッジは、分けたままにすべきブロードキャストドメインをつないでしまいます。

選んだ設計を確かめる

許可された VLAN に入るべきクライアントと、入るべきでないクライアントを一つずつ接続し、サーバー自身からではなく実際の端点から試験します。サーバー側で到達できることは、ブリッジやスイッチが存在する証明にはなりますが、クライアントがどの VLAN に落ちたかは証明しません。

ip -d link show tap0
bridge vlan show

サーバー上で、二つ目のコマンドは各ブリッジポートの VLAN 所属を、ポートがタグ付きかどうかも含めて表示します。レイヤー二より上を調べる前に、意図した割り当てと照らし合わせてください。

その配備が二つの設計のどちらを使っているかを記録します。「VLAN 対応」とだけ書いたメモは曖昧で、次の担当者は自分が先に覚えたほうを前提にします。OpenVPN の VLAN リファレンスはスイッチの挙動とクライアントごとのコンテキストを定義しており、どちらのモデルで動いているかを確かめる最短の道です。

関連記事