YAMAHA RTX1200 で VLAN 間ルーティング(router on a stick)を構成してみた

YAMAHA RTX1200 で VLAN 間ルーティング(router on a stick)を構成してみた

YAMAHA RTX1200をスマートスイッチとトランク接続し、VLAN間ルーティング(router on a stick)を構成します。論理インターフェースとDHCPの設定、経路表の読み方、VLANをまたいだ疎通確認までを実機で確認します。
2026.08.15

こんにちは。リテールアプリ共創部のきんじょーです。

案件で Direct Connect 接続を構築する必要があり、オンプレミス側の解像度を深めるために、L2 スイッチと業務用ルーターで家庭内ネットワークを AWS に接続していきます。

前回の記事では、L2 スイッチ TL-SG108E で VLAN を作り、同じスイッチ・同じサブネットの端末が L2 のレベルで分離されることを確認しました。

https://dev.classmethod.jp/articles/tl-sg108e-home-vlan-802-1q/

今回は業務用ルーター YAMAHA RTX1200 を接続し、分離したセグメント間をルーティングで繋いで「店舗 LAN の縮小モデル」を完成させます。AWS への接続は次回以降です。

使用する機器

YAMAHA RTX1200 を使用します。3 つの LAN インターフェースを持つ業務用ルーターで、中古で 3,000〜4,000 円ほどで入手できます。生産終了品ですが、VLAN サブインターフェース・DHCP サーバー・フィルタリングなど、今回の検証に必要な機能は一通り揃っています。
次回の記事に記載しますが、Site-to-Site VPN を BGP で構成するためには、手元のRTX1200では機能不足でした。

設定はシリアルコンソールから行います。
シリアルコンソールのコネクタはRJ-45ではなくD-sub 9ピンになっているためその点も注意が必要です。

# シリアルアダプタの識別子を確認
$ ls /dev/tty.usb*
/dev/tty.usbserial-A50285BI

# シリアルコンソールに接続
$ screen /dev/tty.usbserial-A50285BI 9600

設計

前提: 自宅の回線構成

先に、検証環境を受け入れる側の自宅回線について触れておきます。自宅は NURO 光で、ONU 一体型ルーター(ZTE 製)が設置されています。この回線は PPPoE や MAP-E のような方式ではなく、ONU 一体型ルーターの WAN 側にグローバル IP アドレスが直接付与され、ONU 一体型ルーターがルーターモード(NAT あり)で動作する構成です。

このため RTX1200 は ONU 一体型ルーターの LAN 側(192.168.1.0/24)に接続する形になり、RTX の lan2 にはプライベート IP アドレスが DHCP で付与されます。検証セグメントからインターネットへの通信は RTX と ONU 一体型ルーターで 2 回 NAT される二重 NAT 構成です。家族が使うネットワークを止めないため、既設の ONU 一体型ルーターと WiFi ルーターには一切手を加えず、この前提で進めます。

物理・論理構成図

構成図を物理と論理に分けて描きます。物理図にはケーブルとポートだけを、論理図にはセグメントとアドレスだけを描き、両者の対応は表で持ちます。

物理構成図

結線表:

# From(機器/ポート) To(機器/ポート) 媒体 備考
ONU一体型ルーター LAN RTX1200 LAN2 UTP WAN 上流
RTX1200 LAN1 port1 TL-SG108E port1 UTP トランク(論理は別表)
TL-SG108E port8 Mac② en8 UTP Mac② の定位置(保守セグメントに入る)
TL-SG108E port2 iPad UTP 端末ブロック(port2-4)のどこでも可
③′ TL-SG108E port5 Mac② en8 UTP VLAN20 の検証時だけ③から挿し替え
Mac① USB RTX1200 CONSOLE RS-232C 帯域外管理

論理構成図

実務に見立てて、保守用、店舗端末用、社内システム用のセグメントに分けています。

IP アドレス・VLAN 設計表:

セグメント VLAN CIDR GW(IF) DHCP 外部への経路 用途
保守 1 (native) 192.168.100.0/24 192.168.100.1(lan1) scope 1 家庭回線経由で自由 Mac②・スイッチ管理画面
端末 10 10.100.10.0/24 10.100.10.1(lan1/1) scope 2 閉鎖 iPad
社内システム 20 10.100.20.0/24 10.100.20.1(lan1/2) scope 3 閉鎖 Mac②(挿し替え時)
WAN 192.168.1.0/24 ONU一体型ルーター 上流から配布 上流

