
Мой /etc/network/interfaces:
auto lo
iface lo inet loopback
auto wan
iface wan inet static
address $myPublicIP
netmask $ispSubnet
gateway $ispGateway
auto vpn
iface vpn inet static
address 10.102.1.194
netmask 255.255.255.192
up ip route add 192.168.10.32/27 via 10.102.1.196 dev vpn src 10.102.1.194 metric 10
up ip route add 192.168.11.0/24 via 10.102.1.196 dev vpn src 10.102.1.194 metric 10
ip r
показывает, как и ожидалось:
default via $wanGateway dev wan onlink
$wanGateway/$wanCIDR dev wan proto kernel scope link src $wanIP
10.102.1.192/26 dev vpn proto kernel scope link src 10.102.1.194
192.168.10.32/27 via 10.102.1.196 dev vpn src 10.102.1.194 metric 10
192.168.11.0/24 via 10.102.1.196 dev vpn src 10.102.1.194 metric 10
Но даже после перезагрузки трафик идет через vpn
шлюз локальной сети (он же LAN), 10.102.1.193/27:
traceroute to 192.168.11.2 (192.168.11.2), 30 hops max, 60 byte packets
1 10.102.1.193 (10.102.1.193) 368.435 ms 368.370 ms 368.316 ms^C
Это контейнер Debian 10 LXC под Proxmox VE 6.0-9. Это он виноват, или я что-то упустил? Я пробовалэтот ответ, но по какой-то причине это не сработало - добавление таблицы и/или правила IP не влияет на результат.
решение1
Тот факт, что нет маршрута, который имеет 10.102.1.193
в качестве шлюза, перечисленного в ip r
, и тот факт, что имя интерфейса - vpn
, заставляет меня задуматься, является ли он на самом деле tun
(или чем-то из уровня/слоя 3). В этом случае часть via
маршрутов не будет иметь значения, поскольку ARP/MAC не задействованы.
Например, с OpenVPN (с tun) способ использования клиента в качестве шлюза заключается в том, чтобы включить client-to-client
и добавить соответствующий iroute
push route
-уведомление (или настроить на клиенте), чтобы VPN-сервер знал, куда (т. е. какому клиенту) направлять трафик (вместо того, чтобы «выпускать его» на свой собственный хост).
Хотя VPN, похоже, является многоклиентской настройкой, с ней и OpenVPN вы обычно не настраиваете адрес таким образом (поскольку на самом деле, он требует, чтобы вы установили iroute
адрес, иначе сервер даже не ответил бы на ваш пинг через туннель). Так что, возможно, это просто моя дикая догадка (или вы все делаете неправильно).