Новое решение модуля А — псевдонимы

Модуль 1. Настройка сетевой инфраструктуры — инструкция (псевдонимы)

Перед запуском ВМ: в Proxmox → Hardware → сетевой адаптер → VLAN Tag задайте тег для клиентских ВМ HQ (п.4): HQ-SRV — @@VID_VLAN100@@, HQ-CLI — @@VID_VLAN200@@. Без тега трафик не попадёт в нужный VLAN на HQ-RTR. При другом варианте задания сверьте номера VLAN с п.4; на маршрутизаторе тег задаётся внутри ВМ (VID=…).

0.1. Таблица замены @@псевдонимов@@

Скопируйте таблицу в блокнот. Колонку «Ваше значение» заполните по листу задания. Затем в инструкции (Ctrl+H): для каждого @@…@@ — «Заменить всё».

Как читать токены

Токен Что подставлять Где
@@PLEN_*@@ Только длина префикса (число после /): 27, 28, 30 192.168.100.1/@@PLEN_VLAN100@@, @@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@
@@*_ADDR@@ Хост без маски (п.2, п.6): 172.16.1.1, 10.10.10.2 default via, TUNLOCAL/TUNREMOTE, ping, A-записи DNS
@@VID_*@@ Номер VLAN (п.4): 100, 200, 999 VID=…, enp7s2.NNN, Proxmox VLAN Tag, dnsmasq/OSPF

Октеты 192.168.* — литералы; при смене только маски в п.1 — @@PLEN_*@@. На линках ISP (п.2) при смене сети — @@*_ADDR@@ и @@PLEN_ISP_*@@. hq-cli в DNS — IP с HQ-CLI после DHCP (§6 → §7). Подставляйте сначала все @@PLEN_*@@, потом @@*_ADDR@@.

GRE (п.6): в задании нет конкретных адресов туннеля — только GRE или IPIP. Если в листе адреса не указаны, оставьте образец: @@GRE_HQ_ADDR@@ = 10.10.10.1, @@GRE_BR_ADDR@@ = 10.10.10.2, @@PLEN_GRE@@ = 30.

Псевдоним Образец (задание.txt) Ваше значение Пункт Примечание
@@PORT_SSH@@ 2026 п.5 sshd_config на HQ-SRV, BR-SRV
@@LOGIN_SSH@@ sshuser п.3, п.5 useradd, AllowUsers, sudoers
@@LOGIN_NET@@ net_admin п.3 HQ-RTR, BR-RTR
@@VID_VLAN100@@ 100 п.4 HQ-SRV; enp7s2.@@VID_VLAN100@@, Proxmox Tag
@@VID_VLAN200@@ 200 п.4, п.9 HQ-CLI; DHCP interface=enp7s2.@@VID_VLAN200@@
@@VID_VLAN999@@ 999 п.4 управление; enp7s2.@@VID_VLAN999@@
@@PLEN_VLAN100@@ 27 п.1 маска VLAN @@VID_VLAN100@@
@@PLEN_VLAN200@@ 28 п.1, п.9 маска VLAN @@VID_VLAN200@@; dhcp-range
@@PLEN_VLAN999@@ 29 п.1 маска VLAN @@VID_VLAN999@@
@@PLEN_BR_LAN@@ 28 п.1 BR: …10.1/…, …10.2/…
@@PLEN_ISP_HQ@@ 28 п.2 маска линка ISP↔HQ (172.16.1.0/28)
@@PLEN_ISP_BR@@ 28 п.2 маска линка ISP↔BR (172.16.2.0/28)
@@PLEN_GRE@@ 30 п.6 маска туннеля; если в задании нет — образец
@@ISP_HQ_ADDR@@ 172.16.1.1 п.2 ISP enp7s2; шлюз HQ-RTR, docker, ping
@@ISP_BR_ADDR@@ 172.16.2.1 п.2 ISP enp7s3; шлюз BR-RTR, web, ping
@@HQ_ISP_ADDR@@ 172.16.1.2 п.2 HQ-RTR enp7s1, GRE TUNLOCAL (не в DNS для клиентов)
@@BR_ISP_ADDR@@ 172.16.2.2 п.2 BR-RTR enp7s1, GRE TUNREMOTE HQ (не в DNS для клиентов)
@@GRE_HQ_ADDR@@ 10.10.10.1 п.6 HQ-RTR gre1; если в задании нет — образец
@@GRE_BR_ADDR@@ 10.10.10.2 п.6 BR-RTR gre1; если в задании нет — образец

Важно: в «Заменить всё» подставляйте целые токены (@@PLEN_VLAN100@@, @@ISP_HQ_ADDR@@, @@VID_VLAN200@@), не отдельные числа 100/200/27/28 — иначе сломаются соседние @@…@@. Сначала все @@PLEN_*@@, затем @@*_ADDR@@.