VLAN10/20 の 2 セグメントを分けているのは、次回以降の AWS 接続で「AWS に経路を広報するセグメント」と「広報しないセグメント」を作り分けるための準備です。

やってみる

RTX1200 の基礎設定

工場出荷状態に初期化した直後、show environment を打つと日本語メッセージが文字化けしていました。RTX のコンソール出力のデフォルトが Shift_JIS で、ターミナル側の文字コードが UTF-8 のためです。最初に ASCII 出力へ変更しておきます。

# console character ascii
# save

まず VLAN の前に、RTX を「保守セグメントのゲートウェイ 兼 インターネットへの出口」として動く状態にします。

# ip lan1 address 192.168.100.1/24
# dhcp service server
# dhcp scope 1 192.168.100.2-192.168.100.191/24
# ip lan2 address dhcp
# ip route default gateway dhcp lan2
# save

lan1 に保守セグメントのゲートウェイアドレスと DHCP スコープ(scope 1)を設定し、lan2 は ONU 一体型ルーターから DHCP でアドレスを受け取ります。デフォルトルートの gateway dhcp lan2 は「lan2 の DHCP で通知されたゲートウェイを使う」という指定で、上流のアドレスが変わっても追従します。インターネットへ出るための NAT(masquerade)はこの後の動作確認④で触れます。

RTX1200 に VLAN サブインターフェースを生やす

RTX1200 の LAN1(内蔵 8 ポートスイッチ)に、VLAN ごとの論理インターフェースを作成します。1 台のルーターの 1 本の物理リンクで複数 VLAN のルーティングを担うこの構成は router on a stick と呼ばれます。

# vlan lan1/1 802.1q vid=10
# ip lan1/1 address 10.100.10.1/24
# dhcp scope 2 10.100.10.50-10.100.10.99/24
# vlan lan1/2 802.1q vid=20
# ip lan1/2 address 10.100.20.1/24
# dhcp scope 3 10.100.20.50-10.100.20.99/24
# save

lan1/1 は物理インターフェース lan1 の上に載る論理インターフェースです。タグ付きフレームは、対応する VID の論理インターフェースがないと受取先がなく破棄されます。この 2 行で「VID=10 のタグ付きフレームの受け口」と「そのセグメントのゲートウェイアドレス」を同時に作成します。

なお、1 本の物理接続の上に VLAN ID で区別された論理インターフェースが複数載るこの構造は、Direct Connect で物理接続の上に VIF(Virtual Interface)を複数収容する構造と同じです。VIF 作成時に指定する VLAN ID の実体は、前回目視した 802.1Q タグそのものです。

TL-SG108E 側のポート設定

スイッチ側は前回の 802.1Q 設定を、用途別のポートブロック配置に組み直します。
(U: untagged, T: tagged)

VLAN ID port1 (→RTX) port2-4 (端末) port5-7 (社内システム) port8 (保守)
1 U U
10 T U
20 T U
port1 port2-4 port5-7 port8
PVID 1 10 20 1
  • port1 は RTX へのトランクポートです。トランクは両端で「運ぶ VLAN の一覧」と「タグなしで流す VLAN」が一致して初めて成立します。RTX 側では lan1(タグなし)+ lan1/1 + lan1/2 という 3 つのインターフェース、スイッチ側では 1 ポートの U/T/PVID 設定として表現が分かれますが、中身は同じ対応関係です。
  • port8 を「保守」としていますが、前回確認したとおり Easy Smart の管理インターフェースは VLAN で分離されないため、管理画面への到達自体は他のポートからも可能です。
    • スイッチを RTX に接続した直後、管理画面が RTX の DHCP から IP を取得して 192.168.0.1 から 10.100.10.x に変わってしまいました。
    • 不便なので、TL-SG108E の管理画面の IP は保守セグメント内の 192.168.100.254 に静的固定しました。

実際の設定値です。
vlan-setting
pvid-setting

動作確認①: 挿すポートで配布される IP が変わる

