手当たり次第に書くんだ

飽きっぽいのは本能

VyOS インターフェイス設計 – Ethernet / Bonding / Loopback / VRF の役割

VyOS のインターフェイス設計は、IP アドレスを割り当てる作業だけではありません。物理ポート、リンク集約、ルーター自身を示すアドレス、管理用の経路表を分けておくと、Firewall、動的ルーティング、VPN、監視の参照先が明確になります。

この記事では VyOS 1.5 を前提に、Ethernet、Bonding、Loopback、VRF の責務、LACP と active-backup の選択、MTU とオフロードの注意、管理接続を失わない変更順序、運用時の確認方法を解説します。

インターフェイスを役割で分ける

要素主な役割設計時に決めること
EthernetWAN、LAN、管理、Bonding メンバー接続先、アドレス、MTU、速度、無効化方針
Bonding冗長化または複数リンクの集約モード、スイッチ側 LACP、ハッシュ、障害条件
Loopbackルーター自身の安定したアドレス監視元、Router ID、サービス待受、広告範囲
VRF経路表と転送ドメインの分離テーブル ID、所属インターフェイス、経路、サービス
未使用ポート意図しない接続の防止説明、無効化、監視対象からの除外

最初に WAN、LAN、管理、リンク集約のメンバーを決めます。その後で IP アドレス、Firewall、NAT、経路制御を割り当てると、物理構成の変更が上位設定へ及ぼす影響を追いやすくなります。

Ethernet は接続先と責務を明示する

物理インターフェイスには、接続先が分かる description と、その経路で必要な MTU を設定します。速度と duplex は通常 auto で開始し、固定する場合は対向装置も同じ条件にします。

configure
set interfaces ethernet eth0 description 'internet-uplink'
set interfaces ethernet eth0 address '203.0.113.10/24'
set interfaces ethernet eth0 mtu '1500'
set interfaces ethernet eth1 description 'trusted-lan'
set interfaces ethernet eth1 address '10.0.0.1/24'
set interfaces ethernet eth1 mtu '1500'
commit-confirm 5

管理接続と疎通を確認できたら、confirmsave を実行します。リモート作業では、先にコンソール接続を確保し、IP アドレスや VRF の変更を一度に重ねすぎないようにします。

confirm
save

MTU は経路全体で合わせる

Jumbo Frame を使う場合、VyOS の対象インターフェイスだけを 9000 にしても成立しません。Bonding のメンバー、VLAN、ブリッジ、対向スイッチ、サーバーまで、同じ経路を通る装置の MTU を確認します。

  • WAN 側は回線方式、PPPoE、トンネル、VPN によるオーバーヘッドを確認する
  • Bonding の論理インターフェイスと全メンバーで MTU を一致させる
  • VLAN やトンネルを重ねる場合は外側ヘッダー分を考慮する
  • 変更後は小さいパケットだけでなく、DF を使った大きなパケットでも確認する

オフロードは NIC や仮想 NIC のドライバー、処理する通信によって効果と副作用が変わります。特に LRO は受信パケットのヘッダーを結合するため、転送装置ではパケットドロップや転送失敗につながる可能性があり、ルーター用途で安易に有効化しません。

show interfaces ethernet
show interfaces ethernet eth0
show interfaces ethernet eth0 physical offload

Bonding のモードを先に選ぶ

モード対向スイッチ向いている用途注意点
802.3adLACP の設定が必要帯域分散と冗長化同一フローが 1 本の帯域を超えるとは限らない
active-backup通常は特別な集約設定が不要単純なリンク冗長化同時に通信するメンバーは 1 本
xor-hash静的なリンク集約が必要LACP を使わない分散VyOS とスイッチの設定を対応させる

LACP を使う例では、モードを明示し、同じ速度と duplex のメンバーを追加します。layer3+4 は複数フローを分散しやすい一方、対向装置のハッシュと通信特性を含めて選びます。

configure
set interfaces bonding bond0 description 'trusted-lan-lag'
set interfaces bonding bond0 mode '802.3ad'
set interfaces bonding bond0 lacp-rate 'fast'
set interfaces bonding bond0 hash-policy 'layer3+4'
set interfaces bonding bond0 member interface 'eth2'
set interfaces bonding bond0 member interface 'eth3'
set interfaces bonding bond0 address '10.0.10.1/24'
set interfaces bonding bond0 mtu '1500'
set interfaces ethernet eth2 description 'bond0-member-1'
set interfaces ethernet eth2 mtu '1500'
set interfaces ethernet eth3 description 'bond0-member-2'
set interfaces ethernet eth3 mtu '1500'
commit-confirm 5

