VLAN через VxLAN туннель в Linux

Вопрос или проблема

Я пытаюсь расширить сеть второго уровня (Vlan) через сеть третьего уровня, используя туннели vxlan… я настроил лабораторию, где у меня есть две виртуальные машины, где:

  • Я создал туннель vxlan между 2 основными интерфейсами ВМ
  • Я создал 2 подсистемы vlan под вторым интерфейсом для каждой машины
  • Я связал каждую подсистему vlan с подсистемой vxlan в отдельных мостах для каждой машины
  • Я назначил IP-адрес каждому мосту (10.1.100.1/24, 10.1.100.2/24, 10.1.100.3/24, 10.1.100.4/24)
    ===> Теперь, когда я пытаюсь выполнить ping с одного моста на другой (с тем же тегом vlan), это не работает
[root@Asguard ~]# ping 192.168.100.1 -I 192.168.100.3
PING 192.168.100.1 (192.168.100.1) с 192.168.100.3 : 56(84) байт данных.
С 192.168.100.3 icmp_seq=10 Хост назначения недоступен
ping: sendmsg: Нет маршрута к хосту
С 192.168.100.3 icmp_seq=11 Хост назначения недоступен
С 192.168.100.3 icmp_seq=12 Хост назначения недоступен
С 192.168.100.3 icmp_seq=14 Хост назначения недоступен
С 192.168.100.3 icmp_seq=15 Хост назначения недоступен
С 192.168.100.3 icmp_seq=16 Хост назначения недоступен
С 192.168.100.3 icmp_seq=17 Хост назначения недоступен

Это скрипт, который я запускаю на каждой ВМ

ВМ1 :

#!/bin/bash

# Настройка моста и интерфейса
ip link add br10 type bridge
ip link add br20 type bridge

ip link set br10 up
ip link set br20 up

# VLAN 10 на мосту br10
ip link add link enp0s9 name enp0s9.10 type vlan id 10
ip link set enp0s9.10 master br10
ip link set enp0s9.10 up

# VLAN 20 на мосту br20
ip link add link enp0s9 name enp0s9.20 type vlan id 20
ip link set enp0s9.20 master br20
ip link set enp0s9.20 up

# VXLAN на обоих мостах
ip link set vxlan1000 master br10
ip link set vxlan1000 up

#ip link add vxlan1000_2 type vxlan id 1000 dev enp0s3 remote 10.1.25.235 dstport 4789
ip link set vxlan1000 master br20
ip link set vxlan1000 up

ip addr add 192.168.100.1/24 dev br10
ip addr add 192.168.100.2/24 dev br20

ВМ2

#!/bin/bash

# Настройка моста и интерфейса
ip link add br11 type bridge
ip link add br22 type bridge

ip link set br11 up
ip link set br22 up

# VLAN 10 на мосту br10
ip link add link enp0s8 name enp0s8.10 type vlan id 10
ip link set enp0s8.10 master br11
ip link set enp0s8.10 up

# VLAN 20 на мосту br20
ip link add link enp0s8 name enp0s8.20 type vlan id 20
ip link set enp0s8.20 master br22
ip link set enp0s8.20 up

# VXLAN на обоих мостах
ip link add vxlan1001 type vxlan id 1000 dev enp0s3 remote 10.1.25.31 dstport 4789
ip link set vxlan1001 master br11
ip link set vxlan1001 up

#ip link add vxlan1000_2 type vxlan id 1000 dev enp0s3 remote 10.1.25.235 dstport 4789
ip link set vxlan1001 master br22
ip link set vxlan1001 up

ip addr add 192.168.100.3/24 dev br11
ip addr add 192.168.100.4/24 dev br22

!!!
Я хочу знать, как Linux обрабатывает тегирование и инкапсуляцию, чтобы заставить их работать вместе для расширения vxlan

Ответ или решение

Проблема Расширения Сетей на Основе VLAN Через VXLAN на Linux

Контекст: Вы пытаетесь расширить сеть уровня 2 (VLAN) через сеть уровня 3, используя туннели VXLAN. У вас настроена лаборатория с двумя виртуальными машинами (VM), на которых вы создали туннель VXLAN между основными интерфейсами.

Во-первых, опишем вашу текущую настройку:

  • Вы создали два моста (br10 и br20 на VM1 и br11 и br22 на VM2).
  • Подключили подинтерфейсы VLAN к соответствующим мостам.
  • Создали туннели VXLAN для соединения мостов, используя указанные IP-адреса.

Вы испытываете трудности при пинге между мостами с одинаковым VLAN-идентификатором, получая сообщение об ошибке "Destination Host Unreachable".

Как Linux Обрабатывает Тэгирование и Инкапсуляцию

1. Тэгирование VLAN

Тэгирование VLAN в Linux осуществляется через использование подинтерфейсов, которые создаются на базовом интерфейсе с помощью команды ip link add link. Каждому подинтерфейсу присваивается уникальный идентификатор VLAN. Трафик, отправляемый через эти подинтерфейсы, будет инкапсулирован с соответствующим тегом VLAN, что позволит ему проходить через сети, поддерживающие VLAN.

2. Инкапсуляция VXLAN

VXLAN – это способ инкапсуляции Ethernet-кадров в UDP для передачи по IP-сетям. Трафик сетей VLAN инкапсулируется в VXLAN-кадры. Каждый VXLAN имеет уникальный идентификатор (VXLAN Network Identifier – VNI), который используется для различения трафика разных VLAN.

Ваша инструкция создает VXLAN-интерфейсы, которые обрабатывают трафик, полученный через указанный основной интерфейс. Однако для корректной работы нужно убедиться, что все настройки верны.

Возможные Причины Проблемы и Решения

1. Ошибка в Настройке

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

  • Интерфейсы vxlan1000 и vxlan1001 настроены с правильными удаленными адресами (проверьте их IP).
  • Проверьте, что вы используете тот же VNI в конфигурации, что и в VLAN.

2. Мосты и VLAN

Убедитесь, что все необходимые мосты активны и что VLAN правильно настроены. Когда вы создаете мосты, они должны видеть трафик, который проходит через соответствующий VXLAN. Выполните команду bridge link show для проверки состояния.

3. Маршрутизация и Правила IPTables

Проверьте, что нет блокировок со стороны firewall (iptables). Убедитесь, что порты, используемые для VXLAN (по умолчанию UDP 4789), разрешены в обоих виртуальных машинах.

4. Проверка Канала Связи

Убедитесь, что обе виртуальные машины имеют правильные маршруты и могут добраться друг до друга на уровне IP. Выполните:

ip route

Чтобы убедиться, что маршруты верны.

Заключение

VXLAN позволяет расширять сети VLAN через высокоуровневые IP-сети, однако важно правильно настроить протоколы и маршрутизацию. Убедитесь, что интерфейсы правильно настроены и работают. Если вы продолжаете испытывать трудности, попробуйте временно отключить firewall, чтобы устранить влияние правил на соединение.

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

Капча загружается...