Вне таблицы замены (сверить с заданием, без @@…@@)

  • домен / FQDN (au-team.irpo, табл. 3)
  • пароли, UID 2026
  • dhcp-range, dhcp-option=15, forwarder BIND, OSPF, баннер, часовой пояс
  • IP hq-cli для зоны DNS — с HQ-CLI после DHCP (§7)

Если в п.1 задана только вместимость сегмента (без новой сети)

Меняют только @@PLEN_*@@ (и при необходимости границы dhcp-range). Октеты и @@VID_*@@ в образце не трогают. При смене номера VLAN в п.4 — замените все @@VID_*@@ и пересоздайте каталоги enp7s2.NNN / enp7s1.NNN под новый NNN.

Что обычно не меняют (инвариант логики)

  • Топология: ISP — HQ-RTR — HQ-SRV / HQ-CLI; ISP — BR-RTR — BR-SRV.
  • Требования RFC1918, VLAN на одном порту HQ-RTR, GRE или IPIP, OSPF на туннеле, NAT, DHCP на HQ-RTR, DNS на HQ-SRV.
  • Имена ролей ВМ: ISP, HQ-RTR, BR-RTR, HQ-SRV, BR-SRV, HQ-CLI.
  • Ресурсы ВМ — таблица 1 в задании.

0. Что нельзя автоматизировать (настройка в Proxmox)

Скрипты настраивают всё внутри ВМ. Но есть вещи, которые делаются в свойствах ВМ в Proxmox:

VLAN Tag в Proxmox (п.4)

ВМ VLAN Tag
HQ-SRV @@VID_VLAN100@@
HQ-CLI @@VID_VLAN200@@

Остальные ВМ — без тега на адаптере (или по топологии стенда). На HQ-RTR VLAN задаются внутри ОС (VID в options).

Порядок выполнения

Рекомендуемый порядок: ISP → HQ-RTR → BR-RTR → HQ-SRV (сеть и SSH) → BR-SRV → HQ-CLI → DNS на HQ-SRV (§7)

Маршрутизаторы первыми. DNS (п.10, табл. 3, в т.ч. hq-cli) — после HQ-CLI: адрес клиента известен только после DHCP.


В каждом разделе ниже:

  • «Правка файлов (кратко)» — что изменить в конфигах (удобно сверять с заданием без «готового скрипта»);
  • «Ручная настройка» — те же шаги командами (основной способ выполнения на экзамене).

Сначала замените все @@…@@ по §0.1; затем настройте параметры «вне таблицы» по заданию.


1. ISP — магистральный маршрутизатор

Роль: шлюз в интернет для HQ и BR. Раздаёт NAT, соединяет два офиса с «провайдером».

Интерфейс IP/сеть Назначение
enp7s1 DHCP В сторону провайдера
enp7s2 @@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@ В сторону HQ-RTR (п.2)
enp7s3 @@ISP_BR_ADDR@@/@@PLEN_ISP_BR@@ В сторону BR-RTR (п.2)

Правка файлов (кратко)

Файл Что сделать
/etc/net/ifaces/enp7s2/ipv4address Одна строка: @@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@ (п.2 — сеть задана явно, меняется и адрес сети, и маска)
/etc/net/ifaces/enp7s3/ipv4address Одна строка: @@ISP_BR_ADDR@@/@@PLEN_ISP_BR@@
/etc/net/ifaces/enp7s2/options, enp7s3/options Добавить строку TYPE=eth (если каталоги уже созданы)
/etc/net/sysctl.conf Строку net.ipv4.ip_forward = 0 заменить на net.ipv4.ip_forward = 1

После правок: systemctl restart network. Ниже — те же шаги командами.

Ручная настройка

# 1. Имя устройства (п.1 задания)
hostnamectl set-hostname ISP.au-team.irpo   
# 2. Настройка интерфейсов
cd /etc/net/ifaces/

# Интерфейс в сторону HQ-RTR (п.2 — @@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@) 
mkdir -p enp7s2
echo "TYPE=eth" > enp7s2/options
echo "@@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@" > enp7s2/ipv4address

# Интерфейс в сторону BR-RTR (п.2 — @@ISP_BR_ADDR@@/@@PLEN_ISP_BR@@) 
mkdir -p enp7s3
echo "TYPE=eth" > enp7s3/options
echo "@@ISP_BR_ADDR@@/@@PLEN_ISP_BR@@" > enp7s3/ipv4address

# 3. Включаем IP forwarding (чтобы пакеты ходили между интерфейсами)
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/net/sysctl.conf
systemctl restart network

# 4. Проверяем что интерфейсы поднялись
ip -br a
# 5. NAT — динамическая трансляция для HQ-RTR и BR-RTR (п.2, п.8)
apt-get update && apt-get install iptables tzdata -y

# Маскарадинг: все кто выходят через enp7s1 (интернет) получают адрес ISP
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables

# 6. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # должно быть ISP.au-team.irpo
ip -br a                          # enp7s2=@@ISP_HQ_ADDR@@, enp7s3=@@ISP_BR_ADDR@@
iptables -t nat -L POSTROUTING -v # должна быть строчка MASQUERADE на enp7s1