各端末は DHCP 設定のまま、ポートに挿すだけです。配布される IP アドレスの帯を決めるのは「どの端末か」ではなく「どのポートに挿したか」なので、試しに Mac② を端末ブロック(port2-4)、iPad を社内システムブロック(port5-7)に挿してリース台帳を見てみます。

  • port2-4 に挿した Mac② → scope 2 から 10.100.10.51
  • port5-7 に挿した iPad → scope 3 から 10.100.20.51
  • port8(保守)には誰も居ないため、scope 1 の Leased は 0
# show status dhcp
DHCP Scope number: 1
      Network address: 192.168.100.0
                  All: 190
               Except: 0
               Leased: 0
               Usable: 190
DHCP Scope number: 2
      Network address: 10.100.10.0
          Leased address: 10.100.10.51
        (type) Client ID: (01) 00 e0 4c xx xx xx
               Host Name: MacBook-Pro
         Remaining lease: 2days 23hours 46min. 39secs.
                  All: 50
               Except: 0
               Leased: 1
               Usable: 49
DHCP Scope number: 3
      Network address: 10.100.20.0
          Leased address: 10.100.20.51
        (type) Client ID: (01) 34 3d c4 xx xx xx
               Host Name: iPad
         Remaining lease: 2days 23hours 59min. 37secs.
                  All: 50
               Except: 0
               Leased: 1
               Usable: 49

DHCPにより挿すポートで貰える IP アドレスの帯が変わります。DHCP サーバーは RTX 上の 1 サービスですが、リクエストが到着した論理インターフェースによって応答するスコープを選んでいるためです。

動作確認②: 経路表を見る

# show ip route
Destination         Gateway          Interface       Kind  Additional Info.
default             192.168.1.1      LAN2(DHCP)    static
10.100.10.0/24      10.100.10.1          LAN1/1  implicit
10.100.20.0/24      10.100.20.1          LAN1/2  implicit
192.168.1.0/24      192.168.1.27           LAN2  implicit
192.168.100.0/24    192.168.100.1          LAN1  implicit

読みどころが 3 つあります。

  • Kind 列は「この経路を誰が書いたか」を表します。implicit はインターフェースに IP アドレスを設定したことで暗黙に生えた経路、static は手動または DHCP 供給の静的経路です。次回以降、ここに BGP 由来の経路が並ぶ予定です
  • Interface 列に論理インターフェース(LAN1/1・LAN1/2)が物理と同格で並んでいます。経路表の 1 行は必ず「宛先 → どの出口インターフェースへ」の形なので、論理インターフェースを作ることは経路表に出口の選択肢を増やすことでもあります
  • implicit 行の Gateway 列は自分自身( RTX1200 )のアドレスです。次ホップがない直結経路の Gateway
    列をヤマハはこう表記するようです

動作確認③: VLAN 間ルーティング

Mac② を port5(VLAN20)に挿した状態で、Mac②(10.100.20.x)から iPad(10.100.10.x)へ ping を打ちます。

前回、VLAN を跨いだ瞬間に ARP から失敗していた 2 台が、RTX を経由して疎通するようになりました。

$ ping 10.100.10.50
PING 10.100.10.50 (10.100.10.50): 56 data bytes
64 bytes from 10.100.10.50: icmp_seq=0 ttl=63 time=2.021 ms
64 bytes from 10.100.10.50: icmp_seq=1 ttl=63 time=1.431 ms
64 bytes from 10.100.10.50: icmp_seq=2 ttl=63 time=1.769 ms
64 bytes from 10.100.10.50: icmp_seq=3 ttl=63 time=1.051 ms
64 bytes from 10.100.10.50: icmp_seq=4 ttl=63 time=1.884 ms
^C
--- 10.100.10.50 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.051/1.631/2.021/0.350 ms

TTL が 1 減っていることから、L2 のスイッチングではなくルーターを 1 ホップ経由したことが確認できます。

動作確認④: NAT の変換テーブルを覗く

lan2 に IP マスカレード(NAPT)を設定すると、各セグメントの端末はインターネットへ出られるようになります。

# nat descriptor type 1 masquerade
# nat descriptor address outer 1 primary
# ip lan2 nat descriptor 1
# save