IP アドレスは Bonding の論理インターフェイスへ設定し、メンバーには設定しません。スイッチ側で同じ 2 ポートを LACP グループへ入れ、VLAN の tagged / untagged 条件も VyOS 側と一致させます。

LACP を使わず、リンク障害時だけ切り替えたい場合は active-backup を選びます。優先するメンバーがある場合は primary も設定できます。

configure
set interfaces bonding bond1 mode 'active-backup'
set interfaces bonding bond1 member interface 'eth4'
set interfaces bonding bond1 member interface 'eth5'
set interfaces bonding bond1 primary 'eth4'
set interfaces bonding bond1 address '192.0.2.2/24'
commit-confirm 5

Loopback はルーター自身を表す

Loopback は物理リンクの状態に依存しにくいため、Router ID、監視、管理対象、内部サービスの識別に向いています。ホストを示す IPv4 には /32、IPv6 には /128 を使い、必要な経路だけをルーティングプロトコルや静的経路で到達可能にします。

configure
set interfaces loopback lo description 'router-identity'
set interfaces loopback lo address '10.255.0.1/32'
set interfaces loopback lo address '2001:db8:ffff::1/128'
commit
save

OS が持つ Loopback の lo は 1 つです。複数の独立した仮想インターフェイスが必要な場合は、Loopback を増やすのではなく Dummy インターフェイスなどを検討します。

管理 VRF は経路とサービスを一緒に移す

管理通信を通常の転送経路から分離する場合、VRF を作成し、管理インターフェイス、管理用デフォルトルート、SSH などの管理サービスを同じ VRF へ対応させます。インターフェイスだけを VRF へ移すと、経路やサービスの待受条件が合わず、接続できなくなることがあります。

configure
set vrf name mgmt table '1000'
set interfaces ethernet eth6 description 'management'
set interfaces ethernet eth6 address '192.0.2.10/24'
set interfaces ethernet eth6 vrf 'mgmt'
set vrf name mgmt protocols static route 0.0.0.0/0 next-hop '192.0.2.1'
set service ssh vrf 'mgmt'
commit-confirm 5

VRF のテーブル ID は作成後に直接変更できません。変更する場合は VRF を削除して再作成する必要があるため、既存のテーブル ID と重複しない値を先に決めます。

未使用ポートを無効化する

使わないポートは用途がないことを説明へ残し、明示的に無効化します。将来使う時は、接続先、速度、MTU、Firewall の適用範囲を確認してから有効化します。

configure
set interfaces ethernet eth7 description 'unused'
set interfaces ethernet eth7 disable
commit
save

変更後に状態を確認する

show interfaces
show interfaces ethernet
show interfaces bonding
show interfaces bonding bond0 detail
show interfaces loopback
show vrf
show ip route vrf mgmt
show configuration commands | match 'interfaces'
  • 各 Ethernet のリンク状態、速度、duplex、エラー数が想定どおりである
  • Bonding の必要なメンバーが active で、LACP の対向が成立している
  • 論理インターフェイスとメンバーの MTU が一致している
  • Loopback へ必要なネットワークから到達できる
  • 管理 VRF にデフォルトルートがあり、SSH と監視が同じ経路を使う
  • Firewall、NAT、PBR、OSPF が意図したインターフェイス名を参照している

問題が起きた時の確認順序

症状最初に確認すること次の判断
リンクが上がらないケーブル、仮想 NIC、speed、duplex対向側と同じ条件か確認する
Bonding が active にならないモード、メンバー、LACP、VLANスイッチ側のポートチャネルと照合する
大きな通信だけ失敗する経路上の MTUVLAN、PPPoE、VPN、トンネルを順に確認する
管理 IP へ接続できないVRF、ルート、SSH の VRF、Firewallコンソールから commit-confirm の復旧を待つ
再起動後に設定が戻るsave の実行保存済み設定と running config を比較する

まとめ

VyOS のインターフェイスは、物理接続点の Ethernet、冗長化と集約を担う Bonding、ルーター自身を示す Loopback、経路表を分ける VRF という役割で設計します。

設定時は Bonding モードと対向スイッチ、経路全体の MTU、転送装置でのオフロード、管理 VRF の経路とサービスを一組として確認します。リモート変更ではコンソールを確保し、commit-confirm で復旧できる状態を残して進めます。

関連する記事
VyOS インターフェイス設計 – Ethernet / Bonding / Loopback / VRF の役割

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る