From 727860536df99401b679440809107d7955d822f8 Mon Sep 17 00:00:00 2001 From: kimoi Date: Sat, 7 Nov 2026 14:08:54 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BF=D1=80=D0=B5=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D1=81=D1=8B=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B5=D1=82?= =?UTF-8?q?=D0=B5=D0=B9=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zadanie1/br-fw.sh | 9 +++++++-- zadanie1/br-rtr.sh | 10 ++++++++-- zadanie1/br-srv.sh | 6 +++++- zadanie1/hq-rtr.sh | 13 +++++++++---- zadanie1/hq-srv.sh | 6 +++++- 5 files changed, 34 insertions(+), 10 deletions(-) diff --git a/zadanie1/br-fw.sh b/zadanie1/br-fw.sh index 7251840..1ac9f96 100644 --- a/zadanie1/br-fw.sh +++ b/zadanie1/br-fw.sh @@ -23,12 +23,12 @@ HOSTNAME_FQDN="br-fw.au-team.irpo" # таблица 3, запись br-fw.a # --- Интерфейс в сторону BR-RTR (сеть с минимально возможной маской /30) --- BR_RTR_IF="enp0s3" # 1-й NIC — к BR-RTR (если порядок иной — поменять) -BR_RTR_ADDR="" # адрес BR-FW в этой сети, формат адрес/префикс (/30) +BR_RTR_ADDR="" # адрес BR-FW на линке (префикс проставится сам: /30) BR_RTR_GW="" # адрес BR-RTR в этой же сети — маршрут по умолчанию # --- Интерфейс в сторону BR-SRV (сеть не более 16 адресов) --- BR_SRV_IF="enp0s8" # 2-й NIC — к BR-SRV -BR_SRV_ADDR="" # адрес BR-FW в этой сети, формат адрес/префикс +BR_SRV_ADDR="" # адрес BR-FW в сети BR-SRV (префикс проставится сам: /28) # --- OSPF (протокол разрешён ТОЛЬКО на интерфейсе к BR-RTR; пароля нет — # аутентификация по заданию требуется только на туннеле HQ<->BR) --- @@ -56,6 +56,11 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then fi echo "=== Настройка BR-FW (предположение: Linux / РЕД ОС 8) ===" +# Префиксы по заданию (достаточно голого IP) +add_prefix () { if [[ "$2" == */* ]]; then echo "$2"; else echo "$2/$1"; fi; } +BR_RTR_ADDR=$(add_prefix 30 "$BR_RTR_ADDR") +BR_SRV_ADDR=$(add_prefix 28 "$BR_SRV_ADDR") + # --- 1. Имя хоста --- hostnamectl set-hostname "$HOSTNAME_FQDN" diff --git a/zadanie1/br-rtr.sh b/zadanie1/br-rtr.sh index dd977fe..86777a6 100644 --- a/zadanie1/br-rtr.sh +++ b/zadanie1/br-rtr.sh @@ -30,11 +30,11 @@ BR_LINK_ADDR="" # адрес BR-RTR в этой сети, адрес/префи # --- Локальная сеть в сторону BR-SRV (через BR-FW; не более 16 адресов) --- # Нужна только для правил NAT — адрес BR-RTR здесь назначает BR-FW. -BR_SRV_NET="" # сеть BR-SRV, адрес/префикс (сеть линка к BR-FW вычисляется автоматически) +BR_SRV_NET="" # адрес сети BR-SRV (префикс проставится сам: /28 — не более 16 адресов) # --- GRE-туннель до HQ-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) --- GRE_IF="gre1" -GRE_LOCAL="" # локальный конец туннеля, адрес/префикс (из калькулятора, /30) +GRE_LOCAL="" # локальный конец туннеля (префикс проставится сам: /30) GRE_REMOTE="172.16.1.2" # конец HQ-RTR (адрес HQ-RTR в сети линка по заданию) # --- OSPF (значения из задания) --- @@ -63,6 +63,12 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then fi echo "=== Настройка BR-RTR ===" +# Префиксы по заданию (достаточно голого IP) +add_prefix () { if [[ "$2" == */* ]]; then echo "$2"; else echo "$2/$1"; fi; } +BR_LINK_ADDR=$(add_prefix 30 "$BR_LINK_ADDR") +BR_SRV_NET=$(add_prefix 28 "$BR_SRV_NET") +GRE_LOCAL=$(add_prefix 30 "$GRE_LOCAL") + # --- 1. Имя хоста --- hostnamectl set-hostname "$HOSTNAME_FQDN" diff --git a/zadanie1/br-srv.sh b/zadanie1/br-srv.sh index 372a25f..55e699a 100644 --- a/zadanie1/br-srv.sh +++ b/zadanie1/br-srv.sh @@ -17,7 +17,7 @@ HOSTNAME_FQDN="br-srv.au-team.irpo" # таблица 3, запись br-srv. # --- Сеть --- SRV_IF="enp0s3" # 1-й NIC — к BR-FW -SRV_ADDR="" # адрес BR-SRV в сети BR (сеть не более 16 адресов), адрес/префикс +SRV_ADDR="" # адрес BR-SRV в сети BR (префикс проставится сам: /28 — не более 16 адресов) SRV_GW="" # шлюз — адрес BR-FW в этой же сети DNS_SRV="" # DNS для сервера — адрес HQ-SRV (основной DNS по заданию) # либо внешний, например 77.88.8.7 — уточните у экзаменатора @@ -49,6 +49,10 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then fi echo "=== Настройка BR-SRV ===" +# Префикс по заданию (достаточно голого IP) +add_prefix () { if [[ "$2" == */* ]]; then echo "$2"; else echo "$2/$1"; fi; } +SRV_ADDR=$(add_prefix 28 "$SRV_ADDR") + # --- 1. Имя хоста --- hostnamectl set-hostname "$HOSTNAME_FQDN" diff --git a/zadanie1/hq-rtr.sh b/zadanie1/hq-rtr.sh index e1d4311..c6fd70b 100644 --- a/zadanie1/hq-rtr.sh +++ b/zadanie1/hq-rtr.sh @@ -27,13 +27,13 @@ DNS_ROUTER="77.88.8.7" # внешний DNS для роутера (можно # --- Локальные VLAN на ОДНОМ физическом адаптере --- LAN_IF="enp0s8" # 2-й NIC — физический адаптер в сторону HQ-SW (для VLAN 100/200/999) -VLAN100_ADDR="" # адрес HQ-RTR в VLAN 100 (сеть не более 32 адресов), адрес/префикс -VLAN200_ADDR="" # адрес HQ-RTR в VLAN 200 (сеть не более 16 адресов), адрес/префикс -VLAN999_ADDR="" # адрес HQ-RTR в VLAN 999 (сеть не более 8 адресов), адрес/префикс +VLAN100_ADDR="" # адрес HQ-RTR в VLAN 100 (префикс проставится сам: /27 — не более 32 адресов) +VLAN200_ADDR="" # адрес HQ-RTR в VLAN 200 (префикс /28 — не более 16 адресов) +VLAN999_ADDR="" # адрес HQ-RTR в VLAN 999 (префикс /29 — не более 8 адресов) # --- GRE-туннель до BR-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) --- GRE_IF="gre1" -GRE_LOCAL="" # локальный конец туннеля, адрес/префикс (из calculator, /30) +GRE_LOCAL="" # локальный конец туннеля (префикс проставится сам: /30) GRE_REMOTE="" # удалённый конец туннеля — адрес BR-RTR в сети ISP (без префикса) # --- OSPF (значения из задания) --- @@ -91,6 +91,11 @@ last = int(n.broadcast_address) - 1 print(n.network_address, n.netmask, ipaddress.ip_address(first), ipaddress.ip_address(last))" "$VLAN200_ADDR")" echo "DHCP: subnet=$DHCP_SUBNET mask=$DHCP_NETMASK range=$DHCP_RANGE_FIRST..$DHCP_RANGE_LAST" echo "NAT-сети: $NAT_NETS" +VLAN100_ADDR=$(add_prefix 27 "$VLAN100_ADDR") +VLAN200_ADDR=$(add_prefix 28 "$VLAN200_ADDR") +VLAN999_ADDR=$(add_prefix 29 "$VLAN999_ADDR") +GRE_LOCAL=$(add_prefix 30 "$GRE_LOCAL") + echo "=== Настройка HQ-RTR ===" diff --git a/zadanie1/hq-srv.sh b/zadanie1/hq-srv.sh index 5fc7f87..a1a56d9 100644 --- a/zadanie1/hq-srv.sh +++ b/zadanie1/hq-srv.sh @@ -18,7 +18,7 @@ HOSTNAME_FQDN="hq-srv.au-team.irpo" # таблица 3, запись hq-srv. # --- Сеть --- SRV_IF="enp0s3" # 1-й NIC — к HQ-SW (VLAN 100; тег снимает HQ-SW или сетевой адаптер) -SRV_ADDR="" # адрес HQ-SRV в VLAN 100, формат адрес/префикс +SRV_ADDR="" # адрес HQ-SRV в VLAN 100 (префикс проставится сам: /28) SRV_GW="" # шлюз — адрес HQ-RTR в VLAN 100 DNS_SRV="" # внешний DNS для самого сервера (необязательно, напр. 77.88.8.7) @@ -67,6 +67,10 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then exit 1 fi # Адрес HQ-SRV без префикса — для записей A/PTR и listening DNS +# Префикс VLAN 100 по заданию (достаточно голого IP) +add_prefix () { if [[ "$2" == */* ]]; then echo "$2"; else echo "$2/$1"; fi; } +SRV_ADDR=$(add_prefix 28 "$SRV_ADDR") + SRV_ADDR_HOST="${SRV_ADDR%/*}" DNS_LISTEN="$SRV_ADDR_HOST"