Время переключения на реализацию LACP с использованием Opendaylight - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь реализовать протоколы управления агрегацией Link, используя контроллер Opendaylight версии 0.4.0 / Berrylium.На mininet i уже работает топология сети , подобная этой, конфигурирование соединения на h1 <-> s1 (2 члена, режим 4 и интервал скорости lacp по умолчанию 30 с).На opendaylight я уже запускаю karaf и несколько функций, необходимых для реализации LACP.Вот мой скрипт топологии сети.

from mininet.topo import Topo

class MyTopo( Topo ):
"Simple topology example."

def __init__( self ):
    "Create custom topo."

    # Initialize topology
    Topo.__init__( self )

    # Add hosts and switches
    h1 = [self.addHost('h1')]
    h2 = [self.addHost('h2')]
    h3 = [self.addHost('h3')]
    h4 = [self.addHost('h4')]
    h5 = [self.addHost('h5')]

    s1 = [self.addSwitch('s1')]

    # Add links from switch to host
    self.addLink('s1','h1')
    self.addLink('s1','h1')
    self.addLink('s1','h2')
    self.addLink('s1','h3')
    self.addLink('s1','h4')
    self.addLink('s1','h5')                

topos={'mytopo':( lambda:MyTopo() )}

Вот скрипт конфигурации соединения в H1.

nano /etc/modprobe.d/bonding.conf
    alias bond0 bonding
    options bonding mode=4
modprobe bonding
ip link add bond0 type bond
ip link set bond0 address 00:00:00:00:05:06
ip link set h1-eth0 down
ip link set h1-eth1 down
ip link set h1-eth0 address 00:00:00:00:00:11
ip link set h1-eth1 address 00:00:00:00:00:12
ip link set h1-eth0 master bond0
ip link set h1-eth1 master bond0
ip addr del 10.0.0.1/8 dev h1-eth0
ip addr add 10.0.0.1/8 dev bond0
ip link set bond0 up
cat /proc/net/bonding/bond0

После того, как в руководстве пользователя написано, соответствующая запись таблицы группы будет создана наПереключатель OpenFlow (s1) с «типом», установленным на «выбор», для выполнения функций LAG.И затем, чтобы применить функциональность LAG на коммутаторах, потоки должны быть настроены с действием, установленным в GroupId вместо выходного порта.В моем эксперименте я использую простой pingtest от h1 до h2 / h3 / h4 / h5 и наблюдаю таблицу потоков в коммутаторе.На моем опыте, shen конфигурация соединения в h1 готово, запись таблицы групп, созданная на s1 с "типом", установленным в "select" с group_ID = 29129.Затем я использую идентификатор_группы, чтобы вручную добавить поток с помощью этой команды.

ovs-ofctl -O Openflow13 add-flow s1 dl_type=0x0806,dl_dst=00:00:00:00:05:06,actions=group:29129
ovs-ofctl -O Openflow13 add-flow s1 dl_type=0x0800,dl_dst=00:00:00:00:05:06,actions=group:29129

Функция lacp в качестве защиты уже работает.Я также наблюдаю таблицу потоков s1 и производительность, используя 2 одновременных соединения iperf (h1 <-> h2 и h1 <-> h3).В моем эксперименте он заметил, что lacp также увеличит общую пропускную способность, пропуская трафик iperf через оба члена канала для каждого соединения.

Проблема, которая меня запутывает, заключается в том, что я пытаюсь измерить время переключения.Когда я попытался отключить 1-ую ссылку связывающих участников, пинг-трафик сразу переместился на 2-ю ссылку, не дожидаясь времени ожидания 1-й ссылки.Используя lacp с медленной скоростью по умолчанию (30 с), механизм переключения обычно ожидает 3-й интервал времени ожидания (<90 с). </p>

Я ожидал, что время переключения пинг-теста будет примерно 60-90 с, как в экспериментеиспользуя рю контроллер.Но результат моего эксперимента всего за 1 с использованием наблюдения проволочной акулы.

Возможно, некоторые из вас могли бы помочь мне выяснить, почему время переключения в реализации LACP с использованием opendaylight так быстро.Это потому, что ручная надстройка использует group_ID.Или это какой-то неправильный шаг, который я сделал в ходе эксперимента.

...