SD-WAN упрощённая модель

от автора

Что такое SD-WAN? Это пересылка разных типов IP трафика в разные каналы в зависимости от разных условий.
Для лучшего понимания Что такое SD-WAN и как оно работает я создал упрощённую модель в симуляторе eve-ng, включающую 6 виртуальных маршрутизаторов Cisco, протокол BGP между R3 и R4.

Между маршрутизаторами R3 и R4 есть два WAN линка (wan1 and wan2).

Для упрощения есть два приложения генерирующих трафик.

Есть красный трафик от R1 до R5, и есть зелёный трафик от R2 до R6.
Упрощённо можно считать что, для красного и зелёного трафика требуется разная пропускная способность, разная задержка, разный jitter.

Есть управляющий сервер SD-WAN, откуда запускается Python программа, которая соединяется с маршрутизатором R3 и проверяет нагрузку на интерфейсах e0/0 e0/1, и в зависимости от заданных условий переключает красный или зелёный трафик соответственно в первый или во второй канал.

Между маршрутизаторами R3 и R4 настроен протокол bgp который позволяет управлять трафиком с маршрутизатора R3 в обе стороны (туда и обратно). С помощью «route-map in» и «route-map out» меняются приоритетность входящего и исходящего трафика для соответствующих префиксов.
В случае отключения одного из каналов конечно весь трафик пойдёт в оставшийся канал.

router bgp 3  bgp log-neighbor-changes  network 10.0.1.0 mask 255.255.255.0  network 10.0.2.0 mask 255.255.255.0  neighbor 10.0.34.4 remote-as 4  neighbor 10.0.34.4 route-map fr6 in  neighbor 10.0.34.4 route-map to5prepend out  neighbor 10.0.134.4 remote-as 4  neighbor 10.0.134.4 route-map fr5 in  neighbor 10.0.134.4 route-map to6prepend out ! ip prefix-list 1 seq 5 permit 10.0.1.0/24 ip prefix-list 2 seq 5 permit 10.0.2.0/24 ip prefix-list 5 seq 5 permit 10.0.5.0/24 ip prefix-list 6 seq 5 permit 10.0.6.0/24 ! route-map fr5 permit 10  match ip address prefix-list 5  set local-preference 150 ! route-map fr5 permit 20  match ip address prefix-list 6  continue ! route-map fr6 permit 10  match ip address prefix-list 6  set local-preference 150 ! route-map fr6 permit 20  match ip address prefix-list 5  continue ! route-map to6prepend permit 10  match ip address prefix-list 2  set as-path prepend 3 ! route-map to6prepend permit 20  match ip address prefix-list 1  continue ! route-map to5prepend permit 10  match ip address prefix-list 1  set as-path prepend 3 ! route-map to5prepend permit 20  match ip address prefix-list 2  continue !
В результате выполнения программ sdw1.py и sdw2.py красный и зеленый трафик переключаются с первого канала во второй и наоборот.

В результате выполнения программ sdw1.py и sdw2.py красный и зеленый трафик переключаются с первого канала во второй и наоборот.

Где практически это можно использовать? Например банкомат подключен к банку через двух разных сотовых провайдеров. Нагрузка на сотовую сеть может меняться в течении дня по разному у обоих провайдеров и управляющая программа SD-WAN будет например каждые 5 минут проверять задержку на каналах и переключать трафик в тот где меньше задержка.

        connection = ConnectHandler(**netmiko_connection)                  # Establish SSH connection         connection.enable()                                                # Enter enable mode                                                        commands = ['router bgp 3', 'neighbor 10.0.134.4 route-map fr6 in',           'neighbor 10.0.134.4 route-map to5prepend out', 'neighbor 10.0.34.4 route-map fr5 in',           'neighbor 10.0.34.4 route-map to6prepend out', 'end' ,'write', 'clear ip bgp * soft' ]         output = connection.send_config_set(commands)             outputd4  = connection.send_command('show runn | section router')  #           connection.disconnect()                                            # Disconnect from device     


ссылка на оригинал статьи https://habr.com/ru/articles/871550/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *