Перенаправлять только трафик локальной сети из сетевого пространства имен в корневое пространство имен

Перенаправлять только трафик локальной сети из сетевого пространства имен в корневое пространство имен

Я настроил свой станок, следуя инструкцииздесьсделать интерфейс Wireguard единственным интерфейсом (чтобы все мои приложения могли использовать только его для доступа в Интернет).

Это работает так, как и задумано, но теперь я хочу исключить из него свою локальную сеть (192.168.0.0/16), чтобы иметь возможность доступа к ней по SSH, использовать обратный прокси-сервер HTTP(S) и т. д.

Я новичок в IP. Я попробовал настроить vethпару (vethVPN/vethPhys) и задать маршрут для 192.168.0.0/16 через IP-адрес vethPhys:

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

Очень кратко:

Отключив основное сетевое пространство имен от локальной сети, вы больше не сможете сделать его «частью» локальной сети.

Вы можете либо рассматривать свое основное пространство имен как сегмент, отличный от локальной сети, и маршрутизировать между ним и локальной сетью, используя «физическое» пространство имен, но для этого потребуются правильные маршруты на всех других машинах, подключенных к локальной сети (которые вы можете распределить, например, с помощью DHCP, если устройство, на котором работает DHCP-сервер, может это сделать).

Или вы можете использовать другую настройку: оставить основное пространство имен подключенным к локальной сети, создать пространство имен «wireguard» с macvlan и процессом wireguard, переместить интерфейс wg0из этого основного пространства имен в основное пространство имен и wg0сделатьшлюз по умолчанию.

Это гарантирует, что каждый адрес назначения, за исключением вашей локальной сети, будет проходить через интерфейс Wireguard.

Связанный контент