Case 5 - sw1-a - sw2-a

Настройка sw1-a
# sw1-a и sw2-a базируются на операционной системе Linux
hostnamectl set-hostname sw1-a.my.domain.name; exec bash
# Указываем имя хоста в файле network задав параметр HOSTNAME
nano /etc/sysconfig/network
HOSTNAME=sw1-a.my.domain.name
# Проверяем что имя задалось верно
hostname -f
#----------------------------------------------
# Если директории с именами интерфейсов отсутствуют то можно их создать с помощью mkdir по очереди
# или сразу все, заменив номера интерфейсов на свой диапазон
mkdir -p /etc/net/ifaces/ens{18..23}
# Интерфейсы нужно поднять. Интерфейсы управляются etcnet, файл по умолчанию выглядит так:
# Содержимое файла options командой "cat /etc/net/ifaces/ens18/options"
TYPE=eth
BOOTPROTO=static
# Этот файл options и копируется в остальные интерфейсы, если у них нет этого конфига
# Выполнять только если нет файла options!
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens18/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens19/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens20/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens21/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens22/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens23/*
# Перезагружаем сеть
systemctl restart network
Установка openvswitch
# Временно прописываем сетевые настройки:
ip link add link ens18 name ens18.300 type vlan id 300
ip link set dev ens18.300 up
ip addr add 192.168.30.1/24 dev ens18.300
ip route add 0.0.0.0/0 via 192.168.30.254
echo "nameserver 77.88.8.8" > /etc/resolv.conf
# Обновляем список пакетов и устанавливаем openvswitch
apt-get update && apt-get install -y openvswitch
systemctl enable --now openvswitch
# Чтобы настройки openvswitch не удалялись:
sed -i "s/OVS_REMOVE=yes/OVS_REMOVE=no/g" /etc/net/ifaces/default/options
# Перезагрузить сервер, так быстрее сбросить временные сетевые настройки
reboot
# Чтобы на sw2-a можно было настроить сеть (ВРЕМЕННО) для установки openvswitch создадим виртуальный свитч:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 ens18
ovs-vsctl add-port br0 ens20
Переходим к настройке sw2-a (шаг1)
Дополнительная информация
Важно: В офисе «A» сеть управления — 192.168.30.0/24 (MGMT-A), а в офисе «B» — 172.20.30.0/24 (MGMT). Не путайте!
Что делает active-backup:
|
Режим
|
Как работает
|
Плюсы
|
Минусы
|
|---|---|---|---|
|
active-backup
|
Один порт активен, второй в резерве. При обрыве активного — резервный включается за 100-300 мс
|
✅ Простота, ✅ совместимость с любым оборудованием, ✅ не требует настройки на другом конце
|
❌ Нет увеличения пропускной способности
|
|
balance-slb / LACP
|
Оба порта активны, трафик распределяется
|
✅ Удвоенная пропускная способность
|
❌ Требует поддержки на обоих концах
|
# Удаляем временный виртуальный свич
ovs-vsctl del-br br0
#----------------------------------------------
# Создадим коммутатор с именем sw1-b
ovs-vsctl add-br sw1-a
# Интерфейс в сторону fw-a (ens18) настраиваем как магистральный (trunk) порт
ovs-vsctl add-port sw1-a ens18 trunk=100,200,300,400,500
# Добавим интерфейс, направленный в сторону admin-a (ens21)
ovs-vsctl add-port sw1-a ens21 tag=300
# Добавим интерфейс, направленный в сторону srv2-a (ens22), vlan 100
ovs-vsctl add-port sw1-a ens22 tag=100
# Добавим интерфейс, направленный в сторону srv2-a (ens23), vlan 200
ovs-vsctl add-port sw1-a ens23 tag=200
# Включаем модуль ядра отвечающий за тегированный трафик (802.1Q)
modprobe 8021q
echo "8021q" | tee -a /etc/modules
# На базе интерфейсов ens19 и ens20, направленных в сторону sw2-a, создадим bond-интерфейс в режиме active-backup
ovs-vsctl add-bond sw1-a bond0 ens19 ens20 bond_mode=active-backup
# Интерфейс типо bond в сторону sw2-a (bond0) настраиваем как магистральный (trunk) порт
ovs-vsctl set port bond0 trunk=100,200,300,400,500
# Сетевая подсистема etcnet будет взаимодействовать с openvswitch, для того чтобы корректно можно было назначить IP-адрес на интерфейс управления создаём каталог для management интерфейса с именем mgmt
mkdir /etc/net/ifaces/mgmt
nano /etc/net/ifaces/mgmt/options
# Содержимое файла:
TYPE=ovsport
BOOTPROTO=static
CONFIG_IPV4=yes
BRIDGE=sw1-a
VID=300
OVS_EXTRA="set port mgmt vlan_mode=native-untagged tag=300"
# Прописываем адрес и маршрут
echo "192.168.30.1/24" > /etc/net/ifaces/mgmt/ipv4address
echo "default via 192.168.30.254" > /etc/net/ifaces/mgmt/ipv4route
systemctl restart network
Настройка sw2-a
# sw1-a и sw2-a базируются на операционной системе Linux
hostnamectl set-hostname sw2-a.my.domain.name; exec bash
# Указываем имя хоста в файле network задав параметр HOSTNAME
nano /etc/sysconfig/network
HOSTNAME=sw2-a.my.domain.name
# Проверяем что имя задалось верно
hostname -f
#----------------------------------------------
# Временно задаем сетевые настройки
ip link add link ens18 name ens18.300 type vlan id 300
ip link set up ens18
ip link set up ens18.300
ip addr add 192.168.30.2/24 dev ens18.300
ip route add 0.0.0.0/0 via 192.168.30.254
echo "nameserver 77.88.8.8" > /etc/resolv.conf
# Устанавливаем openvswitch
apt-get update && apt-get install -y openvswitch
systemctl enable --now openvswitch
sed -i "s/OVS_REMOVE=yes/OVS_REMOVE=no/g" /etc/net/ifaces/default/options
reboot
Переходим к настройке sw1-a (шаг2)
# Если директории с именами интерфейсов отсутствуют то можно их создать с помощью mkdir по очереди
# или сразу все, заменив номера интерфейсов на свой диапазон
mkdir -p /etc/net/ifaces/ens{18..23}
# Интерфейсы нужно поднять. Интерфейсы управляются etcnet, файл по умолчанию выглядит так:
# Содержимое файла options командой "cat /etc/net/ifaces/ens18/options"
TYPE=eth
BOOTPROTO=static
# Этот файл options и копируется в остальные интерфейсы, если у них нет этого конфига
# Выполнять только если нет файла options!
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens18/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens19/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens20/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens21/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens22/*
cp -r /etc/net/ifaces/ens18/* /etc/net/ifaces/ens23/*
# Перезагружаем сеть
systemctl restart network
#----------------------------------------------
# Создадим коммутатор с именем sw2-b
ovs-vsctl add-br sw2-a
# Интерфейс в сторону srv1-a (ens20), vlan 100
ovs-vsctl add-port sw2-a ens20 tag=100
# Интерфейс в сторону srv1-a (ens21), vlan 200
ovs-vsctl add-port sw2-a ens21 tag=200
# Добавим интерфейс, направленный в сторону sip-a (ens22), vlan 500
ovs-vsctl add-port sw2-a ens22 tag=500
# Добавим интерфейс, направленный в сторону cli-a (ens23), vlan 400
ovs-vsctl add-port sw2-a ens23 tag=400
# Включаем модуль ядра отвечающий за тегированный трафик (802.1Q)
modprobe 8021q
echo "8021q" | tee -a /etc/modules
# На базе интерфейсов ens18 и ens19, направленных в сторону sw1-a, создадим bond-интерфейс в режиме active-backup
ovs-vsctl add-bond sw1-coda bond0 ens18 ens19 bond_mode=active-backup
# Интерфейс типо bond в сторону sw1-a (bond0) настраиваем как магистральный (trunk) порт
ovs-vsctl set port bond0 trunk=100,200,300,400,500
# Сетевая подсистема etcnet будет взаимодействовать с openvswitch, для того чтобы корректно можно было назначить IP-адрес на интерфейс управления создаём каталог для management интерфейса с именем mgmt
mkdir /etc/net/ifaces/mgmt
nano /etc/net/ifaces/mgmt/options
# Содержимое файла:
TYPE=ovsport
BOOTPROTO=static
CONFIG_IPV4=yes
BRIDGE=sw2-a
VID=300
OVS_EXTRA="set port mgmt vlan_mode=native-untagged tag=300"
# Прописываем адрес и маршрут
echo "192.168.30.2/24" > /etc/net/ifaces/mgmt/ipv4address
echo "default via 192.168.30.254" > /etc/net/ifaces/mgmt/ipv4route
systemctl restart network
Сравнение коммутации в обоих сетях
|
Параметр
|
Офис «A» (sw1-a/sw2-a)
|
Офис «B» (sw1-b/sw2-b)
|
|---|---|---|
|
Требование задания
|
Агрегация
active-backup |
Запустить STP
|
|
Линки между свитчами
|
Объединены в
bond0 |
Два отдельных линка
|
|
Работа линков
|
Один активен, второй в резерве
|
Один активен, второй заблокирован STP
|
|
Сеть управления
|
192.168.30.0/24 (MGMT-A) |
172.20.30.0/24 (MGMT) |
|
VLAN'ы
|
100, 200, 300, 400, 500
|
100, 200, 300
|
|
Назначение
|
Отказоустойчивость без петель
|
Демонстрация работы STP
|