LINUX.ORG.RU
ФорумAdmin

Default route через ospf для iproute2

 ,


0

2

Понимаю что выглядит странно, но хочется примерно такого...

Есть далекий сервер к которому поднято для openvpn point-to-point туннеля в дата-центре. К данному серверу подключен домашний роутер. Внутри тунелей бегает ospf, где со стороны дц анонсируется роут 192.168.200.254/24 (перед этим было /32) который прибит на сервере к lo:0 интерфейсу.

Домашние клиенты без проблем пингают 200.254 который находится в дц. Теперь текущая задача сделать возможность заворачивать трафик через next-hop для определенных хостов внутри сети. Раньше это делалось просто через ip rule и пошло поехало. Но вот тут встала проблема, создал новую таблицу vpn111 и попытался в ней прописать default route, на что получил:

RTNETLINK answers: Network is unreachable

если посмотреть на роутере таблицу машрутов то будет так:

root@router:~# ip r
default via myprov dev enp4s0
10.61.0.1 dev tun1061  proto kernel  scope link  src 10.61.0.2
10.62.0.1 dev tun1062  proto kernel  scope link  src 10.62.0.2
176.36.0.0/14 dev enp4s0  proto kernel  scope link  src 176.36.33.130
192.168.7.0/24 dev vmbr0  proto kernel  scope link  src 192.168.7.254
192.168.200.0/24 via 10.61.0.1 dev tun1061  proto zebra  metric 20

Сама задача звучит примерно так: хочу чтобы ряд хостов внутри домашней сети ходили в мир через сервер в дц, при этом каналы до дц резервировались и было полностью прозрачное их переключение.

Добавь в таблицу маршруты для интерфейсов в который ты собрался отправлять default route.

Поясню. Допустим у тебя есть интерфейс eth0 с адресом 192.168.1.2/24. В таблице main при этом ядро создаст т.н. connected route для сети 192.168.1.0/24. И при добавлении default route через, например, 192.168.1.1 ядро будет знать что трафик надо направлять на адрес шлюза через интерфейс eth0.

В твоём случае ядро не знает где искать сеть и нужный интерфейс и закономерно выдаёт ошибку «Network is unreachable»

Команда для добавления маршрута должна выглядеть примерно так:

ip route add 192.168.1.0/24 dev eth0 table my_table

В твоём случае можно заставить OpenVPN добавлять connected-маршрут при подключении. А там дальше уже получать его по OSPF.

Только учти вот еще что - Quagga очень ограниченно работает с кастомными таблицами маршрутизации. Может тебе её и хватит, но я рекомендую посмотреть в сторону bird.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)

Вот так должно добавить.

ip ro add default via 10.61.0.1 table vpn111
ip ro add default via 10.62.0.1 table vpn112

А вообще замучаешься настраивать это все,особенно отказоустойчивость Проще на хосты поставить ospf и с сервака инжектить default-route

TOXA ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.