テスト目的だったのですが、ipv6トンネル(vpn45) をデフォルトゲートウェイにしているサーバ(i45)があり、ここに別のipv6トンネル(vpn10)を張り、vpn10の対向のIPv6フルルートを持っているbgpサーバ(sv10)へ、i45のデフォルトゲートウェイ経由ではなく、Clientがvpn10経由で疎通できるようにしてみました。
記述だけだとわかりにくいのですが、構成図は以下の通りになります。 vpn10とvpn45は共にwireguardで接続しています。VPN10のコンフィグは以下の通りです。
設定はsv45で行います。まず初めに、vpn10というipv6ルートテーブルを作成します。
また、sv45の別インターフェースへの接続もwireguardでフォワードするようにしていれば、外部"Client"から、例えば 2001:db8:280:200::1/56 に到達できます。
記述だけだとわかりにくいのですが、構成図は以下の通りになります。 vpn10とvpn45は共にwireguardで接続しています。VPN10のコンフィグは以下の通りです。
#サーバ側 [Interface] PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXX Address = 2001:db8:280:01:0200::1 ListenPort = 51822 MTU = 1372 [Peer] PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXX AllowedIPs = 2001:db8:280:01:0200::2, 2001:db8:280:0200::/56 PersistentKeepalive = 16 #クライアント側 [Interface] PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXX Address = 2001:db8:280:01:0200::2 MTU = 1372 [Peer] PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXX EndPoint = 10.10.10.162:51822 AllowedIPs = ::/0 PersistentKeepalive = 16要するに別サイトにある"Client"がsv45のvpn45のアドレスとvpn10のアドレスにそれぞれ個別に接続できるようにしています。こう書くと複雑におもえるのですが、設定自体は非常にシンプルです。
設定はsv45で行います。まず初めに、vpn10というipv6ルートテーブルを作成します。
echo 102 vpn10 >> /etc/iproute2/rt_tables続いて rule と route を追加します。
ip -6 rule add from all to 2001:db8:280:1:200::2 tab vpn10 ip -6 rule add to all from 2001:db8:280:1:200::2 tab vpn10 ip -6 route add to 2001:db8:280:1:200::/80 dev vpn10 tab vpn10 ip -6 route add to default via 2001:db8:280:1:200::1 dev vpn10 tab vpn10基本的にはこれだけです。図のClientからvpn10のIPv6アドレス(2001:db8:280:1:200::2)に到達できればOKです。
また、sv45の別インターフェースへの接続もwireguardでフォワードするようにしていれば、外部"Client"から、例えば 2001:db8:280:200::1/56 に到達できます。
# sv45の別インターフェースのupとルーティング ip link set dev eno1 up ip -6 addr add 2001:db8:280:200::1/56 dev eno1 ip -6 rule add from 2001:db8:280:200::/56 to all tab vpn10 ip -6 rule add from all to 2001:db8:280:200::/56 tab vpn10 ip -6 route add to 2001:db8:280:200::/56 dev eno1 tab vpn10簡単ですが今回は以上です。それでは。
コメント
コメントを投稿