Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    Интеграция Proxmox SDN с существующей сетью SDN

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Интеграция Proxmox SDN с существующей сетью SDN, Proxmox Виртуальная Среда
     
    mbosma
    Guest
    #1
    0
    09.08.2023 17:58:00
    Я пытался интегрировать Proxmox SDN в уже существующую сеть vxlan с использованием IS-IS. Так мы сможем использовать разные vnet'ы на нескольких кластерах, а также привязывать их к vlan для подключения устаревших устройств. В нашей лабораторной настройке используется route-reflector на spine-коммутаторе и два leaf-коммутатора. Используя IS-IS как «нижний» уровень и evpn, серверы Proxmox (два в кластере и один отдельно) могут получать маршруты от route-reflector. Так виртуальные машины могут общаться с другими ВМ в одном vnet, с ВМ на других кластерах и с устройствами, подключёнными к этому VNI. Лабораторная настройка в целом получилась успешной, но есть один нюанс. Плагин Proxmox SDN добавляет (и не добавляет) несколько опций, из-за чего после каждой перезагрузки конфигурации приходится делать ручные правки. Несколько изменений я могу настроить в frr.conf.local:  
    Роутер IS-IS:  
    Код:  
    router isis 1  
    net 10.0000.0000.0005.00  
    redistribute ipv4 connected level-1  
    log-adjacency-changes  
    exit

    И:  
    Код:  
    router bgp 65000  
    address-family l2vpn evpn  
     no neighbor VTEP route-map MAP_VTEP_IN in  
     no neighbor VTEP route-map MAP_VTEP_OUT out  
    exit  
    exit

    По какой-то причине frr не хочет работать как route-reflector клиент с этими настройками, хотя permit стоит в 1. Я, конечно, не эксперт по frr, но удаление этих настроек сработало. Однако следующие изменения frr.conf.local не воспринимает и они самые важные:  
    Код:  
    interface vmbr1  
    ip router isis 1  
    exit

    Без этого изменения серверы теряют IS-IS в «нижнем» уровне и все маршруты, что фактически выводит из строя всю сеть на хостах. Я пытался немного поковыряться в плагине SDN, но мой perl не на высоте. Можно ли было бы сделать разбор блоков интерфейсов?  
    Вот ещё немного информации для заинтересованных:  
    Схема подключённых устройств:  
    Вот конфиги SDN:  
    Код:  
    root@pve1-test:~# cat /etc/pve/sdn/controllers.cfg  
    evpn: evpn  
           asn 65000  
           peers 10.99.99.1

    root@pve1-test:~# cat /etc/pve/sdn/zones.cfg  
    evpn: evpnz1  
           controller evpn  
           vrf-vxlan 1001  
           advertise-subnets 1  
           ipam pve  
           mac DE:AA:11:CD:D5:98  
           mtu 9000

    root@pve1-test:~# cat /etc/pve/sdn/vnets.cfg  
    vnet: vni100  
           zone evpnz1  
           tag 100

    vnet: vni300  
           zone evpnz1  
           tag 300

    vnet: vni200  
           zone evpnz1  
           tag 200

    И конфигурация сети:  
    Код:  
    auto lo  
    iface lo inet static  
           address 10.99.99.4/32

    iface lo inet static  
           address 10.99.99.4/32

    iface eno1 inet manual

    iface eno2 inet manual

    iface enp8s0f0 inet manual

    auto enp8s0f1  
    iface enp8s0f1 inet manual  
           mtu 9000

    auto vmbr0  
    iface vmbr0 inet static  
           address 192.168.245.201/24  
           gateway 192.168.245.1  
           bridge-ports eno1  
           bridge-stp off  
           bridge-fd 0

    auto vmbr1  
    iface vmbr1 inet static  
           address 10.1.0.1/31  
           bridge-ports enp8s0f1  
           bridge-stp off  
           bridge-fd 0  
           mtu 9000

    auto vmbr2  
    iface vmbr2 inet static  
           address 10.66.100.20/24  
           bridge-ports enp8s0f0  
           bridge-stp off  
           bridge-fd 0

    source /etc/network/interfaces.d/*

    А вот рабочая конфигурация frr:  
    Код:  
    !  
    frr version 8.5.1  
    frr defaults datacenter  
    hostname pve1-test  
    log syslog informational  
    service integrated-vtysh-config  
    !  
    vrf vrf_evpnz1  
    vni 1001  
    exit-vrf  
    !  
    interface vmbr1  
    ip router isis 1  
    exit  
    !  
    router bgp 65000  
    bgp router-id 10.1.0.1  
    no bgp hard-administrative-reset  
    no bgp default ipv4-unicast  
    coalesce-time 1000  
    no bgp graceful-restart notification  
    neighbor VTEP peer-group  
    neighbor VTEP remote-as 65000  
    neighbor VTEP bfd  
    neighbor 10.99.99.1 peer-group VTEP  
    !  
    address-family l2vpn evpn  
     neighbor VTEP activate  
     advertise-all-vni  
    exit-address-family  
    exit  
    !  
    router bgp 65000 vrf vrf_evpnz1  
    bgp router-id 10.1.0.1  
    no bgp hard-administrative-reset  
    no bgp graceful-restart notification  
    !  
    address-family ipv4 unicast  
     redistribute connected  
    exit-address-family  
    !  
    address-family ipv6 unicast  
     redistribute connected  
    exit-address-family  
    !  
    address-family l2vpn evpn  
     advertise ipv4 unicast  
     advertise ipv6 unicast  
    exit-address-family  
    exit  
    !  
    router isis 1  
    net 10.0000.0000.0004.00  
    redistribute ipv4 connected level-1  
    log-adjacency-changes  
    exit  
    !  
    route-map MAP_VTEP_IN permit 1  
    exit  
    !  
    route-map MAP_VTEP_OUT permit 1  
    exit  
    !  
    end

    Надеюсь, мой опыт кому-то поможет в будущем, если кто-то наткнётся на эту тему. Если бы кто-то из разработчиков мог взглянуть на мою просьбу по парсингу блока интерфейсов в frr.conf.local — буду очень признателен.
     
     
     
    spirit
    Guest
    #2
    0
    29.08.2023 13:19:00
    Привет, извиняюсь за опоздание, сейчас работаю над плагином isis (и исправляю парсинг интерфейсов в frr.conf.local). Думаю, завтра будет рабочая бета.
     
     
     
    spirit
    Guest
    #3
    0
    29.08.2023 15:58:00
    Привет, попробуй выполнить следующие команды:

    Код:  
    wget https://mutulin1.odiso.net/libpve-network-perl_0.8.1_all.deb  
    dpkg -i libpve-network-perl_0.8.1_all.deb  
    systemctl restart pvedaemon  
    systemctl restart pveproxy  

    Дальше:  
    1) Проверь, работает ли frr.conf.local с параметром "interface".  
    2) Я добавил нового контроллера isis, попробуй отредактировать /etc/pve/sdn/controllers.cfg:

    Код:  
    evpn: evpn  
           asn 65000  
           peers 10.99.99.1  

    isis: isisyournodehostname1  
           isis-iface vmbr0  
           isis-net 10.0000.0000.0005.00  
           node yournodehostname1 (например: isisyournodehostname → isismynode), главное, чтобы был isis)  

    После этого перезагрузи sdn — он должен сгенерировать правильную конфигурацию isis.
     
     
     
    mbosma
    Guest
    #4
    0
    29.08.2023 18:05:00
    Большое спасибо! На этой неделе попробуем протестировать бета-версию.
     
     
     
    mbosma
    Guest
    #5
    0
    30.08.2023 16:58:00
    Обе правки пока работают отлично! Я попробовал задать блок интерфейса в frr.conf.local, и он появился в frr.conf, как и ожидалось. Твое другое изменение тоже работает, я смог запустить настройку без необходимости использовать frr.conf.local, что довольно удобно! Мой controller.cfg выглядит так:  
    Код:  
    evpn: evpn  
     asn 65000  
     peers 10.99.99.1  
     
    isis: pve1-test  
     isis-iface enp8s0f1  
     isis-net 10.0000.0000.0004.00  
     node pve1-test  
     
    isis: pve2-test  
     isis-iface enp65s0f3  
     isis-net 10.0000.0000.0005.00  
     node pve2-test  
     
    isis: pve4-test  
     isis-iface eno8  
     isis-net 10.0000.0000.0007.00  
     
    Что приводит к такому frr.conf:  
    Спойлер: frr.conf  
    Код:  
    frr version 8.5.1  
    frr defaults datacenter  
    hostname pve1-test  
    log syslog informational  
    service integrated-vtysh-config  
    !  
    !  
    vrf vrf_evpnz1  
     vni 1001  
    exit-vrf  
    !  
    interface enp8s0f1  
     ip router isis isis1  
    !  
    router  
     !  
     address-family l2vpn evpn  
      #  no neighbor VTEP route-map MAP_VTEP_IN in  
      #  no neighbor VTEP route-map MAP_VTEP_OUT out  
      # exit  
      #exit  
     exit-address-family  
    exit  
    !  
    router bgp 65000  
     bgp router-id 10.1.0.1  
     no bgp hard-administrative-reset  
     no bgp graceful-restart notification  
     no bgp default ipv4-unicast  
     coalesce-time 1000  
     neighbor VTEP peer-group  
     neighbor VTEP remote-as 65000  
     neighbor VTEP bfd  
     neighbor 10.99.99.1 peer-group VTEP  
     !  
     address-family l2vpn evpn  
      neighbor VTEP activate  
      advertise-all-vni  
     exit-address-family  
    exit  
    !  
    router bgp 65000 vrf vrf_evpnz1  
     bgp router-id 10.1.0.1  
     no bgp hard-administrative-reset  
     no bgp graceful-restart notification  
     !  
     address-family ipv4 unicast  
      redistribute connected  
     exit-address-family  
     !  
     address-family ipv6 unicast  
      redistribute connected  
     exit-address-family  
     !  
     address-family l2vpn evpn  
      advertise ipv4 unicast  
      advertise ipv6 unicast  
     exit-address-family  
    exit  
    !  
    router isis isis1  
     net 10.0000.0000.0004.00  
     redistribute ipv4 connected level-1  
     redistribute ipv6 connected level-1  
     log-adjacency-changes  
    exit  
    !  
    route-map MAP_VTEP_IN permit 1  
    exit  
    !  
    route-map MAP_VTEP_OUT permit 1  
    exit  
    !  
    line vty  
    !  
     
    Мое предложение — сделать ISIS id динамическим на случай, если захочется создать еще одно соединение. router isis isis1 — валидная опция для frr https://docs.frrouting.org/en/latest/isisd.html#clicmd-router-isis-WORD-vrf-NAME , было бы здорово добавить возможность задавать "WORD" вместо жестко прописанного "isis1". Также, возможно ли добавить несколько интерфейсов в один блок isis в controller.cfg? Тогда можно подключать коммутаторы с резервированием (multi-home). Например, такой код:  
    Код:  
    isis: pve2-test  
     isis-iface enp65s0f3,enp65s0f4  
     isis-net 10.0000.0000.0005.00  
     node pve2-test  
     
    Приведет к:  
    Код:  
    interface enp65s0f3  
     ip router isis isis1  
    !  
    interface enp65s0f4  
     ip router isis isis1  
     
    Огромное спасибо за проделанную работу над этим плагином. Эти улучшения действительно помогают сделать следующий шаг к использованию его в продакшене.
     
     
     
    spirit
    Guest
    #6
    0
    30.08.2023 18:14:00
    Привет, спасибо за тестирование! Я зашил это жестко, поскольку из документации кажется, что сейчас поддерживается только один роутер? "isisd пока не поддерживает несколько процессов ISIS, но нужно указать имя процесса ISIS". Да, конечно! Завтра пришлю патч для теста. (Извини, я не очень хорошо понимаю, как работает протокол ISIS, так что твои советы очень нужны).

    Кстати, по поводу бага с route-map — ты тестировал на proxmox8 / frr 8.5? Потому что мы нашли баг в frr и с route-map: https://bugzilla.proxmox.com/show_bug.cgi?id=4810, и скоро должна выйти исправленная версия.

    Можешь протестировать эту версию?  
    Код:  
    wget https://mutulin1.odiso.net/frr_8.5.2-1+pve1_amd64.deb  
    wget https://mutulin1.odiso.net/frr-pythontools_8.5.2-1+pve1_all.deb  
    dpkg -i frr_8.5.2-1+pve1_amd64.deb frr-pythontools_8.5.2-1+pve1_all.deb

    И оставь в frr.conf эти две строки:  
    Код:  
    neighbor VTEP route-map MAP_VTEP_IN in  
    neighbor VTEP route-map MAP_VTEP_OUT out

    Посмотрим, работает или нет.
     
     
     
    mbosma
    Guest
    #7
    0
    31.08.2023 16:52:00
    Я не был до конца уверен в этом моменте. Идея с динамическим именем скорее административная. В FRR может быть только один процесс/domain isis, а в сети их может быть несколько. Сделать имя динамическим будет полезно, если в вашей сети несколько доменов isis. Я тестирую на последнем стабильном релизе Proxmox. Мы уже выяснили, что удалось подключиться, используя ваш последний патч с настроенными route-map. Похоже, что проблема возникала из-за того, что route-map применялся до установления isis. После патча isis устанавливается сразу, потому что больше не требуется вручную вводить команды в shell. Я протестировал новый патч FRR, и он по-прежнему работает как задумано. Мы не смогли воспроизвести старую проблему FRR с установленной новой бета-версией libpve-network-perl.
     
     
     
    spirit
    Guest
    #8
    0
    01.09.2023 10:30:00
    Ой, если я правильно понимаю, имя важно? Это не просто что-то внутреннее для frr? "router isis isis1" — не будет работать с другими сетевыми устройствами, если у них не совпадает название домена? (Как, например, ASN в BGP?)

    Просто чтобы точно понять, могу ли я оставить строки "neighbor VTEP route-map MAP_VTEP_IN in" и "neighbor VTEP route-map MAP_VTEP_OUT out", которые генерируются в frr.conf? (Вместо того чтобы удалять их при определении контроллера isis).

    Я бы хотел сохранить такую же конфигурацию, как с BGP в underlay, если возможно, чтобы не сломать другие функции с exit-nodes и так далее...
     
     
     
    mbosma
    Guest
    #9
    0
    01.09.2023 10:36:00
    Само имя в FRR не используется ни для чего, кроме как в конфигурации FRR, важен только isis-net 10.0000.0000.0005.00 для других устройств. Однако приятно иметь возможность настраивать имя, чтобы оно совпадало с другими устройствами для удобства администрирования. Если бы мы создавали другой кластер proxmox в другой домене ISIS, было бы удобнее задать другое имя, чтобы оно соответствовало коммутаторам и маршрутизаторам. Я неправильно понял твой предыдущий комментарий по этому поводу. На самом деле я снова протестирую и добавлю это в frr.conf.local, чтобы проверить, будет ли работать.
     
     
     
    mbosma
    Guest
    #10
    0
    01.09.2023 12:33:00
    Я провёл дополнительные тесты с патчем libpve-network-perl и без него, чтобы легче контролировать route-map. Со старыми пакетами frr и frr-pythontools подключиться с включённым route-map не удавалось. После отключения route-map, как я писал в первом посте, подключение у клиентов внезапно появилось. После обновления этих пакетов и перезапуска службы FRR подключение с включённым route-map стало работать. Похоже, патч для FRR — это успех. Если вы обновили libpve-network-perl без части с route-map, не могли бы прислать мне новый пакет, чтобы я мог протестировать его для вас? С уважением, Майкл
     
     
     
    spirit
    Guest
    #11
    0
    04.09.2023 12:40:00
    Привет, спасибо за тест! Попробую отправить новый пакет сегодня или завтра с поддержкой нескольких интерфейсов и домена isis. (И при этом сохраню route-map)
     
     
     
    spirit
    Guest
    #12
    0
    06.09.2023 08:54:00
    Привет, попробуй эту новую версию: https://mutulin1.odiso.net/libpve-network-perl_0.8.1_all.deb  
    Код: опция в controllers.cfg:  
      isis-ifaces:   eth0,eth1,eth2  
      isis-domain:  yourdomain  
      isis-net: 10.0000.0000.0005.00 (isis-iface переименовали в isis-ifaces)
     
     
     
    mbosma
    Guest
    #13
    0
    07.09.2023 12:11:00
    Я скачал файл, но он, похоже, не новый. Ты уверен, что это правильная ссылка?  
    Код:  
    root@pve1-test:~# sha1sum libpve-network-perl_0.8.1_all.deb  
    0c8d46ce6d88400324718d28e260050b928fcc4c  libpve-network-perl_0.8.1_all.deb  
    root@pve1-test:~# sha1sum libpve-network-perl_0.8.1_all.deb.old  
    0c8d46ce6d88400324718d28e260050b928fcc4c  libpve-network-perl_0.8.1_all.deb.old
     
     
     
    spirit
    Guest
    #14
    0
    07.09.2023 12:51:00
    Ой, извините. Я перезагрузил это a9a067e7b24004c18b8eb256b1bc6516 libpve-network-perl_0.8.1_all.deb
     
     
     
    mbosma
    Guest
    #15
    0
    07.09.2023 13:35:00
    Часть с route-map вернулась, остальные изменения сломали isis. Интерфейсы больше не добавляются в конфиг frr. То же касается и настроек isis.

    controller.cfg:  
    root@pve1-test:~# cat /etc/pve/sdn/controllers.cfg  
    evpn: evpn  
      asn 65000  
      peers 10.99.99.1  

    isis: pve1-test  
      isis-ifaces enp8s0f1,eno1  
      isis-net 10.0000.0000.0004.00  
      isis-domain isis1  
      node pve1-test  

    isis: pve2-test  
      isis-ifaces enp65s0f3  
      isis-net 10.0000.0000.0005.00  
      isis-domain isis1  
      node pve2-test  

    isis: pve4-test  
      isis-ifaces eno8  
      isis-net 10.0000.0000.0007.00  
      isis-domain isis1  
      node pve4-test  

    frr.conf (без frr.conf.local):  
    frr version 8.5.1  
    frr defaults datacenter  
    hostname pve1-test  
    log syslog informational  
    service integrated-vtysh-config  
    !  
    !  
    vrf vrf_evpnz1  
    vni 1001  
    exit-vrf  
    !  
    router bgp 65000  
    bgp router-id 192.168.245.201  
    no bgp hard-administrative-reset  
    no bgp graceful-restart notification  
    no bgp default ipv4-unicast  
    coalesce-time 1000  
    neighbor VTEP peer-group  
    neighbor VTEP remote-as 65000  
    neighbor VTEP bfd  
    neighbor 10.99.99.1 peer-group VTEP  
    !  
    address-family l2vpn evpn  
     neighbor VTEP route-map MAP_VTEP_IN in  
     neighbor VTEP route-map MAP_VTEP_OUT out  
     neighbor VTEP activate  
     advertise-all-vni  
    exit-address-family  
    exit  
    !  
    router bgp 65000 vrf vrf_evpnz1  
    bgp router-id 192.168.245.201  
    no bgp hard-administrative-reset  
    no bgp graceful-restart notification  
    !  
    address-family ipv4 unicast  
     redistribute connected  
    exit-address-family  
    !  
    address-family ipv6 unicast  
     redistribute connected  
    exit-address-family  
    !  
    address-family l2vpn evpn  
     advertise ipv4 unicast  
     advertise ipv6 unicast  
    exit-address-family  
    exit  
    !  
    route-map MAP_VTEP_IN permit 1  
    exit  
    !  
    route-map MAP_VTEP_OUT permit 1  
    exit  
    !  
    line vty  

    Эксперименты с одним/несколькими интерфейсами и isis-domain ничего не дают. Если вернуть isis-iface и/или удалить isis-domain — при перезагрузке вылетает ошибка.
     
     
     
    spirit
    Guest
    #16
    0
    08.09.2023 19:09:00
    Хмм, странно. Я проверю у себя. (Я тестировал с eth0, eth1, но, возможно, это ограничение парсера). Буду на связи, спасибо за терпение. (Извиняюсь за задержку, на этой неделе было много работы).
     
     
     
    spirit
    Guest
    #17
    0
    09.09.2023 07:20:00
    Ок, исправил, была небольшая ошибка с параметром "node", который не парсился, из-за чего конфиг isis не загружался, и конфиг frr не генерировался. Можешь попробовать снова (тот же самый линк) libpve-network-perl_0.8.1_all.deb 9e318acae4455e4339980d1099e09074
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры