手当たり次第に書くんだ

飽きっぽいのは本能

VyOS tunnel interface 設定 – GRE / IP6GRE を経路設計に組み込む

VyOS の tunnel interface は、離れたネットワーク間に仮想リンクを作り、その上に static route、OSPF / OSPFv3、検証用経路を載せるための機能です。GRE や IP6GRE は、OpenVPN のような暗号化 VPN ではなく、経路設計に組み込むためのトンネルとして考えます。

vyos tunnel interfacevyos gre で調べる時に重要なのは、トンネルを作るコマンドだけではありません。外側の到達性、トンネル内アドレス、MTU / MSS、Firewall、動的ルーティングを分けて確認する必要があります。

この記事では、VyOS 1.5 系で読むことを前提に、GRE / IP6GRE を経路設計に組み込むための考え方、設定例、確認手順をまとめます。実際のアドレスは公開用の例に置き換えています。

この記事の結論

  • GRE / IP6GRE は暗号化 VPN ではなく、経路を載せる仮想リンクである
  • 外側アドレスとトンネル内アドレスを分けて設計する
  • MTU / MSS は下位経路とカプセル化のオーバーヘッドを見て決める
  • OSPF / OSPFv3 に組み込む場合は IPv4 と IPv6 を別々に確認する
  • 疎通しない時は外側到達性、トンネル状態、経路、Firewall を順番に見る

tunnel interface の役割

トンネルは、離れたネットワーク間に仮想的なリンクを作る仕組みです。物理インターフェイスのように IP アドレスを持たせ、static route や OSPF / OSPFv3 の経路先として扱えます。

用途考え方注意点
拠点間経路拠点間を仮想リンクとして扱う暗号化が必要なら別途保護する
動的ルーティングOSPF / OSPFv3 の隣接に使うMTU 不一致や片方向経路に注意する
検証経路一時的な経路や overlay を作る本番経路と混ぜない
VPN 上の GRE保護された下位経路の上に経路制御用リンクを載せるオーバーヘッドが増える

外側と内側のアドレスを分ける

トンネルでは、トンネルを張るための外側アドレスと、トンネル上で使う内側アドレスを分けて考えます。外側が届かなければトンネルは上がらず、内側アドレスや OSPF の設定を見ても解決しません。

見ること
外側source-address / remote相手まで到達できるか
トンネル本体tun1000encapsulation、MTU、状態
内側 IPv4192.0.2.2/30static route や OSPF の next-hop
内側 IPv6fd00:1000::2/64OSPFv3 や IPv6 経路

IP6GRE トンネルを設定する

IPv6 を下位経路として GRE を張る場合、ip6gre を使います。ここでは、トンネルの外側は IPv6、トンネル上で扱うアドレスは IPv4 / IPv6 の両方を持たせる例にしています。

configure
set interfaces tunnel tun1000 description 'site-to-site-routing-link'
set interfaces tunnel tun1000 encapsulation 'ip6gre'
set interfaces tunnel tun1000 source-address 'fd00::2'
set interfaces tunnel tun1000 remote 'fd00::1'
set interfaces tunnel tun1000 address '192.0.2.2/30'
set interfaces tunnel tun1000 address 'fd00:1000::2/64'
commit
save

MTU と MSS を調整する

トンネルではカプセル化によりヘッダ分のオーバーヘッドが増えます。そのため、物理インターフェイスと同じ MTU の感覚で扱うと、フラグメントや PMTUD の問題が出ることがあります。

configure
set interfaces tunnel tun1000 mtu '1376'
set interfaces tunnel tun1000 ip adjust-mss '1336'
set interfaces tunnel tun1000 ipv6 adjust-mss '1316'
commit
save

MTU と MSS は環境によって変わります。PPPoE、OpenVPN、GRE、IPv6 などを重ねる場合、どの層で何バイトのオーバーヘッドがあるかを意識して調整します。

OSPF / OSPFv3 に組み込む

tunnel interface は、単に疎通させるだけでなく、動的ルーティングの隣接や経路広報のために使えます。IPv4 の OSPF と IPv6 の OSPFv3 は別設定として扱います。

configure
set protocols ospf area 0 network '192.0.2.0/30'
set protocols ospfv3 interface tun1000 area '0'
commit
save

IPv4 の OSPF に入れただけでは IPv6 の経路は流れません。デュアルスタックのトンネルでは、IPv4 / IPv6 の隣接と経路を別々に確認します。

Firewall を確認する

GRE 系トンネルでは、外側の到達性と Firewall の扱いも確認します。OpenVPN や IPsec の上に GRE を重ねる場合でも、下位トンネルが安定していなければ GRE 側の切り分けは難しくなります。

  • 外側アドレス同士で疎通できるか
  • GRE / IP6GRE を通す経路や Firewall があるか
  • 下位トンネルを使う場合、そのトンネルが安定しているか
  • トンネル内アドレスへの input / forward が必要か
  • OSPF / OSPFv3 の multicast や隣接が通るか

確認する

確認では、トンネル本体、外側の到達性、内側アドレス、経路、OSPF 隣接、MTU / MSS を分けて見ます。

show interfaces tunnel
show ip route
show ipv6 route
show ip ospf neighbor
show ipv6 ospfv3 neighbor
show configuration commands | match 'interfaces tunnel'

よくあるつまずき

症状見る場所考え方
トンネルが上がらない外側 source / remote の到達性内側設定より先に外側を見る
ping は通るが経路が流れないOSPF / OSPFv3 neighbor疎通と動的ルーティングを分ける
大きな通信だけ止まるMTU / MSS / PMTUDカプセル化のオーバーヘッドを見る
IPv4 だけ流れるOSPF と OSPFv3IPv4 / IPv6 の設定を分ける
暗号化されていると思っていた下位 VPN の有無GRE 自体は暗号化 VPN ではない

まとめ

VyOS の tunnel interface は、単なる接続補助ではなく、経路設計に組み込むための仮想リンクです。外側アドレス、トンネル内アドレス、MTU、MSS、OSPF / OSPFv3、Firewall を合わせて考えることで、拠点間経路を説明しやすくなります。

GRE 系トンネルは暗号化そのものを提供するものではありません。必要に応じて、OpenVPN や IPsec などの保護された経路と組み合わせ、トンネルの役割を明確に分けることが重要です。

関連する記事
VyOS tunnel interface 設定 – GRE / IP6GRE を経路設計に組み込む

コメントを残す

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

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

トップへ戻る