nat descriptor は「変換ルールを定義して、インターフェースに貼る」という 2 段構えの構文です。address outer 1 primary は「変換後に名乗る外側アドレスは、貼ったインターフェースの主アドレス」の意味で、lan2 が DHCP でアドレスを受け取る構成でも動的に追従します。

せっかくルーターが手元にあるので、普段は見えない NAT の変換テーブルを覗いてみます。

# show nat descriptor address detail
Reference Descriptor : 1, Assigned Interface : LAN2(1)
Masquerade Table
    Outer address: primary/192.168.1.27
    Port range: 60000-64095, 49152-59999, 44096-49151   24 used.
 Protocol              Inner           Destination   Masquerade  TTL(second)
   UDP   192.168.100.1.10199        192.168.1.1.53        60003            3
   UDP   192.168.100.1.10444        192.168.1.1.53        60002            3
   TCP    10.100.10.50.62718    172.224.110.20.443        60001           53
   TCP    10.100.10.50.62721     17.248.225.44.443        60005           56
   UDP    10.100.10.50.56254    172.224.110.16.443        60000          893
   UDP    10.100.10.50.50941     17.248.225.44.443        60004          897
   TCP    10.100.10.51.59898       40.99.36.66.585        60009          893
   UDP    10.100.10.51.57714     142.251.24.94.443        60008          894
   UDP    10.100.10.51.51146     142.251.24.94.443        60012          894
   TCP    10.100.10.51.59959     142.251.24.94.443        60013          894
   TCP    10.100.10.51.59937      40.99.78.146.585        60010          897
   TCP    10.100.10.51.59938       40.99.57.66.585        60011          898
   TCP    10.100.10.51.59939    40.104.115.146.585        60007          899
   TCP    10.100.10.51.59946      40.99.58.130.585        60006          900
   ...

以下が観測できました。

  • NAPT の「多対 1」の実体がポートの割り当て管理であることが見えます
  • 宛先 443 の UDP、つまり QUIC(HTTP/3)の通信が複数見られ、HTTP/3 への移行が進んでいることが変換テーブルからも観測できます

検証セグメントの出口を閉じる

このままでは VLAN10/20 の端末も RTX の NAT(masquerade)経由で自由にインターネットへ出られます。実際の店舗端末は自由にインターネットへ出られない前提の設計が多く、次回以降その状態を作るため、VLAN10/20 だけ家庭回線経由の出口を閉じます。

# ip filter 300 reject 10.100.10.0/24 * * * *
# ip filter 301 reject 10.100.20.0/24 * * * *
# ip filter 399 pass * * * * *
# ip lan2 secure filter out 300 301 399
# save

lan2 の out 方向は「フィルタ → NAT」の順で評価されるため、NAT で送信元が変換される前のアドレスで判定できます。

iPad(VLAN10)と Mac②(VLAN20)から ping 8.8.8.8 を叩くと不通で、port8 の保守セグメントからはインターネットに疎通できることを確認しました。

最後に

ここまでで RTX1200 で確認できたことをまとめます。

  • router on a stick は、1 本の物理リンクに VLAN ごとの論理インターフェースを載せてルーティングする構成。論理インターフェースが 802.1Q タグの受け口とセグメントのゲートウェイを兼ねる
  • L3 側(ルーター)は VLAN ID にサブネットと DHCP スコープを対応づけ、L2 側(スイッチ)はポートに VLAN ID を対応づける。2 枚の対応表が VLAN ID をキーに結合されることで、「端末を挿すだけで正しいセグメントに入る」が成立する
  • 経路表の 1 行は必ず出口インターフェースを指す。論理インターフェースを作ることは、経路表に出口の選択肢を増やすこと
  • NAPT の実体は外側ポートの割り当て管理。変換テーブルを覗くと、Web 通信の QUIC(UDP 443)への移行が進んでいることも観測できる

普段 AWS の VPC を作成すると、サブネットを作るだけで VLAN、DHCP サービス、ルートテーブルなどが払い出されていましたが、実機で 1 から構築することでより解像度が上がりました。

次回はこの LAN を AWS に接続します。

この記事が誰かの役に立つと幸いです。以上。リテールアプリ共創部のきんじょーでした。

この記事をシェアする

関連記事