ネットワークの「関所」を一本化する:Router-on-a-Stickの魔法
こんにちは!インフラエンジニアとして日々パケットの海を泳いでいる主筆の「中の人」です。
ネットワークを学び始めると必ずぶつかる壁、それが「VLAN間の通信」です。スイッチの中で綺麗に分断されたVLAN同士が、なぜか話せない。この「孤立した島々をどう繋ぐか?」という問いに対する、最も古典的で、かつ今でも現場で重要な役割を果たす「Router-on-a-Stick(ルータ・オン・ア・スティック)」という手法について、今日はじっくりと紐解いていきましょう。
—
1. VLANという「見えない壁」の正体
まず、VLANの基本をおさらいしましょう。VLANとは、スイッチという巨大なオフィスビルの中に「間仕切り」を作って、部署ごとに部屋を分けるようなものです。
- 経理部は「VLAN 10」という部屋
- 営業部は「VLAN 20」という部屋
物理的には同じスイッチに繋がっていても、この間仕切りのおかげで、経理部と営業部は直接会話ができません。セキュリティ的には最高ですが、これでは業務になりませんよね。
この「壁」を越えてパケットを届けるためには、一度部屋の外に出て、「ルーター」という名の関所(ゲートウェイ)を通って行き先を教えてもらう必要があります。
2. Router-on-a-Stick:1本のケーブルに込める知恵
通常、ルーターのポートをVLANの数だけ用意するのは非現実的です。そこで登場するのが「Router-on-a-Stick」です。
「1本の物理的なケーブル(Stick:杖)に、複数のVLANの交通を集約してルーターまで運ぶ」というこの手法、イメージとしては「1本の道路を、色分けしたレーンに分割して使う」ようなものだと考えてください。
パケットには「名札」をつける
スイッチとルーターを繋ぐケーブルを、専門用語で「トランクポート」と呼びます。このトランクポートを通るとき、パケットには「802.1Q(ドットワンキュー)」というタグ(名札)が貼り付けられます。
ルーターはこの名札を見て、「あ、これはVLAN 10宛てだな」「こっちはVLAN 20宛てだな」と判断して、正しい宛先にパケットを振り分けるのです。
3. 実践:ルーターの「サブインターフェース」を設定しよう
では、実際にルーターでこの設定をどう行うかを見ていきましょう。物理ポートは1つでも、仮想的な「サブインターフェース」を作ることで、複数のVLANをさばくことができます。
! 物理インターフェースはあえてIPアドレスを振らずに「no shutdown」だけします
interface GigabitEthernet0/0
no ip address
no shutdown
! VLAN 10用のサブインターフェース作成
interface GigabitEthernet0/0.10
! カプセル化方式を802.1Qに指定し、VLAN ID 10を割り当てる
encapsulation dot1Q 10
! このVLANのゲートウェイアドレスを設定
ip address 192.168.10.1 255.255.255.0
! VLAN 20用のサブインターフェース作成
interface GigabitEthernet0/0.20
! VLAN ID 20を割り当てる
encapsulation dot1Q 20
! このVLANのゲートウェイアドレスを設定
ip address 192.168.20.1 255.255.255.0
このように、0/0.10や0/0.20という「サブインターフェース」を切ることで、ルーターは物理的に1本でも、論理的には複数のルーターインターフェースを持っているかのように振る舞えるわけです。
4. この構成の「ボトルネック」を知っておく
ここまで聞くと「万能な解決策!」と思えますよね。しかし、現場のエンジニアは常に「ボトルネック」を意識します。
Router-on-a-Stickの弱点は、「すべての通信が物理ケーブルを往復する」という点です。
1. VLAN 10のPCからパケットが出る
2. スイッチからトランクポートを通ってルーターへ(行き)
3. ルーターでルーティングされ、再びトランクポートを通ってスイッチへ(帰り)
4. 宛先のVLAN 20へ届く
見ての通り、同じデータを2回ケーブルの上で送受信しています。通信量が増えれば増えるほど、この「1本の杖」に負荷が集中し、ここが渋滞(パケットロスや遅延)の原因になります。
—
最後に:一歩ずつ理解を深めよう
Router-on-a-Stickは、ネットワークの基礎中の基礎ですが、パケットがどうタグ付けされ、どうルーターで判断されて折り返されるのかという仕組みは、今の高度なネットワーク技術の原点です。
まずは、皆さんの手元のシミュレータ(Packet TracerやGNS3など)で、このサブインターフェースの設定を試してみてください。自分が打ったコマンドでパケットが「海を渡る」瞬間を見るのは、何度経験しても感動するものですよ!
「ここがまだピンとこないな」という部分があれば、ぜひまた聞いてくださいね。一緒にネットワークの深淵を覗いていきましょう!
コメント