С помощью виртуалок можно решить огромное количество задач. К тому же они довольно дешевы в использовании, быстро разворачиваются, легко масштабируются, их можно без проблем перекидывать между различными локациями.

Для некоторых задач могут потребоваться выделенные серверы. Они производительные, хорошо подходят для тяжелых приложений, стоимость расширения физических хранителей для них меньше.

В ряде случаев вам и вовсе придется объединить эти подходы. Такую задачу легко решить, если достаточно L3-связности между виртуальными и физическими серверами. Например, между масштабируемым отказоустойчивым кластером веб-приложений на виртуальных машинах (ВМ) и кластером баз данных на физических серверах.

Но иногда требуется объединить сервисы в L2-сеть. Например, на ВМ у вас установлен DCImanager — наша платформа для управления ИТ-инфраструктурой. DCImanager должен управлять физическими серверами. Если всё ваше железо расположено физически в одном месте и у вас есть доступ к сетевому оборудованию, останется лишь настроить VLAN на портах коммутаторов и в гипервизоре (например, в системе управления виртуализацией VMmanager).

Подробнее о нашем ПО для управления инфраструктурой

В этой статье мы рассказываем про построение плоской сети в инфраструктуре на базе продуктов ISPsystem: 

  • DCImanager — платформа для управления физической инфраструктурой, которая поможет взять под контроль все ваши стойки, серверы, сетевое оборудование, PDU и ИБП, физические и виртуальные сети.

  • VMmanager — платформа для управления виртуализацией, с помощью которой вы сможете построить отказоустойчивую виртуальную инфраструктуру.

Все наши продукты можно протестировать абсолютно бесплатно: всем желающим доступен 30-дневный триал и другие способы знакомства с решениями.

Что делать, если ваше оборудование расположено в разных локациях и доступа к коммутаторам и маршрутизатором дата-центра нет? В таком случае необходимо настроить L2VPN между вашими площадками. Далее поделюсь одним из способов решения такой задачи.

Как это работает

Для объединения сетей будем использовать туннели VxLAN и протокол динамической маршрутизации BGP EVPN.

Если у вас уже есть VMmanager, включите в вашем кластере технологию «Виртуальные сети» — VMmanager настроит на узлах кластера демон BGP FRR и создаст VxLAN-туннели. 

Разберем на примере.

Предположим, у нас есть физический свитч Juniper QFX5100 с поддержкой VxLAN и BGP EVPN. Подключим к нему физический сервер, например, в порт xe-0/0/1.

На схеме отображен кластер VMmanager с двумя узлами — Node1 и Node2, подключенными в коммутатор. На узле Node1 расположена виртуальная машина, подключенная в виртуальную сеть. На другой площадке расположен физический сервер, подключенный к коммутатору Juniper QFX в порт xe-0/0/1. Между QFX и узлами Node1 и Node2 настроена маршрутизируемая сеть.

Описание настроек

Настраиваем свитч

1. Подключите QFX к маршрутизируемой сети так, чтобы адрес на интерфейсе lo0.0 был доступен с узлов кластера VMmanager (в моем примере это 10.3.0.47).

2. Выберите номер AS, который будем использовать. Для примера я взял 62200:

routing-options {
  router-id 10.3.0.47;
  autonomous-system 62200;
}

3. Настройте VTEP:

switch-options {
  vtep-source-interface lo0.0;
  route-distinguisher 10.3.0.47:1;
  vrf-target target:62200:1;
}

4. Настройте BGP — в качестве neighbor укажите все узлы вашего кластера VMmanager):