2. HQ-RTR — маршрутизатор офиса HQ

Роль: ядро сети HQ. Маршрутизация между VLAN, DHCP-сервер для HQ-CLI, OSPF-туннель в BR, NAT в интернет.

Интерфейс IP/сеть VLAN Назначение
enp7s1 @@HQ_ISP_ADDR@@/@@PLEN_ISP_HQ@@ В сторону ISP
enp7s2 транк Транковый порт в сторону HQ-SRV/HQ-CLI
enp7s2.@@VID_VLAN100@@ 192.168.100.1/@@PLEN_VLAN100@@ @@VID_VLAN100@@ HQ-SRV (п.1, п.4)
enp7s2.@@VID_VLAN200@@ 192.168.200.1/@@PLEN_VLAN200@@ @@VID_VLAN200@@ HQ-CLI, DHCP (п.1, п.4, п.9)
enp7s2.@@VID_VLAN999@@ 192.168.99.1/@@PLEN_VLAN999@@ @@VID_VLAN999@@ Управление (п.4)
gre1 @@GRE_HQ_ADDR@@/@@PLEN_GRE@@ Туннель в BR-RTR (п.6; адреса — образец, если в задании не заданы)

Правка файлов (кратко)

Сеть к ISP (п.2, сеть указана явно):

Файл Действие
/etc/net/ifaces/enp7s1/ipv4address @@HQ_ISP_ADDR@@/@@PLEN_ISP_HQ@@
/etc/net/ifaces/enp7s1/ipv4route default via @@ISP_HQ_ADDR@@
/etc/net/ifaces/enp7s1/resolv.conf nameserver 192.168.100.2 и search au-team.irpo

VLAN на enp7s2 (п.1 — часто меняют только маску, хост .1 оставляют):

Файл Действие
.../enp7s2.@@VID_VLAN100@@/options Строки TYPE=vlan, HOST=enp7s2, VID=@@VID_VLAN100@@, BOOTPROTO=static
.../enp7s2.@@VID_VLAN100@@/ipv4address 192.168.100.1/@@PLEN_VLAN100@@
.../enp7s2.@@VID_VLAN200@@/ipv4address 192.168.200.1/@@PLEN_VLAN200@@
.../enp7s2.@@VID_VLAN999@@/ipv4address 192.168.99.1/@@PLEN_VLAN999@@

Туннель и сервисы:

Файл Действие
/etc/net/ifaces/gre1/options TUNLOCAL=@@HQ_ISP_ADDR@@, TUNREMOTE=@@BR_ISP_ADDR@@, TUNTYPE=gre
/etc/net/ifaces/gre1/ipv4address @@GRE_HQ_ADDR@@/@@PLEN_GRE@@
/etc/dnsmasq.conf.d/hq-cli.conf Создать: interface=enp7s2.@@VID_VLAN200@@, dhcp-range=…, dhcp-option=3/6/15 — см. команды ниже
/etc/frr/daemons ospfd=noospfd=yes
/etc/frr/frr.conf В interface gre1ip ospf authentication-key … (п.7)

Ручная настройка

# 1. Имя устройства (п.1)
hostnamectl set-hostname HQ-RTR.au-team.irpo

# 2. Интерфейсы
cd /etc/net/ifaces/

# Интерфейс в сторону ISP (п.2)
mkdir -p enp7s1
echo "TYPE=eth" > enp7s1/options
echo "@@HQ_ISP_ADDR@@/@@PLEN_ISP_HQ@@" > enp7s1/ipv4address
echo "default via @@ISP_HQ_ADDR@@" > enp7s1/ipv4route
echo "nameserver 192.168.100.2" > /etc/net/ifaces/enp7s1/resolv.conf
echo "search au-team.irpo" >> /etc/net/ifaces/enp7s1/resolv.conf
# 3. Коммутация — VLAN-интерфейсы на одном физическом порту enp7s2 (п.4)
mkdir -p enp7s2 
echo "TYPE=eth" > enp7s2/options 

