У меня есть несколько VPN-подключений, которые используют один и тот же IP-адрес шлюза (у меня нет возможности изменить это, поскольку это вне моего контроля). Все эти VPN предоставляют доступ к разным сетям, и сети находятся как минимум в одном или двух переходах в восходящем направлении, поэтому во всех случаях требуется IP-адрес шлюза. С помощью Linux для маршрутизации в сети я могу просто сделать:
ip route add $destination_1 via $gateway_ip dev $interface_1
ip route add $destination_2 via $gateway_ip dev $interface_2
ip route add $destination_3 via $gateway_ip dev $interface_3
и т.п.
Затем Linux поместит трафик для каждой сети назначения на правильные интерфейсы, направляясь к правильному шлюзу, поэтому не имеет значения, что IP-адрес шлюза одинаков для каждого интерфейса.
У меня вопрос, как я могу добиться этого в OpenBSD? Я пытался и потерпел неудачу. Мои выводы заключаются в том, что для определенного места назначения я могу либо:
- указать интерфейс (если пункт назначения напрямую доступен по этой ссылке - чего нет в моем случае)
- укажите IP-адрес шлюза, поскольку адресат не находится непосредственно на линии связи
Но я не могу понять, как определить оба.
-T
опцииroute
и определения таблицы маршрутизации для каждого пункта назначения? Я думаю, что это обеспечивает лучшую "изоляцию" для правил интерфейса.Ответы:
Используйте модификатор -ifp для маршрутизации . Со страницы руководства :
Так что-то вроде этого работает:
Если ваши маршруты назначения пересекаются, вы можете использовать pf и метки маршрутов для соответствия или маршрутизации доменов .
источник
-iface
применимо, потому что адрес шлюза предназначен для восходящего маршрутизатора (следующий переход), а не IP-адреса интерфейса на самой коробке openbsd. Когда я удалил -iface, он работал, но только для первого интерфейса VPN. Так что я могу сделать,-ifp tap0
и это работает, но если я это сделаю,-ifp tap1
то не получится,no route to host
когда я попытаюсь добавить маршрут.-link -llinfo
флаги для команды маршрута? Кроме того, я думаю, что-iface
это применимо (вы получаете ошибку без маршрутизации таблиц / домианов, как вы заметили, потому что сетевой маршрут конфликтует и не может быть добавлен снова). OpenVPN / нажмите? Хотите знать, что обеспечивает «другой» конец, если это поддельный ptp.