Есть различные железки, так или иначе на Linux (VPS, роутеры, ПК), есть туннели между ними (OpenVPN, IPSec,..).
Скажем, есть туннель между подсетями 192.168.0.0/24 и 192.168.1.0/24, например на OpenVPN. При его падении пакеты пойдут через дефолтный маршрут, т.е. в сеть провайдера, чего не очень хочется. Решение в лоб - добавлять правило дропа пакетов до удаленной подсети когда туннель лежит и удалять при поднятии - не очень нравится из-за того, что не понятно - это действительно потери по какой-то причине, или же туннель не работает вообще.
Как можно отдавать No route to host, при наличии дефолтного маршрута? Поиск выдает решение проблемы No route to host, а как эту проблему сделать - ничего толкового...
При его падении пакеты пойдут через дефолтный маршрут, т.е. в сеть провайдера, чего не очень хочется
С какой такой радости, если маршрут явно указан? Упал интерфейс=no route to network\host
Дефолтный маршрут же действует для всех, за исключением явно указанных?
Поправьте меня..
Diman89: может это особенность прошивки роутера, но к примеру при таком добавлении (192.168.10.1 - IP удаленного роутера в OpenVPN-туннеле)
/opt/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.10.1
Этот маршрут удаляется при остановке туннеля, когда нет интерфейса с IP из 192.168.10.0/24. Такое наблюдал на разных прошивках и разных роутерах, так что подразумеваю стандартным поведением. Поправьте, если ошибаюсь, и можно добавить маршрут так, чтобы он был в таблице даже при отсутствии интерфейса.
KorDen32: микротик делает маршрут неактивным:
[code]
interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS
7 X VPN_via_VPS pptp-out
ip route print
Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme,
B - blackhole, U - unreachable, P - prohibit
# DST-ADDRESS PREF-SRC GATEWAY DISTANCE
0 S 0.0.0.0/0 VPN_via_VPS 1
2 A S 0.0.0.0/0 PPPoE_DOMRU 2
3 ADC 10.92.255.254/32 XXX.XXX.XXX.XXX PPPoE_DOMRU 0
[/code]
Diman89: и действительно шлет все по дефолту - но у меня маршрут через VPN - и так дефолтный, так что 100% сказать не могу
Написано
Валентин
@vvpoloskin Куратор тега Компьютерные сети
Инженер связи
Можно добавить второй статический маршрут на нужную сеть с меньшей метрикой, ведущий на интерфейс null0. Тогда при отказе vpn первый маршрут будет слетать, второй оставаться и генерить no route to host. Пример на линукс.
А еще можно попробовать поэксперементировать туннельный интерфейс добавить в bridge и использовать для маршрутизации новый интерфейс brX. Тогда при падении туннеля интерфейс brX будет оставаться, но маршрутизатор все равно будет генерить no route to host