Моя домашняя сеть в США находится позади маршрутизатора Buffalo (G300NH), выполняющий их версию DD-WRT. Я использую встроенного клиента VPN PPTP для соединения с поставщиком 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, все остальное выходит по собственным каналам моего ISP.
Проблема возникает, когда VPN отбрасывает, который она иногда делает. DD-WRT делает прекрасное задание повторного подключения его автоматически, но маршруты повреждаются каждый раз, который происходит.
Как я автоматизирую процесс восстановления моих маршрутов? Я думал о статических маршрутах, но IP-адрес соединения VPN динамично присвоен (который является, почему я использую dev ppp0
).
Проблема с реализацией dd-wrt состоит в том, что pptp клиент настраивает таблицу маршрутизации правильно, но сервер не делает. Обычно можно соединиться в от клиента, но не из сервера. Это закрепит таблицу маршрутизации на стороне сервера каждый раз, когда соединение подходит и будет работать через перезагрузки и снова соединяется.
От DD-WRT, работающего как pptp СЕРВЕР, нажмите на вкладку 'администрирования' затем на вкладке 'команды', затем введите это:
/bin/sh -c 'echo "ip route add XX.XX.XX.0/24 dev ppp0" >> /tmp/pptpd/ip-up'
Затем сохраните как 'Сценарий Запуска' для создания этого постоянным. Конечно, измените XX's на подсеть Клиентской сети. Если у Вас есть несколько клиентских подсетей, то просто добавляют несколько строк вышеупомянутого с правильными подсетями для каждой клиентской сети.