手当たり次第に書くんだ

飽きっぽいのは本能

VyOS インターフェイス設計 – ethernet / bonding / loopback を分けて考える

VyOS のインターフェイス設計では、単に eth0 に IP アドレスを付けるだけではなく、物理インターフェイス、bonding、loopback、管理 VRF を分けて考えます。ここを曖昧にすると、Firewall、OSPF、PBR、OpenVPN、監視のすべてが読みにくくなります。

この記事は、VyOS 1.5 の実運用構成をもとに、公開記事として再利用しやすい形へ抽象化したものです。実ホスト名、実 IP、MAC アドレス、内部ネットワーク名はそのまま使わず、設計の考え方だけを取り出しています。

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

VyOS では、インターフェイスを役割ごとに分けると構成が読みやすくなります。外部接続、内部 LAN、bonding の slave、未使用ポート、loopback、管理 VRF は同じ「インターフェイス」でも責務が異なります。

要素役割
ethernet物理 NIC。WAN、LAN、bonding slave、未使用ポートとして使い分ける
bonding複数 NIC をまとめる論理インターフェイス。内部ネットワークや高帯域経路に使う
loopbackルーター自身を表す安定したアドレス。監視、ルーティング、サービス識別に使う
VRF管理系など、経路表を分けたい通信を隔離する
unused使わない物理ポート。明示的に disable して意図しない接続を避ける

ethernet は物理ポートの責務を書く

物理インターフェイスには、アドレスだけでなく descriptionmtu、必要に応じて offload や VRF を設定します。どのポートが outside なのか、inside なのか、bonding slave なのかを明示しておくと、後から Firewall やルーティングを追いやすくなります。

configure
set interfaces ethernet eth0 description 'outside'
set interfaces ethernet eth0 address '203.0.113.10/24'
set interfaces ethernet eth0 address '2001:db8:100::10/64'
set interfaces ethernet eth0 mtu '1500'

set interfaces ethernet eth1 description 'inside'
set interfaces ethernet eth1 address '10.0.0.1/24'
set interfaces ethernet eth1 address 'fd00::1/120'
set interfaces ethernet eth1 mtu '9000'
commit
save

実運用では、外側インターフェイス、内側インターフェイス、管理用インターフェイスを混ぜない方が安全です。特に Firewall では、outsidetrust の分類が後続の設計に効いてきます。

bonding は内部経路の集約として扱う

bonding は、複数の物理 NIC をまとめて 1 つの論理インターフェイスとして扱うための設定です。現行構成では、内部ネットワーク側で bonding を使い、slave 側の物理 NIC には役割を持たせず、bonding interface 側にアドレスや MTU を持たせる形が自然です。

configure
set interfaces bonding bond0 description 'inside-bond'
set interfaces bonding bond0 address '10.0.10.1/24'
set interfaces bonding bond0 address 'fd00::10:1/120'
set interfaces bonding bond0 member interface 'eth2'
set interfaces bonding bond0 member interface 'eth3'
set interfaces bonding bond0 hash-policy 'layer3+4'
set interfaces bonding bond0 mtu '9000'

set interfaces ethernet eth2 description 'bond0 slave'
set interfaces ethernet eth3 description 'bond0 slave'
commit
save

ここで大事なのは、IP アドレスを slave の物理 NIC ではなく bond0 に持たせることです。Firewall やルーティングから見ても、通信の入口は bonding interface として扱う方が整理しやすくなります。

loopback はルーター自身の安定した識別子にする

loopback は、物理ポートの link up / down に左右されにくいアドレスを持たせるために使います。監視、ルーティング、DNS、内部サービスの識別など、ルーター自身を安定して表す用途に向いています。

configure
set interfaces loopback lo address '10.0.255.1/32'
set interfaces loopback lo address 'fd00::ffff:1/128'
commit
save

OSPF や OSPFv3、監視、内部サービスと組み合わせる場合、loopback は単なる飾りではありません。ルーター自身を表す stable address として、物理インターフェイスとは別に扱う価値があります。

未使用ポートは明示的に無効化する

未使用ポートは放置せず、descriptionunused を入れ、明示的に disable します。これはセキュリティというより、運用上の意図を残すための設定です。

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

管理 VRF は管理経路の分離として考える

管理系の通信を通常の転送経路と分けたい場合、VRF を使います。現行構成でも、管理用インターフェイスを VRF に入れ、管理用の default route を別テーブルで持つ形が見られます。

configure
set vrf name mgmt table '1000'
set vrf name mgmt protocols static route 0.0.0.0/0 next-hop 192.0.2.1
set interfaces ethernet eth5 description 'management'
set interfaces ethernet eth5 address '192.0.2.10/24'
set interfaces ethernet eth5 vrf 'mgmt'
commit
save

VRF は必須ではありません。しかし、管理経路を転送経路と分けたい場合は、単に IP アドレスを分けるだけでなく、経路表そのものを分けるという選択肢になります。

まとめ

VyOS のインターフェイス設計では、物理ポート、bonding、loopback、VRF を同じ粒度で扱わないことが重要です。物理ポートは接続点、bonding は集約された内部経路、loopback はルーター自身の安定した識別子、VRF は経路表の分離として考えます。

この分け方を先に決めておくと、Firewall、OSPF、PBR、OpenVPN、監視の設定が読みやすくなります。インターフェイス設計は地味ですが、VyOS 全体の構成を崩さないための土台です。

関連する記事

次に進む

参考書籍

VyOS インターフェイス設計 – ethernet / bonding / loopback を分けて考える

コメントを残す

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

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

トップへ戻る