protocols {
    bgp {
        group VMmanager {
            type internal;
            local-address 10.3.0.47;
            family evpn {
                signaling;
            }
            peer-as 62200;
            neighbor 172.31.33.2 {
                cluster 10.3.0.47;
            }
            neighbor 172.31.33.3 {
                cluster 10.3.0.47;
            }
        }
}

Настраиваем VMmanager

  1. Включаем в настройках кластера «Виртуальные сети» в режиме Route Reflector.

  2. Устанавливаем локальную автономную систему в 62200.

  3. Добавляем в соседи наш QFX 10.3.0.47 с автономной системой 62200.

У меня есть обычный пользователь VMmanager — ilya@ispsystem.net. Под администратором:

  1. Создаем для него виртуальную сеть 192.168.10.0/24.

  2. Создаем для него виртуальную машину в этой виртуальной сети.

  3. После создания ВМ заходим в раздел «Настройки сети», копируем номер VxLAN. В моем примере интерфейс подключен к vxbr1194142, значит, наш VNI будет 1194142.

Возвращаемся к настройке QFX

1. Добавляем настройки протокола EVPN:

protocols {
    evpn {
        vni-options {
            vni 1194142 {
                vrf-target target:62200:1194142;
            }
        }
        encapsulation vxlan;
        multicast-mode ingress-replication;
        extended-vni-list all;
    }
}

Обратите внимание: здесь важно указать vrf-target = target:ASN:VNI, иначе маршруты не установятся и связности не будет.

2. Создаем VLAN:

vlans {
    test {
        vlan-id 100;
        vxlan {
            vni 1194142;
            ingress-node-replication;
        }
    }
}

3. Подключаем в этот VLAN порт:

interfaces {
    xe-0/0/1 {
        ether-options {
            auto-negotiation;
        }
        unit 0 {
            family ethernet-switching {
                interface-mode access;
                vlan {
                    members test;
                }
            }
        }
    }
}

Готово. Теперь созданная ВМ и сервер находятся в одной плоской сети. 

Проверка

  1. Проверим подключение на Juniper:

root> show evpn database
Instance: default-switch
VLAN  DomainId  MAC address        Active source                  Timestamp        IP address
     1194142    00:1e:67:ca:6d:a9  xe-0/0/1.0                     Mar 12 15:44:40  192.168.13.3
     1194142    52:54:00:6b:33:a6  172.31.33.2                    Mar 12 14:12:26
  1. Проверим на узле VMmanager, запускаем команду vtysh и внутри нее:

show evpn mac vni 1194142
Number of MACs (local and remote) known for this VNI: 2
Flags: N=sync-neighs, I=local-inactive, P=peer-active, X=peer-proxy
MAC               Type   Flags Intf/Remote ES/VTEP            VLAN  Seq #'s
00:1e:67:ca:6d:a9 remote       10.3.0.47                            0/0
52:54:00:6b:33:a6 local        vm13706_vxlan0                       0/0

В эту сеть мы можем добавить другие серверы, просто назначив VLAN нужному порту. Кроме того, мы можем создать в этом VxLAN еще несколько виртуальных машин для пользователя — все они будут внутри виртуальной сети.

Что в итоге

Мы объединили виртуальные машины и физические серверы, расположенные на разных площадках, в L2-сеть — плоскую и не маршрутизируемую. Теперь можем настроить управление физическими серверами через DCImanager или развернуть серую сеть между виртуальными и физическими серверами для решения любой другой задачи.

Основная фишка такого подхода — отсутствие маршрутизации. При использовании VxLAN трафик инкапсулируется и для внешних маршрутизаторов выглядит как UDP-трафик между двумя точками. Надеюсь, это подойдет для решения ваших задач.

Комментарии (2)


  1. mc2
    12.07.2024 02:36
    +2

    Просто для информации:

    RFC 6996

    IANA has reserved, for Private Use, a contiguous block of 1023
    Autonomous System numbers from the "16-bit Autonomous System Numbers"
    registry, namely 64512 - 65534 inclusive.

    IANA has also reserved, for Private Use, a contiguous block of
    94,967,295 Autonomous System numbers from the "32-bit Autonomous
    System Numbers" registry, namely 4200000000 - 4294967294 inclusive.


  1. DrGluck07
    12.07.2024 02:36

    Меня пугает мужик на КДПВ, который вырвал с корнем сайдстик и держит его в руке