следующий вопрос имеет подробное описание. Я надеюсь, что кто-то в аналогичном положении находит его полезным. Пожалуйста, будьте терпеливы. Моя проблема в конце концов.
прежде всего, у меня есть следующие настройки в доме:
--MODEM (ADSL) - ISP INTERNET : 192.168.0.1
|
-- WIRELESS ROUTER (DDWRT) : 192.168.1.1
у меня есть служба L2TP VPN, что мне нужно использовать должны времени для доступа в интернет. Поскольку DD-WRT не поддерживает L2TP в качестве VPN-клиента, я закончил настройку его в качестве основного WAN-соединения. Работает должным образом, и мой трафик проходит через VPN-соединение с все беспроводные клиенты и порты Ethernet. Именно то, что мне нужно.
теперь в некоторых редких случаях я не хочу использовать VPN-соединение. Например, когда он падает. До сих пор я должен был пойти в Панель управления маршрутизатора и установить настройки WAN в "DHCP", чтобы получить прямой доступ в интернет. Затем снова, когда VPN станет онлайн, верните настройки обратно.
Я нашел, что трудно (особенно потому, что никто не знает, как это сделать), и поэтому я решил создать виртуальный беспроводной интерфейс, который использует IP адрес модема в качестве шлюза и в результате любое подключенное к нему устройство получает прямую ссылку на интернет. Поэтому я создал виртуальный беспроводной интерфейс и добавил его в новый мост, а затем настроил DHCP, чтобы назначить любому клиенту, подключенному к нему, IP-адрес в 192.168.3.х IP-пространство. Следующие скриншоты помогут вам понять setup:
до сих пор все работает, как ожидалось. Теперь мне нужно было найти способ отправить трафик из этой подсети (192.168.3.x) к 192.168.0.1, который является модемом ADSL и в результате обходит PPP-соединение маршрутизатора.
используя мои ограниченные знания IP таблицы и некоторая помощь из интернета я написал следующий скрипт:
ip rule add from 192.168.3.0/24 table 200
ip route add default via 192.168.0.1 dev vlan2 table 200
ip route flush cache
таблица IP содержит следующие правила Перед выполнением вышеуказанных команд:
root@router:~# ip route
default via 192.168.100.198 dev ppp0 scope link
50.105.xxx.xxx via 192.168.0.1 dev vlan2
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1
192.168.0.0/24 dev vlan2 proto kernel scope link src 192.168.0.100
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
192.168.1.1 via 192.168.0.1 dev vlan2
192.168.3.0/24 dev br1 proto kernel scope link src 192.168.3.1
192.168.100.198 dev ppp0 scope link
после выполнения в таблице 200:
root@router:~# ip route list table 200
default via 192.168.0.1 dev vlan2
как вы можете видеть, выше команды работает хорошо, но у меня есть две проблемы:
-
Я не могу найти надежный способ, чтобы выполнить его при каждом перезапуске
-
VPN-соединение не будет подключаться снова после разъединенный. На самом деле после отключения любой клиент, кроме тех, с 192.168.3.x IP-адрес потерять доступ в интернет.
взгляните на правила таблицы IP после отключенного:
root@router:~# ip route list table 200
default via 192.168.0.1 dev vlan2
root@router:~# ip route
127.0.0.0/8 dev lo scope link
169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1
192.168.0.0/24 dev vlan2 proto kernel scope link src 192.168.0.100
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
192.168.1.1 via 192.168.0.1 dev vlan2
192.168.3.0/24 dev br1 proto kernel scope link src 192.168.3.1
основываясь на приведенном выше результате, я предполагаю, что это из-за отсутствия правила по умолчанию, но почему и как я могу его решить? Важно знать, что без выполнения моих пользовательских команд все будет работать нормально.
что я пробовал уже:
- Запуск Скрипта:
я использовал ниже команду, чтобы создать скрипт выполнится в WAN подключении. не имел никакого успеха.
mkdir -p '/tmp/etc/config/'
echo "ip rule add from 192.168.3.0/24 table 200
ip route add default via 192.168.0.1 dev vlan2 table 200
ip route flush cache" > '/tmp/etc/config/direct.wanup'
chmod +x '/tmp/etc/config/direct.wanup'
может ли кто-нибудь помочь?