Skip to main content

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/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

Настройка административного доступа (Radius)

Продолжение настройки Radius из Case 9 - srv1-a

# Временно указываем адрес DNS
echo "nameserver 77.88.8.8" > /etc/resolv.conf
# Устанавливаем пакет pam_radius (клиент radius)
apt-get update && apt-get install -y pam_radius

# Редактируем конфигурационный файл /etc/pam_radius_auth.conf
# Вид файла (после строки # server[:port]):
192.168.10.1    P@ssw0rd    3

# Редактируем конфигурационный файл /etc/pam.d/sshd
# если нет строки, то добавляем (второй строкой, иначе собъете порядок проверки аутенфикации):
auth    sufficient    pam_radius_auth.so

# Редактируем конфигурационный файл /etc/pam.d/system-auth-local
# если нет строки, то добавляем (первой строкой):
auth    sufficient    pam_radius_auth.so

# Для linux этого пользователя нужно создать отдельно:
useradd netuser

# Проверить возможность входа из-под пользователя netuser с паролем P@ssw0rd

Настройка синхронизации времени

Продолжение настройки Radius из Case 1 - rtr-a - rtr-b

# Устанавливаем корректный часовой пояс
timedatectl  set-timezone Europe/Moscow
# Редактируем конфигурационный файл /etc/chrony.conf
# Содержимое файла:
pool 100.100.100.100 iburst

# Перезапускаем службу chronyd
systemctl restart chronyd

# Проверяем с каким сервером синхронизировалось время с помощью команды:
chronyc tracking
# Проверяем часовой пояс с помощью команды
timedatectl

Настройка DNS

Продолжение настройки DNS из Case 9 - srv1-a

 

# Задайте dns и search для mgmt интерфейса
cat <<EOF > /etc/net/ifaces/mgmt/resolv.conf
  search my.domain.name
  nameserver 192.168.10.1
EOF
# Перезапустите сеть
systemctl restart network
# Проверьте пинг в локальной сети по доменным именам
ping my.domain.name
ping fw-a

 


Настройка 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 sw2-a 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

Настройка административного доступа (Radius)

Продолжение настройки Radius из Case 9 - srv1-a

# Временно указываем адрес DNS
echo "nameserver 77.88.8.8" > /etc/resolv.conf
# Устанавливаем пакет pam_radius (клиент radius)
apt-get update && apt-get install -y pam_radius

# Редактируем конфигурационный файл /etc/pam_radius_auth.conf
# Вид файла (после строки # server[:port]):
192.168.10.1    P@ssw0rd    3

# Редактируем конфигурационный файл /etc/pam.d/sshd
# если нет строки, то добавляем (второй строкой, иначе собъете порядок проверки аутенфикации):
auth    sufficient    pam_radius_auth.so

# Редактируем конфигурационный файл /etc/pam.d/system-auth-local
# если нет строки, то добавляем (первой строкой):
auth    sufficient    pam_radius_auth.so

# Для linux этого пользователя нужно создать отдельно:
useradd netuser

# Проверить возможность входа из-под пользователя netuser с паролем P@ssw0rd

Настройка синхронизации времени

Продолжение настройки Radius из Case 1 - rtr-a - rtr-b

# Устанавливаем корректный часовой пояс
timedatectl  set-timezone Europe/Moscow
# Редактируем конфигурационный файл /etc/chrony.conf
# Содержимое файла:
pool 100.100.100.100 iburst

# Перезапускаем службу chronyd
systemctl restart chronyd

# Проверяем с каким сервером синхронизировалось время с помощью команды:
chronyc tracking
# Проверяем часовой пояс с помощью команды
timedatectl

Настройка DNS

Продолжение настройки DNS из Case 9 - srv1-a

 

# Задайте dns и search для mgmt интерфейса
cat <<EOF > /etc/net/ifaces/mgmt/resolv.conf
  search my.domain.name
  nameserver 192.168.10.1
EOF
# Перезапустите сеть
systemctl restart network
# Проверьте пинг в локальной сети по доменным именам
ping my.domain.name
ping fw-a