Моя домашняя сеть в США находится за маршрутизатором Buffalo (G300NH), на котором установлена их версия DD-WRT. Я использую встроенный PPTP VPN-клиент для подключения к VPN-провайдеру в Великобритании. Я маршрутизирую определенный трафик через VPN (поэтому он имеет исходный адрес в Великобритании по различным вполне законным причинам), чего я достиг, следуя инструкциям в документации DD-WRT и инструкциям моего провайдера VPN. Я поместил две команды, как это в сценарии брандмауэра:
route add -net xxx.xxx.0.0 netmask 255.255.0.0 dev ppp0
route add -net yyy.yyy.0.0 netmask 255.255.0.0 dev ppp0
Я не вставлял ни одно из правил iptables, так как, похоже, они не нужны моей настройке. Отлично работает. Трафик в подсети xxx
идет через VPN, все остальное идет через собственные каналы моего провайдера.
Проблема возникает, когда VPN падает, что иногда происходит. DD-WRT прекрасно справляется с автоматическим переподключением, но маршруты каждый раз сбрасываются.
Как мне автоматизировать процесс восстановления маршрутов? Я думал о статических маршрутах, но IP-адрес VPN-подключения назначается динамически (именно поэтому я использую dev ppp0
).