# VLAN @@VID_VLAN100@@ — HQ-SRV (п.1, п.4)
mkdir -p enp7s2.@@VID_VLAN100@@
echo "TYPE=vlan" > enp7s2.@@VID_VLAN100@@/options
echo "HOST=enp7s2" >> enp7s2.@@VID_VLAN100@@/options
echo "VID=@@VID_VLAN100@@" >> enp7s2.@@VID_VLAN100@@/options          
echo "BOOTPROTO=static" >> enp7s2.@@VID_VLAN100@@/options
echo "192.168.100.1/@@PLEN_VLAN100@@" > enp7s2.@@VID_VLAN100@@/ipv4address   # префикс @@PLEN_VLAN100@@
# VLAN @@VID_VLAN200@@ — HQ-CLI (маска, пул DHCP — п.1, п.4, п.9)
mkdir -p enp7s2.@@VID_VLAN200@@
echo "TYPE=vlan" > enp7s2.@@VID_VLAN200@@/options
echo "HOST=enp7s2" >> enp7s2.@@VID_VLAN200@@/options
echo "VID=@@VID_VLAN200@@" >> enp7s2.@@VID_VLAN200@@/options          
echo "BOOTPROTO=static" >> enp7s2.@@VID_VLAN200@@/options
echo "192.168.200.1/@@PLEN_VLAN200@@" > enp7s2.@@VID_VLAN200@@/ipv4address   # префикс @@PLEN_VLAN200@@
# VLAN @@VID_VLAN999@@ — управление (п.1, п.4)
mkdir -p enp7s2.@@VID_VLAN999@@
echo "TYPE=vlan" > enp7s2.@@VID_VLAN999@@/options
echo "HOST=enp7s2" >> enp7s2.@@VID_VLAN999@@/options
echo "VID=@@VID_VLAN999@@" >> enp7s2.@@VID_VLAN999@@/options          
echo "BOOTPROTO=static" >> enp7s2.@@VID_VLAN999@@/options
echo "192.168.99.1/@@PLEN_VLAN999@@" > enp7s2.@@VID_VLAN999@@/ipv4address    # префикс @@PLEN_VLAN999@@
# 4. GRE-туннель в BR-RTR (п.6)
# Если в листе нет адресов туннеля — @@GRE_*_ADDR@@ и @@PLEN_GRE@@ из §0.1 (образец 10.10.10.1/2, /30)
mkdir -p gre1
echo "TYPE=iptun" > gre1/options
echo "TUNTYPE=gre" >> gre1/options
echo "TUNLOCAL=@@HQ_ISP_ADDR@@" >> gre1/options      # наш адрес
echo "TUNREMOTE=@@BR_ISP_ADDR@@" >> gre1/options     # адрес BR-RTR
echo "TUNTTL=64" >> gre1/options
echo "TUNOPTIONS='ttl 64'" >> gre1/options
echo "@@GRE_HQ_ADDR@@/@@PLEN_GRE@@" > gre1/ipv4address

# Включаем IP forwarding и применяем сеть
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/' /etc/net/sysctl.conf
systemctl restart network
# 5. Пользователь @@LOGIN_NET@@ (п.3)
useradd @@LOGIN_NET@@
echo "@@LOGIN_NET@@:P@ssw0rd" | chpasswd   
# 6. Пакеты: sudo, iptables (NAT), frr (OSPF), dnsmasq (DHCP) (п.7,8,9)
apt-get update && apt-get install sudo iptables frr dnsmasq -y
echo "@@LOGIN_NET@@ ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/@@LOGIN_NET@@
chmod 440 /etc/sudoers.d/@@LOGIN_NET@@
# 7. DHCP-сервер для HQ-CLI (п.9)
# Раздаём адреса в VLAN @@VID_VLAN200@@, кроме адреса маршрутизатора (.1)
echo "interface=enp7s2.@@VID_VLAN200@@" > /etc/dnsmasq.conf.d/hq-cli.conf   
echo "dhcp-range=192.168.200.2,192.168.200.14,12h" >> /etc/dnsmasq.conf.d/hq-cli.conf   # пул п.9 — пересчитать после замены @@PLEN_VLAN200@@   
echo "dhcp-option=3,192.168.200.1" >> /etc/dnsmasq.conf.d/hq-cli.conf       
echo "dhcp-option=6,192.168.100.2" >> /etc/dnsmasq.conf.d/hq-cli.conf       
echo "dhcp-option=15,au-team.irpo" >> /etc/dnsmasq.conf.d/hq-cli.conf       
systemctl enable --now dnsmasq
# 8. OSPF — динамическая маршрутизация через GRE-туннель (п.7)
# Включаем ospfd в FRR
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons

# Конфигурация OSPF с аутентификацией (пароль п.7 — сверить с заданием)
cat <<'EOT' > /etc/frr/frr.conf
interface gre1
 ip ospf area 0.0.0.0
 ip ospf authentication
 ip ospf authentication-key P@$$word
 no ip ospf passive
exit
!
interface enp7s2.@@VID_VLAN100@@
 ip ospf area 0.0.0.0
exit
!
interface enp7s2.@@VID_VLAN200@@
 ip ospf area 0.0.0.0
exit
!
interface enp7s2.@@VID_VLAN999@@
 ip ospf area 0.0.0.0
exit
!
router ospf
 passive-interface default
exit
EOT
systemctl enable --now frr
# 9. NAT для офиса HQ (п.8)
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables

# 10. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # HQ-RTR.au-team.irpo
ip -br a                          # enp7s1=@@HQ_ISP_ADDR@@, enp7s2.@@VID_VLAN100@@=192.168.100.1, enp7s2.@@VID_VLAN200@@=192.168.200.1, gre1=@@GRE_HQ_ADDR@@
ping @@ISP_HQ_ADDR@@                   # пинг ISP
ping @@GRE_BR_ADDR@@                   # пинг BR-RTR через туннель (после его настройки)
systemctl status dnsmasq          # должен быть active
systemctl status frr              # должен быть active

