Здравствуйте друзья!
Есть OpenWRT роутер с OpenVPN клиентом.
У местного провайдера трафик в интернет очень дорогой, поэтому у него куплено соединение в местную городскую сеть.
В настройках местное соединение (wan) не является шлюзом - прописаны статические маршруты до подсетей города:
#ip route show all
31.40.24.0/22 via 62.209.137.254 dev eth1 proto static
31.135.208.0/21 via 62.209.137.254 dev eth1 proto static
31.148.144.0/22 via 62.209.137.254 dev eth1 proto static
....
6: tun2: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
link/none
7: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
link/none
8: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
link/none
tun_a: 10.8.1.0/24, gw=10.8.1.100, client=10.8.1.102
tun_b: 10.8.2.0/24, gw=10.8.2.100, client=10.8.2.102
tun_c: 10.8.3.0/24, gw=10.8.3.100, client=10.8.3.102
ping -I tun0 8.8.8.8 -c 3 -q.
Далее через grep смотрим результат и если tun0 поднят и работает, то делаем его шлюзом:
ip route add default dev tun0
; Результат:
default dev tun0 scope link
10.8.1.0/24 dev tun0 proto kernel scope link src 10.8.1.107
10.8.2.0/24 dev tun1 proto kernel scope link src 10.8.2.102
10.8.3.0/24 dev tun2 proto kernel scope link src 10.8.3.102
31.40.24.0/22 via 62.209.137.254 dev eth1 proto static
31.135.208.0/21 via 62.209.137.254 dev eth1 proto static
31.148.144.0/22 via 62.209.137.254 dev eth1 proto static
37.110.208.0/21 via 62.209.137.254 dev eth1 proto static
...
роняем tun0 командой
fdown tun_a
Скрипт отрабатывает, видит что нет tun0 или через него не пингуется днс и настраивает все на tun1 командой:
ip route add default dev tun1
Но, после этого пинг маил.ру дает такой резуьтат:
root@OpenWrt:~# ping mail.ru
PING mail.ru (217.69.139.199): 56 data bytes
ping: sendto: Network is unreachable
default dev tun1 scope link
10.8.2.0/24 dev tun1 proto kernel scope link src 10.8.2.102
10.8.3.0/24 dev tun2 proto kernel scope link src 10.8.3.102
31.40.24.0/22 via 62.209.137.254 dev eth1 proto static
31.135.208.0/21 via 62.209.137.254 dev eth1 proto static
31.148.144.0/22 via 62.209.137.254 dev eth1 proto static
37.110.208.0/21 via 62.209.137.254 dev eth1 proto static
ip route add default scope global dev tun1 #получаем default dev tun1, но пакеты так никуда и не отправляются
ip route add 0.0.0.0/0 via 10.8.2.100 #получаем default via 10.8.2.100 dev tun1, но так же ничего и никуда не идет.
Получаем default via 10.8.2.100 dev tun1 - все верно, скрипт еще не отработал (для отладки я вместо него сам уже команды ввожу :) )
#Выполняем
ip route add default dev tun0 #иииииииии опять облом, в ответ на пинг 217.69.139.200 получаем sendto: Network is unreachable
#При этом, если выполнить
ping -I tun0 #то видно что интерфейс пашет
root@OpenWrt:~# ping -I tun0 217.69.139.200
PING 217.69.139.200 (217.69.139.200): 56 data bytes
64 bytes from 217.69.139.200: seq=0 ttl=50 time=128.661 ms
64 bytes from 217.69.139.200: seq=1 ttl=50 time=77.247 ms
Друзья, помогите плиз, что не так с этим роутингом?
2-ые сутки сижу уже :)
Не люблю спрашивать, всегда по мануалу сам дохожу, но это не тот случай.
P.S> Любопытная деталь: если до того как я изначально роняю tun0 с компа из локалки (openwrt для компа шлюз) выполнить ping mail.ru, то получаем, что в момент падения tun0 будет такой ответ
From OpenWRT.lan (192.168.1.215) icmp_senq=214 Destination Net Unreachable
From OpenWRT.lan (192.168.1.215) icmp_senq=215 Destination Net Unreachable
From OpenWRT.lan (192.168.1.215) icmp_senq=216 Destination Net Unreachable
64 bytes from cp.mail.ru (217.69.139.200) icmp_senq=217 ttl=50 time=71 ms
64 bytes from cp.mail.ru (217.69.139.200) icmp_senq=218 ttl=50 time=71 ms
....
Выручайте друзья!!!