Что такое 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 !
Где практически это можно использовать? Например банкомат подключен к банку через двух разных сотовых провайдеров. Нагрузка на сотовую сеть может меняться в течении дня по разному у обоих провайдеров и управляющая программа 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/
Добавить комментарий