LINUX.ORG.RU

Сообщения real_r

 

Помогите! Не идут пакеты через маршрут по-умолчнию.

Форум — Admin

Здравствуйте друзья!
Есть 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
....
Одновременно поднято 3 OpenVPN tun_a(tun0), tun_b(tun1), tun_c(tun2) туннеля до разных серверов в городской сети (там интернет в разы дешевле):
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
...
При этом с самого роутера ping mail.ru проходит, равно как и с компов для которых роутер openwrt является шлюзом.
роняем 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
Выхлоп команды ip route show all:
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, но так же ничего и никуда не идет.
Поднимаем tun0 (ifup tun_a), но пока не делаем его шлюзом.
Получаем 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
....
И пинг так и будет идти, пока не нажмешь ctrl+c. Если начать пинговать заново, то все - Destination Net Unreachable
Выручайте друзья!!!

 , , , ,

real_r
()

RSS подписка на новые темы