本サイトはPRが含まれています。
-
VLAN IDは1~4094
-
別の場所で同じVLAN ID使ってもOK
-
VLAN ID毎にルールを作っておくと分かりやすい
-
1VLAN=1セグメントが分かりやすい
-
ネットワーク機器間はtrunkが標準
実際にスイッチのVLAN設計をする事になったのだけど、どのように考えれば良いのかしら?とりあえずVLAN1,2,3と割り振っていこうかな。
チャーチルさん
ポン先生
VLANに限らないけど設計は最初が肝心!今だけの話ではなく今後の設計や運用にも関わってくるからちゃんと設計する必要があるよ。
本記事ではVLAN設計の基本について解説します。設計方針自体は各顧客やSIerによってある程度決まっている部分があると思いますが、この記事ではそういった縛りは無し、ゼロベースで設計する場合を前提に私の独断と偏見も交えて幾つかポイントをまとめます。
なお、VLANの基礎については事前にこの記事を読むことをオススメします。
HAL校長
目次
VLAN設計のポイント
始めに設計のポイントをまとめておきます。次章以降で詳細に触れていきます。
- VLAN IDは1~4094
- 別の場所で同じVLAN ID使ってもOK
- VLAN ID毎にルールを作っておくと分かりやすい
- 1VLAN=1セグメントが分かりやすい
- ネットワーク機器間はtrunkが標準
基本的に上記はゼロからの環境構築を想定しています。例えば既存の環境は既に有り単純なスイッチ増設であれば既存ルールに従って設定することになります。
場合によっては既存環境の設計やルールが分かりにくいケースもありますが、目の前のやるべき作業をこなす話と、既存設計が分かりにくい・変えたいという話はまたベクトルが変わって来るのでそこは別物として見てもらえればと^^
VLAN IDは1~4094
まず、VLANはIEEE802.1Qという規格で規定されています。VLANの番号のことをVLAN IDと言いますがこのIEEE802.1QではVLAN IDは1-4094と決められています。つまりVLAN1, VLAN2,・・・VLAN4094ということです。
ただし、機種によっては利用可能なVLAN IDや個数に制限があります。例えばCiscoの場合、VLAN1002-1005は予約されており削除ができない、ローエンドモデル(L2スイッチの下位機種)だと64個しか利用できないといった制限があります。
このあたりはメーカ、機種、OS、ライセンス等によるので事前に確認が必要です。機器へのconfig投入や本番導入時に「あ、」とならないように注意したい所です。 また、以外と「VLAN0は利用不可」というのもポイントですね。後述しますがセグメントとVLAN IDを一致させようと思うとここは少しネックになります。しかし仕様は仕様なので受け入れた上で設計するしか有りません。
別の場所で同じVLAN ID使ってもOK
これはネットワークセグメントとは大きく異なるポイントです。要は各拠点で同じVLAN IDを利用できるということです。
例えば拠点Aと拠点Bで同じ192.168.1.0/24を同時に利用することはできませんが、VLAN10を同時に利用することは可能です。
ただしこれには条件があり、間のネットワーク機器でVLAN的に一度切断される必要があります。VLANと言うのは基本的にスイッチ間を接続し延伸するものです。同じ拠点内において、「VLAN xxxはセグメントyyy」という情報はきっちり決まっている必要があります。
これは文字よりも下の構成例を見た方が早いでしょう。左の例ではルータとL3スイッチの間はルーティング用の渡りVLANが一つあります。この区間に入ったら元々のVLAN10の情報は消えます。つまりルーティングされる際に元々のVLAN IDの情報は伝達されないのです。これがVLAN的に切断されている状態です。
一方右の例では1台のL3スイッチ配下にVLAN10があります。VLAN10で利用したいセグメントとして192.168.1.0/24と172.16.1.0/24があるのでポート1とポート2で同じVLAN10だが別セグメントとして設定しました・・・という事は出来ないのです。
この場合、VLAN10=192.168.1.0/24の設定が先に入っているのでどのポートにVLAN10を設定しても192.168.1.0/24となります。もし172.16.1.0/24を利用したい場合はVLAN10以外の空いているVLANを利用する必要があります。
ポン先生
単純に同じVLANで複数のセグメントを利用ということであればセカンダリアドレスを使えばできるけど、同じVLANかつポートによって別セグメントとなると難しいので別VLANを作った方が良いかな。
VLAN ID毎にルールを作っておくと分かりやすい
各拠点同じVLAN IDを利用できるという事は分かりました。という事はVLAN ID毎に用途を決めておき、各拠点同じVLAN IDに統一すると非常に分かりやすい設計になります。
例えば各拠点のVLAN10は有線LAN(PC)、VLAN20は無線LAN(PC)、VLAN30はIP-Phoneといった具合です。どの拠点を見てもVLAN IDで用途が判別できます。
またVLANの特徴として各セグメントの大きさに依存しないという事が挙げられます。例えば同じ有線LAN(PC)のセグメントでも1000人いる本社と10人しかいない事務所ではセグメントの大きさが違いますが、VLANはそれを気にすることなくVLAN IDを決められます。
ポン先生
セグメントの大きさというのは利用可能なIPアドレスの数の事だね。例えばサブネットマスクが/24なら約250台のPCにIPアドレスを振ることが可能、/26だったら約60台。なので/24の方が大きいセグメントと言えるんだ。
まあ実際には大きな拠点になれば有線LAN(PC)のセグメントをエリアやフロア毎に分けるので一つではありません。その場合はVLANも複数になるので例えばVLAN100番台は有線LAN(PC)用、VLA200番台は無線LAN(PC)といったルールにしておけば小規模拠点~大規模拠点まで対応可能です。
このあたりは正解はなく最初にどういったルールで作るかの決めの問題になります。上記は用途⇔VLAN IDの紐づきですが、セグメント⇔VLAN IDの紐づきといったパターンもあります。例えば192168.100.0/24だった場合は第3オクテットの100を取ってVLAN100にすると言った具合です。
ただしこのルールは各ケース毎に細かくルール決めする必要があります。実際全てのセグメントが都合良く/24では無いので、192168.100.0/25と192168.100.128/25に分かれていたらどうするのか? 192.168.0.0/24はどのようにVLAN IDを決めるのか?(VLAN0は使えない)等々セグメントを決める際に迷う部分が出てきます。逆に最初のルール作りがしっかりしている場合、セグメントが決まれば自動的にVLAN IDも決まるため楽ではあります。
ここでは幾つかVLANの決め方の例を提示しましたが、決してこれ自体が絶対にオススメという話ではありません。あくまでも各拠点でルールが統一されている事が重要です。
システムと言うのは時が経てば運用メンバーも変わりますし、構築ベンダーが変わることもあります。その際にぱっと見でどういった設計・ルールなのか把握しやすいというのは設計にかかる時間の短縮や作業ミスの防止に繋がります。
どうしてもやむを得ない場合もありますが、後々の人のためを考えると基本的には“例外”は作らない方が無難です。
場合によっては全拠点統一ルールが難しい事もあるから例えば大規模拠点、中規模拠点、小規模拠点とグループ分けしてルールを作る企業もあるね。
チャーチルさん
ポン先生
最初のルール作りはホントに重要だけど最初にガチガチに固めすぎても後で都合が悪くなることも有るね。最初はある程度だけ決めておいて、拠点やシステムが増えてきて実態が掴めてきたらルールを改定するというのも手だね。
1VLAN=1セグメントが分かりやすい
基本的には1VLAN=1セグメントとすることをオススメします。1VLANに複数のセグメントを割り当てるアドレスをセカンダリアドレスと言いますが、セカンダリアドレスは一般的に管理や機器の操作にクセがあります。
もちろん正しく扱えばちゃんと通信できますし、メーカが正式に実装している機能なので問題無いですが、世の中の設計は1VLAN=1セグメントとしているケースの方が多いです。そのため慣れない人が扱おうとすると見逃す事もありますし、やはり設計としては分かりにくいです。認識漏れや作業事故を防ぐ意味でも1VLAN=1セグメントとしておいた方が無難でしょう。
因みにこれは個人的な印象ですが大昔に設計された機器でセカンダリアドレスを利用している印象が強いです(ホントに個人的な印象だけですが。。。)。
セカンダリアドレスを使う理由としては利用可能なVLAN数が少ない機器があったためVLAN数の節約のために使った(後に利用可能なVLAN数が多い機種にリプレイスされたが設定自体は既存踏襲している)、特殊なデバイスの仕様に合わせてネットワークを設計した(複数のIPアドレスを使うがVLANタグは使えないなど)等考えられますが、最近のデバイスやネットワーク機器の事情を考えればどうしてもセカンダリアドレスを利用しなければならないケースは昔よりは少ないかと思います。
VLAN数=セグメント数という認識でいると見落としはありそうね。場合によっては1VLANに対してセカンダリアドレスが2つも3つもある場合が有るので注意が必要ね。
チャーチルさん
ネットワーク機器間はtrunkが標準
例えばL2スイッチ⇔L2スイッチ間などは最初からtrunkとしておくケースが多いです。構築当初は1VLANしかなく、accessで問題無いとしてもtrunkで設定しておいた方が良いです。
これは後でVLANが増えた時にaccess→trunkに設定変更する手間が増えるためです。設定変更する時は一時的にスイッチ間のポートがaccess⇔trunkになる瞬間がありますが、この時は通信できなくなります。
特にリモートで設定変更している時に設定を変えたらログインできなくなった、なんてことでは目も当てられないので、そういった心配を無くすためにも最初からtrunkの方が無難です。もちろんtrunkだから作業事故が無いという訳ではないですが、後々になって修正しにくいポイントなので覚えておきましょう。
一方、ここはaccessでも良いだろうと言う点もあります。例えば以下構成のようなコアスイッチ(L3スイッチ)とルータの間のポートです。
この例ではクライアントのセグメントはコアスイッチ配下に収容されており、全ての通信はコアスイッチでルーティングされルータに転送されます。つまり直接PCからルータまでL2で通信しません。仮にクライアントセグメントが増えた場合、ルータから見るとセグメントは増えるがVLAN IDを認識している訳では無いのでaccessで問題無いのです。
※ルーティングされる際にVLAN ID情報は消滅する。
因みにコアスイッチがL2スイッチで、クライアントセグメントはルータが直接収容している構成の場合は、もちろんルータ⇔コアスイッチ間はtrunkにする必要があるのでそこはお間違いなきように(_ _)
ネットワークエンジニアを目指すならCCNAを取得しよう!
CCNAとはCisco社のメーカ認定資格です。CCNAの取得はネットワークエンジニアの基本的な知識やCisco製品の理解の証明になります。
特定メーカの資格で役に立つの?実際には他メーカの機種も扱うんじゃないの?
チャーチルさん
ポン先生
確かに業務上Cisco以外の機器を扱うことはあるだろうけど、最初にCiscoを勉強しておくと他の機器も理解しやすくなるんだ。
Ciscoは数あるネットワーク機器メーカの内の1社ですがディファクトスタンダードと言われています。つまり業界標準として位置付けられており、他メーカ機種でもCiscoのコマンドライン等を参考にしている事が多いです。そのため初見の機器でもCiscoと設定方法が似ており、「大体は分かる」なんてケースも多々あります。ネットワークエンジニアとしてはCiscoの学習はむしろ必須と言えるレベルでしょう。
また、Ciscoの資格と言っても独自仕様や製品の話だけでなく、ネットワークの一般的な知識も必要です。Cisco製品と言えベースはネットワークの標準規格に基づいて設計されており、CCNA取得でネットワークの一般的な知識も習得可能です。
上記理由からCCNAは非常におすすめの資格です。ネットワークエンジニアとして本格的に活躍したいのであれば是非チェックすべきでしょう。
【CCNAとは】難しい?勉強は?Cisco資格の登竜門 基本解説
まとめ
-
VLAN IDは1~4094
-
別の場所で同じVLAN ID使ってもOK
-
VLAN ID毎にルールを作っておくと分かりやすい
-
1VLAN=1セグメントが分かりやすい
-
ネットワーク機器間はtrunkが標準
今回はVLAN設計の基本についてまとめました。VLANに限った話では無いですが、最初の規模が小さい時はぶっちゃけテキトーな設定でも通信はできてしまいます。しかし拠点規模が大きくなる、拠点数が増える、運用担当者が変わるといったイベントの時にふと思うのです「これ、どうゆうルールで設計されているのだろう?」と。理想は設計書など公式なドキュメントに記載することですが、全内容を網羅的に記載することは現実的に難しい場合もあります。一方、良い設計というのは何となく全体を見れば規則性がおおよそ掴めます。単純なVLAN追加等であればVLAN IDはいくつにするか、隣接機器との接続の設定はどのようにすれば良いかあまり迷うこともありません。後々になって、「もっとこうゆうルールにしておけば良かった」と思うことは多々あります。今ルールを決める(変える)事ができるタイミングであればこの記事の内容を参考に検討してみてください。