2

Я пытался направить только определенную подсеть / один через открытый VPN.

Я прочитал несколько подобных вопросов на суперпользователе и даже нашел хороший ответ на свой вопрос.

Так что теперь я могу маршрутизировать один IP-адрес через VPN. Для этого я добавил что-то вроде этого в /etc/openvpn/client.conf:

route-nopull

route 1.2.3.4 255.255.255.255
route 5.6.7.8 255.255.255.255
route 9.10.11.12 255.255.255.255

Однако это решает только половину моей проблемы, потому что я хотел бы направить определенные подсети через vpn, а не только по отдельным адресам.

Я пытался следовать

route x.y.19.178 255.255.255.0

который, я считаю, должен направлять весь трафик в подсеть xy19.178/24 через vpn, но это не так. Вместо этого я вижу следующую ошибку в системном журнале:

Dec 18 16:11:01 wi-dev ovpn-client[31421]: /sbin/ip route add x.y.19.178/24 via z.a.0.1
Dec 18 16:11:01 wi-dev ovpn-client[31421]: ERROR: Linux route add command failed: external program exited with error status: 2 

Любая идея, что может быть не так с моим клиентом (или сервером) конфигурации?

1 ответ1

3

Ваша сетевая маска недействительна для используемого вами IP-адреса. В частности, если вы берете свои IP-адреса и конвертируете их в двоичные файлы, вы получаете:

IP   = x.y.19.178            = XXXXXXXX.YYYYYYYY.00010011.10110010
MASK = 255.255.255.252 (/30) = 11111111.11111111.11111111.11111100

Для того чтобы IP-адрес был действительным для подсети, IP-адрес должен быть в начале подсети, или в двоичном выражении IP-адрес может иметь только 1 с, где маска подсети имеет 1 с. Итак, если мы удалим последнюю 1 из IP, мы получим:

IP   = x.y.19.176            = 00001010.00000000.00010011.10110000

Итак, начало вашей подсети на самом деле должно быть x.y.19.176 . Вам нужно будет рассчитать соответствующие IP-адреса, если вы хотите, чтобы подсеть отличалась от /30 . Я использовал этот инструмент, чтобы сделать некоторые расчеты.

Также обратите внимание: если вы просто запустите команду, указанную в журнале в командной строке

/sbin/ip route add x.y.19.178/24 via z.a.0.1

Вы получите ошибку обратно. На моей машине я получил "Неверный аргумент", тогда как эта команда прошла успешно:

/sbin/ip route add 192.168.19.176/24 via 192.168.0.1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .