手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 OpenVPN と Quagga のルーティング問題 – OSPF と VPN 経路の注意点

CentOS 6 で OpenVPN と Quagga を組み合わせた時のルーティング問題について確認します。この記事は単なる構築手順ではなく、VPN 経路と OSPF で配布される経路をどう考えるかというトラブル記録です。

OpenVPN と動的ルーティングを混ぜる難しさ

OpenVPN はトンネルを作り、Quagga は OSPF などで経路を広告します。この二つを組み合わせると、VPN 接続、OS のルーティングテーブル、OSPF の広告、戻り経路が絡みます。

  • OpenVPN の tun インターフェイスに経路が乗る
  • Quagga がどのインターフェイスを OSPF 対象にするか
  • VPN 経路を OSPF へ流すかどうか
  • 戻り経路が正しく存在するか
  • NAT で逃がしているのかルーティングで通しているのか

接続できることと、経路が正しく設計されていることは別です。片方向だけ通信できる場合、戻り経路や OSPF 広告の範囲を疑います。

状態確認

ip addr show
ip route show
service openvpn status
service zebra status
service ospfd status

まず OS のルーティングテーブルと各サービスの状態を見ます。OpenVPN が作ったインターフェイスが存在するか、期待する経路が入っているかを確認します。

Quagga 側の確認

vtysh -c "show ip route"
vtysh -c "show ip ospf neighbor"
vtysh -c "show running-config"

Quagga では、OS のルートと OSPF で見えているルートを分けて確認します。OS には経路があるのに OSPF で広告されていない、またはその逆の状態があり得ます。

設計上の注意点

  • VPN の一時的な経路を不用意に OSPF へ流さない
  • トンネルの先にあるネットワークを明示する
  • 戻り経路を必ず確認する
  • NAT とルーティングを混ぜて原因を曖昧にしない
  • 障害時に経路が広がりすぎないようにする

OpenVPN と OSPF を組み合わせる場合、VPN が落ちた時に経路がどう消えるかも重要です。正常時だけでなく、断線時の収束や誤広告を考える必要があります。

切り分け手順

ping -c 3 10.8.0.1
traceroute 192.168.10.10
tcpdump -ni tun0
tcpdump -ni eth0 proto ospf
ip route get 192.168.10.10

通信確認では、VPN インターフェイス、物理インターフェイス、OSPF パケット、実際の経路選択を分けて見ます。

VPN は張れるが通信できない時の見る順序

OpenVPN と Quagga / OSPF の組み合わせで多いのは、VPN セッション自体は張れているのに、目的ネットワークへ通信できない状態です。この場合、OpenVPN の認証ではなく、経路と戻り経路を疑います。

  • クライアントに VPN アドレスが割り当てられているか
  • クライアントに目的ネットワークへのルートが入っているか
  • VPN サーバーが目的ネットワークへ到達できるか
  • 目的ネットワーク側に VPN クライアント宛の戻り経路があるか
  • OSPF で広告すべき経路と広告すべきでない経路を分けているか
ip addr show tun0
ip route show
ip route get 192.168.10.10
vtysh -c "show ip route"
vtysh -c "show ip ospf route"
tcpdump -ni tun0 icmp

NAT で逃がすか、ルーティングで通すか

VPN 経路の問題は、NAT で隠すと一時的に動くことがあります。ただし、NAT で逃がすのか、ルーティングとして正しく通すのかは設計判断です。拠点間や複数ネットワークを扱うなら、戻り経路を含めたルーティング設計として考える方が自然です。

  • NAT は戻り経路問題を隠せるが、通信元が見えにくくなる
  • ルーティングは設計が必要だが、通信経路を明示できる
  • OSPF に VPN 経路を流す場合は、障害時の経路消失も考える
  • 一時的な VPN クライアント経路を不用意に広域広告しない

まとめ

CentOS 6 の OpenVPN + Quagga 構成では、VPN 接続、OS のルーティング、OSPF 広告、戻り経路を分けて確認する必要があります。VPN でつながったから終わりではなく、その経路を動的ルーティングへどう扱わせるかが設計の中心です。

関連する記事

参考書籍

参考書籍
参考書籍
ストーリーで覚える Linux CLI 入門

CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。

Amazon で見る
このリンクは Amazon アソシエイトリンクです。
CentOS 6 OpenVPN と Quagga のルーティング問題 – OSPF と VPN 経路の注意点

コメントを残す

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

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

トップへ戻る