3. BR-RTR — маршрутизатор офиса BR

Роль: ядро сети BR. GRE-туннель в HQ, OSPF, NAT, пользователь @@LOGIN_NET@@.

Интерфейс IP/сеть Назначение
enp7s1 @@BR_ISP_ADDR@@/@@PLEN_ISP_BR@@ В сторону ISP
enp7s2 192.168.10.1/@@PLEN_BR_LAN@@ BR-SRV (п.1)
gre1 @@GRE_BR_ADDR@@/@@PLEN_GRE@@ Туннель (п.6; адреса — образец, если в задании не заданы)

Правка файлов (кратко)

Файл Действие
/etc/net/ifaces/enp7s1/ipv4address @@BR_ISP_ADDR@@/@@PLEN_ISP_BR@@
/etc/net/ifaces/enp7s1/ipv4route default via @@ISP_BR_ADDR@@
/etc/net/ifaces/enp7s2/ipv4address 192.168.10.1/@@PLEN_BR_LAN@@
/etc/net/ifaces/gre1/ipv4address @@GRE_BR_ADDR@@/@@PLEN_GRE@@
/etc/net/ifaces/gre1/options TUNLOCAL=@@BR_ISP_ADDR@@, TUNREMOTE=@@HQ_ISP_ADDR@@
/etc/frr/frr.conf Как на HQ-RTR: OSPF на gre1 и enp7s2, ключ

Ручная настройка

# 1. Имя устройства (п.1)
hostnamectl set-hostname BR-RTR.au-team.irpo

# 2. Интерфейсы
cd /etc/net/ifaces/

# Интерфейс в сторону ISP (п.2)
mkdir -p enp7s1
echo "TYPE=eth" > enp7s1/options
echo "@@BR_ISP_ADDR@@/@@PLEN_ISP_BR@@" > enp7s1/ipv4address
echo "default via @@ISP_BR_ADDR@@" > enp7s1/ipv4route
echo "nameserver 192.168.100.2" > /etc/net/ifaces/enp7s1/resolv.conf
echo "search au-team.irpo" >> /etc/net/ifaces/enp7s1/resolv.conf

# Локальная сеть BR (п.1 — не более 16 адресов → /28)
mkdir -p enp7s2
echo "TYPE=eth" > enp7s2/options
echo "192.168.10.1/@@PLEN_BR_LAN@@" > enp7s2/ipv4address   # префикс @@PLEN_BR_LAN@@
# 3. GRE-туннель в HQ-RTR (п.6)
# Если в листе нет адресов туннеля — @@GRE_*_ADDR@@ и @@PLEN_GRE@@ из §0.1 (образец 10.10.10.1/2, /30)
mkdir -p gre1
echo "TYPE=iptun" > gre1/options
echo "TUNTYPE=gre" >> gre1/options
echo "TUNLOCAL=@@BR_ISP_ADDR@@" >> gre1/options      # наш адрес
echo "TUNREMOTE=@@HQ_ISP_ADDR@@" >> gre1/options     # адрес HQ-RTR
echo "TUNTTL=64" >> gre1/options
echo "TUNOPTIONS='ttl 64'" >> gre1/options
echo "@@GRE_BR_ADDR@@/@@PLEN_GRE@@" > gre1/ipv4address

# Применяем
sed -i 's/ net.ipv4.ip_forward = 0/ net.ipv4.ip_forward = 1/' /etc/net/sysctl.conf
systemctl restart network
ip -br a
# 4. Пользователь @@LOGIN_NET@@ (п.3)
useradd @@LOGIN_NET@@
echo "@@LOGIN_NET@@:P@ssw0rd" | chpasswd

# 5. Пакеты (п.7,8)
apt-get update && apt-get install sudo iptables frr -y
echo "@@LOGIN_NET@@ ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/@@LOGIN_NET@@
chmod 440 /etc/sudoers.d/@@LOGIN_NET@@
# 6. OSPF (п.7) — анонсируем только туннель и локальную сеть
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
cat <<'EOT' > /etc/frr/frr.conf
interface gre1
 ip ospf area 0.0.0.0
 ip ospf authentication
 ip ospf authentication-key P@$$word
 no ip ospf passive
exit
!
interface enp7s2
 ip ospf area 0.0.0.0
exit
!
router ospf
 passive-interface default
exit
EOT
systemctl enable --now frr
# 7. NAT для офиса BR (п.8)
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save >> /etc/sysconfig/iptables
systemctl enable --now iptables

# 8. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # BR-RTR.au-team.irpo
ip -br a                          # enp7s1=@@BR_ISP_ADDR@@, enp7s2=192.168.10.1, gre1=@@GRE_BR_ADDR@@
ping @@ISP_BR_ADDR@@                   # пинг ISP
ping @@GRE_HQ_ADDR@@                   # пинг HQ-RTR через туннель
ping 192.168.100.1                # пинг HQ-RTR VLAN @@VID_VLAN100@@ (через OSPF)

