Роутинг VPN-подсетей посредством BGP
Есть 2 микротика. Один на работе, один дома. За микротиком который на работе имеются 3 подсети. Дома соответственно одна. Назовем, который на работе p92, который дома k155.
p92 обслуживает
192.168.0.0/24 192.168.10.0/24 192.168.51.0/24
За k155 только одна подсеть
192.168.254.0/24
На p92 поднят OpenVPN сервер. Домашний k155 подключается к p92 по OpenVPN. При подключении клиенту выдается статический адрес
10.14.38.100
На стороне сервера всегда
10.14.38.1
Хочется иметь доступ ко всем устройствам на работе. Можно указать руками все маршруты, тем более, что их не много. Но пойдем другим путем. Будем использовать BGP в его минимальной конфигурации.
На первом роутере p92. Создадим новый инстанс.
/routing bgp instance set default disabled=yes add as=92 client-to-client-reflection=no name=p92 redistribute-static=yes router-id=10.14.38.1
Скажем, какие сети будем раздавать:
/routing bgp network add network=192.168.0.0/24 synchronize=no add network=192.168.51.0/24 synchronize=no
Настроим peer: используем инстанс p92, имя пира k155, удаленный адрес 10.14.38.100, удаленная AS - 155, ключ шифрования и работаем только по интерфейсу ovpn-k155
/routing bgp peer add instance=p92 name=k155 remote-address=10.14.38.100 remote-as=155 \ tcp-md5-key=70886038 ttl=default update-source=<ovpn-k155>
На стороне клиента все примерно так же.
Инстанс:
/routing bgp instance set default disabled=yes add as=155 client-to-client-reflection=no name=k155 redistribute-static=yes router-id=10.14.38.100
Сети, которые раздаем:
/routing bgp network add network=192.168.254.0/24 synchronize=no
Пир:
/routing bgp peer add instance=k155 name=p92 remote-address=10.14.38.1 remote-as=92 \ tcp-md5-key=70886038 ttl=default update-source=atk
Посмотрим наши таблицы маршрутизации. Сначала на p92:
[admin@atk] > /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 A S 0.0.0.0/0 213.5.16.1 1 1 DC 10.0.0.0/24 10.0.0.1 ether10 255 2 ADC 10.14.38.100/32 10.14.38.1 <ovpn-k155> 0 3 ADC 192.168.0.0/24 192.168.0.254 ether2-master 0 4 ADC 192.168.10.0/24 192.168.10.254 ether3 0 5 ADC 192.168.51.0/24 192.168.51.254 br51 0 6 ADb 192.168.254.0/24 10.14.38.100 20 7 ADC 213.5.16.0/21 213.5.16.51 ether1 0
И на домашнем k155:
[admin@k155] > /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 ADS 0.0.0.0/0 pppoe-out1 1 1 ADC 5.143.64.1/32 5.143.104.50 pppoe-out1 0 2 ADC 10.14.38.0/24 10.14.38.100 atk 0 3 ADb 192.168.0.0/24 10.14.38.1 20 4 ADb 192.168.51.0/24 10.14.38.1 20 5 ADC 192.168.254.0/24 192.168.254.254 bridge 0
Видим, что сети 192.168.0.0/24 и 192.168.51.0/24 доступны по BGP через 10.14.38.1