
チュートリアルに従ってマシンをセットアップしましたここWireguard インターフェースを唯一のインターフェースにします (そのため、すべてのアプリケーションはインターネットにアクセスするためにそれのみを使用できます)。
これは意図したとおりに動作しますが、今度は LAN (192.168.0.0/16) を除外して、SSH でアクセスしたり、HTTP(S) リバース プロキシを使用したりできるようにしたいと考えています。
IP 初心者なので、veth
(vethVPN/vethPhys) ペアを設定して、vethPhys IP 経由で 192.168.0.0/16 のルートを設定してみました。
ip link add name vethVPN type veth peer name vethPhys
ip link set vethPhys netns physical
ip -n physical addr add 10.0.0.1/32 dev vethPhys
ip -n physical link set vethPhys up
ip link set vethVPN up
ip -n physical route 192.168.0.0/16 via 10.0.0.1
何が間違っているのでしょうか? これを達成する正しい方法は何ですか?
答え1
簡単に言うと:
メイン ネットワーク名前空間を LAN から切断すると、その名前空間を LAN の「一部」にすることができなくなります。
メインの名前空間を LAN とは異なるセグメントとして扱い、「物理」名前空間を使用してメインの名前空間と LAN 間をルーティングすることもできますが、これには LAN に接続されている他のすべてのマシン上で正しいルートが必要になります (DHCP サーバーが実行されるデバイスがそれを実行できる場合は、たとえば DHCP によって配布できます)。
または、別の設定を使用することもできます。メインの名前空間をLANに接続したまま、macvlanとwireguardプロセスを含む「wireguard」名前空間を作成し、wg0
そのメインスペースからメインの名前空間にインターフェースを移動し、wg0
デフォルトゲートウェイ。
これにより、LAN を除くすべての宛先アドレスが Wireguard インターフェイスを通過するようになります。