4. HQ-SRV — сервер офиса HQ

Проверьте теги VLAN в свойствах сетевого адаптера ВМ

Роль: сервер HQ в VLAN @@VID_VLAN100@@; SSH (порт @@PORT_SSH@@), пользователь @@LOGIN_SSH@@. DNS (п.10) — в §7, после настройки HQ-CLI.

Интерфейс IP/сеть Назначение
enp7s1 192.168.100.2/@@PLEN_VLAN100@@ VLAN @@VID_VLAN100@@

Правка файлов (кратко)

Файл Действие
/etc/net/ifaces/enp7s1/ipv4address 192.168.100.2/@@PLEN_VLAN100@@
/etc/net/ifaces/enp7s1/ipv4route default via 192.168.100.1
/etc/openssh/sshd_config #Port 22Port @@PORT_SSH@@; #MaxAuthTries 6MaxAuthTries 2; в конец: AllowUsers @@LOGIN_SSH@@; #Banner noneBanner /etc/openssh/banner
/etc/openssh/banner Одна строка: Authorized access only
/etc/sudoers.d/@@LOGIN_SSH@@ @@LOGIN_SSH@@ ALL=(ALL) NOPASSWD:ALL

Ручная настройка

# 1. Имя устройства (п.1)
hostnamectl set-hostname HQ-SRV.au-team.irpo

# 2. Пользователь @@LOGIN_SSH@@ (п.3; uid и пароль — сверить с заданием)
useradd -u 2026 @@LOGIN_SSH@@
echo "@@LOGIN_SSH@@:P@ssw0rd" | chpasswd
echo "@@LOGIN_SSH@@ ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/@@LOGIN_SSH@@
chmod 440 /etc/sudoers.d/@@LOGIN_SSH@@
# 3. Сеть — VLAN @@VID_VLAN100@@ (п.1, п.4)
cd /etc/net/ifaces/
mkdir -p enp7s1
echo "TYPE=eth" > enp7s1/options
echo "192.168.100.2/@@PLEN_VLAN100@@" > enp7s1/ipv4address   # префикс @@PLEN_VLAN100@@
echo "default via 192.168.100.1" > enp7s1/ipv4route
echo "nameserver 77.88.8.8" > /etc/net/ifaces/enp7s1/resolv.conf
systemctl restart network
ip -br a
# 4. SSH (п.5; баннер — сверить с заданием)
sed -i 's/#Port 22/Port @@PORT_SSH@@/' /etc/openssh/sshd_config
sed -i 's/#MaxAuthTries 6/MaxAuthTries 2/' /etc/openssh/sshd_config
echo "" >> /etc/openssh/sshd_config
echo "AllowUsers @@LOGIN_SSH@@" >> /etc/openssh/sshd_config
echo "Authorized access only" > /etc/openssh/banner
sed -i 's|#Banner none|Banner /etc/openssh/banner|' /etc/openssh/sshd_config
systemctl restart sshd

# 5. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # HQ-SRV.au-team.irpo
ip -br a                          # enp7s1=192.168.100.2
systemctl status sshd             # active, port @@PORT_SSH@@
ping 192.168.100.1          # пинг шлюза HQ-RTR

5. BR-SRV — сервер офиса BR

Роль: SSH (порт @@PORT_SSH@@), пользователь @@LOGIN_SSH@@. Аналог HQ-SRV для офиса BR.

Интерфейс IP/сеть Назначение
enp7s1 192.168.10.2/@@PLEN_BR_LAN@@ Локальная сеть BR

Правка файлов (кратко)

Файл Действие
/etc/net/ifaces/enp7s1/ipv4address 192.168.10.2/@@PLEN_BR_LAN@@
/etc/net/ifaces/enp7s1/ipv4route default via 192.168.10.1
/etc/net/ifaces/enp7s1/resolv.conf nameserver 192.168.100.2, search au-team.irpo
/etc/openssh/sshd_config, /etc/openssh/banner Как на HQ-SRV (п.5): порт , баннер, AllowUsers
/etc/sudoers.d/@@LOGIN_SSH@@ @@LOGIN_SSH@@ ALL=(ALL) NOPASSWD:ALL

Ручная настройка

# 1. Имя устройства (п.1)
hostnamectl set-hostname BR-SRV.au-team.irpo

