ネットワークネームスペースからルートネームスペースへのLANトラフィックのみ転送

ネットワークネームスペースからルートネームスペースへのLANトラフィックのみ転送

チュートリアルに従ってマシンを設定しました。ここWireguardインターフェイスを唯一のインターフェイスとして作成します。これにより、すべてのアプリケーションがインターネットにアクセスするためにのみWireguardインターフェイスを使用できるようになります。

期待どおりに動作しますが、LAN(192.168.0.0/16)をLAN(192.168.0.0/16)から除外してSSH経由でアクセスし、HTTP(S)リバースプロキシなどを使用しようとしています。

IPを初めて使用しながら(vethVPN / vethPhys)ペアを設定vethし、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の間をルーティングできますが、これを行うには、LANに接続されている他のすべてのシステムで適切なルーティングが必要です(たとえば、展開できます) )。 DHCP経由(DHCPサーバーを実行しているデバイスがこれを実行できる場合)

あるいは、他の設定を使用することもできます。デフォルトの名前空間をLANに接続したままにし、macvlanおよびwireguardプロセスを使用して「wireguard」名前空間を作成し、インターフェイスをそのデフォルトの名前空間からデフォルトの名前空間に移動wg0wg0デフォルトゲートウェイ

これにより、LAN以外のすべての宛先アドレスがWireguardインターフェイスを通過します。

関連情報