# 2. Пользователь @@LOGIN_SSH@@ (п.3)
useradd -u 2026 @@LOGIN_SSH@@
echo "@@LOGIN_SSH@@:P@ssw0rd" | chpasswd
echo "@@LOGIN_SSH@@ ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/@@LOGIN_SSH@@
chmod 440 /etc/sudoers.d/@@LOGIN_SSH@@
# 3. Сеть (п.1)
cd /etc/net/ifaces/
mkdir -p enp7s1
echo "TYPE=eth" > enp7s1/options
echo "192.168.10.2/@@PLEN_BR_LAN@@" > enp7s1/ipv4address   # префикс @@PLEN_BR_LAN@@
echo "default via 192.168.10.1" > enp7s1/ipv4route
echo "nameserver 192.168.100.2" > /etc/net/ifaces/enp7s1/resolv.conf
echo "search au-team.irpo" >> /etc/net/ifaces/enp7s1/resolv.conf
systemctl restart network
ip -br a
# 4. SSH (п.5) — так же как HQ-SRV
sed -i 's/#Port 22/Port @@PORT_SSH@@/' /etc/openssh/sshd_config
sed -i 's/#MaxAuthTries 6/MaxAuthTries 2/' /etc/openssh/sshd_config
echo "" >> /etc/openssh/sshd_config
echo "AllowUsers @@LOGIN_SSH@@" >> /etc/openssh/sshd_config
echo "Authorized access only" > /etc/openssh/banner
sed -i 's|#Banner none|Banner /etc/openssh/banner|' /etc/openssh/sshd_config
systemctl restart sshd

# 5. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # BR-SRV.au-team.irpo
ip -br a                          # enp7s1=192.168.10.2
systemctl status sshd             # active, port @@PORT_SSH@@
ping 192.168.10.1                 # пинг BR-RTR
ping 192.168.100.2                # пинг HQ-SRV (через OSPF, после настройки всего)

6. HQ-CLI — клиентская машина офиса HQ

Проверьте теги VLAN в свойствах сетевого адаптера ВМ

Роль: клиент, получает адрес по DHCP от HQ-RTR в VLAN @@VID_VLAN200@@.

Интерфейс IP/сеть Назначение
enp7s1 DHCP (VLAN @@VID_VLAN200@@) Клиентская сеть, адрес от HQ-RTR

Правка файлов (кратко)

Файл Действие
/etc/net/ifaces/enp7s1/options TYPE=eth и BOOTPROTO=dhcp
/etc/net/ifaces/enp7s1.@@VID_VLAN200@@/options Если нужен VLAN: TYPE=vlan, HOST=enp7s1, VID=@@VID_VLAN200@@, BOOTPROTO=dhcp

Пул и шлюз задаются на HQ-RTR в dnsmasq; при смене только маски VLAN @@VID_VLAN200@@ клиент подхватит новый диапазон после systemctl restart network.

Ручная настройка

# 1. Имя устройства (п.1)
hostnamectl set-hostname HQ-CLI.au-team.irpo

# 2. Сеть — получение по DHCP (п.9)
systemctl restart network #если ВМ была запущена до настройки DHCP, то она будет без адреса даже после настроки сервера
ip -br a
# Должен получить адрес из пула DHCP (п.9; пересчитать пул после замены @@PLEN_VLAN200@@)
ip -4 -br a
# Запишите выданный адрес — он понадобится для A/PTR hq-cli в §7 (табл. 3, п.10)

# 3. Часовой пояс (п.11)
timedatectl set-timezone Asia/Yekaterinburg

Проверка

hostname                          # HQ-CLI.au-team.irpo
ip -br a                          # адрес из пула DHCP VLAN @@VID_VLAN200@@

7. DNS на HQ-SRV (п.10, табл. 3)

Роль: основной DNS для внутренних клиентов (HQ-CLI, HQ-SRV, BR-SRV). Им нужны имена и PTR в сетях 192.168.* — шлюзы VLAN, серверы, клиент. Транзитные 172.16.* на enp7s1 маршрутизаторов в зоны не включаем: с рабочих станций эти адреса не видны и не используются как шлюз/DNS.

По табл. 3 отдельно остаются только docker и web (интерфейсы ISP на линках п.2) — A-записи на @@ISP_HQ_ADDR@@ / @@ISP_BR_ADDR@@. Обратная зона 16.172.in-addr.arpa для проверки клиентов не нужна.

Выполняется на уже настроенном HQ-SRV после §6: адрес hq-cli известен только после DHCP.

Перед правкой зон: IP HQ-CLI

На HQ-CLI (§6) выполните ip -4 -br a и запишите IPv4, например 192.168.200.5. Далее подставьте его вместо 192.168.200.5 в примерах ниже (и в PTR — последний октет: для .55.200).

Правка файлов (кратко)

Файл Действие
/etc/bind/options.conf forwarders77.88.8.8 (или из п.10)
/etc/bind/local.conf зоны au-team.irpo, 168.192.in-addr.arpa
/etc/bind/zone/au-team.irpo.zone A по табл. 3; hq-cli — IP с HQ-CLI (DHCP)
/etc/bind/zone/168.192.rev PTR; строка hq-cliX.200 (X = последний октет IP HQ-CLI)

Ручная настройка

# 1. DNS-сервер bind (п.10) — на HQ-SRV
apt-get update && apt-get install nano bind bind-utils -y

sed -i 's/listen-on { 127.0.0.1; };/listen-on { any; };/' /etc/bind/options.conf
sed -i 's|//forwarders { };|forwarders { 77.88.8.8; };|' /etc/bind/options.conf
sed -i '/forwarders { 77.88.8.8; };/adnssec-validation no;' /etc/bind/options.conf
sed -i 's|//allow-query { localnets; };|allow-query { any; };|' /etc/bind/options.conf

cat >> /etc/bind/local.conf << 'EOF'
zone "au-team.irpo" {
    type master;
    file "/etc/bind/zone/au-team.irpo.zone";
};
zone "168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zone/168.192.rev";
};
EOF
# 2. Файлы зон (п.10, табл. 3)
# hq-cli: подставьте IP с HQ-CLI (ip -4 -br a), не фиксированный .10
mkdir -p /etc/bind/zone

cat > /etc/bind/zone/au-team.irpo.zone << 'EOF'
$TTL 86400
@   IN  SOA hq-srv.au-team.irpo. admin.au-team.irpo. (
                2026010101
                3600
                1800
                604800
                86400 )

@           IN  NS  hq-srv.au-team.irpo.

hq-rtr      IN  A   192.168.100.1
hq-rtr      IN  A   192.168.200.1
hq-rtr      IN  A   192.168.99.1
br-rtr      IN  A   192.168.10.1
hq-srv      IN  A   192.168.100.2
hq-cli      IN  A   192.168.200.5
br-srv      IN  A   192.168.10.2
docker      IN  A   @@ISP_HQ_ADDR@@
web         IN  A   @@ISP_BR_ADDR@@
EOF
# Строку hq-cli: замените 192.168.200.5 на фактический IP с HQ-CLI

cat > /etc/bind/zone/168.192.rev << 'EOF'
$TTL 86400
@   IN  SOA hq-srv.au-team.irpo. admin.au-team.irpo. (
                2026010101
                3600
                1800
                604800
                86400 )

@       IN  NS  hq-srv.au-team.irpo.

1.100       IN  PTR hq-rtr.au-team.irpo.
2.100       IN  PTR hq-srv.au-team.irpo.
1.200       IN  PTR hq-rtr.au-team.irpo.
5.200       IN  PTR hq-cli.au-team.irpo.
1.10        IN  PTR br-rtr.au-team.irpo.
2.10        IN  PTR br-srv.au-team.irpo.
1.99        IN  PTR hq-rtr.au-team.irpo.
EOF
# Строку 5.200 (hq-cli): замените 5 на последний октет IP HQ-CLI в сети 200

chown named:named /etc/bind/zone/*
systemctl enable --now bind

Проверка

systemctl status bind
nslookup hq-rtr.au-team.irpo 127.0.0.1    # 192.168.100.1
nslookup 192.168.100.2 127.0.0.1        # hq-srv.au-team.irpo
nslookup hq-cli.au-team.irpo 127.0.0.1     # IP с HQ-CLI (DHCP)
nslookup 192.168.200.5 127.0.0.1           # hq-cli.au-team.irpo (ваш IP HQ-CLI)

На HQ-CLI: nslookup hq-srv.au-team.irpo и nslookup hq-cli.au-team.irpo — после §7.


Приложение А. Сводная таблица IP-адресов (Таблица 2)

Образец для таблицы 2 отчёта; префиксы 192.168.* — через @@PLEN_*@@ после замены по §0.1.

Устройство IP-адрес Шлюз по умолчанию
ISP (enp7s2) @@ISP_HQ_ADDR@@/@@PLEN_ISP_HQ@@
ISP (enp7s3) @@ISP_BR_ADDR@@/@@PLEN_ISP_BR@@
HQ-RTR (enp7s1) @@HQ_ISP_ADDR@@/@@PLEN_ISP_HQ@@ @@ISP_HQ_ADDR@@
HQ-RTR (enp7s2.@@VID_VLAN100@@) 192.168.100.1/@@PLEN_VLAN100@@
HQ-RTR (enp7s2.@@VID_VLAN200@@) 192.168.200.1/@@PLEN_VLAN200@@
HQ-RTR (enp7s2.@@VID_VLAN999@@) 192.168.99.1/@@PLEN_VLAN999@@
HQ-RTR (gre1) @@GRE_HQ_ADDR@@/@@PLEN_GRE@@
BR-RTR (enp7s1) @@BR_ISP_ADDR@@/@@PLEN_ISP_BR@@ @@ISP_BR_ADDR@@
BR-RTR (enp7s2) 192.168.10.1/@@PLEN_BR_LAN@@
BR-RTR (gre1) @@GRE_BR_ADDR@@/@@PLEN_GRE@@
HQ-SRV 192.168.100.2/@@PLEN_VLAN100@@ 192.168.100.1
BR-SRV 192.168.10.2/@@PLEN_BR_LAN@@ 192.168.10.1
HQ-CLI DHCP (см. ip -4 -br a на HQ-CLI) 192.168.200.1