Фиксированные префиксы подсетей по заданию

This commit is contained in:
parent aad84a675e
commit 727860536d
5 changed files with 34 additions and 10 deletions

View file

@ -23,12 +23,12 @@ HOSTNAME_FQDN="br-fw.au-team.irpo" # таблица 3, запись br-fw.a
# --- Интерфейс в сторону BR-RTR (сеть с минимально возможной маской /30) --- # --- Интерфейс в сторону BR-RTR (сеть с минимально возможной маской /30) ---
BR_RTR_IF="enp0s3" # 1-й NIC — к BR-RTR (если порядок иной — поменять) 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_RTR_GW="" # адрес BR-RTR в этой же сети — маршрут по умолчанию
# --- Интерфейс в сторону BR-SRV (сеть не более 16 адресов) --- # --- Интерфейс в сторону BR-SRV (сеть не более 16 адресов) ---
BR_SRV_IF="enp0s8" # 2-й NIC — к BR-SRV BR_SRV_IF="enp0s8" # 2-й NIC — к BR-SRV
BR_SRV_ADDR="" # адрес BR-FW в этой сети, формат адрес/префикс BR_SRV_ADDR="" # адрес BR-FW в сети BR-SRV (префикс проставится сам: /28)
# --- OSPF (протокол разрешён ТОЛЬКО на интерфейсе к BR-RTR; пароля нет — # --- OSPF (протокол разрешён ТОЛЬКО на интерфейсе к BR-RTR; пароля нет —
# аутентификация по заданию требуется только на туннеле HQ<->BR) --- # аутентификация по заданию требуется только на туннеле HQ<->BR) ---
@ -56,6 +56,11 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
fi fi
echo "=== Настройка BR-FW (предположение: Linux / РЕД ОС 8) ===" 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. Имя хоста --- # --- 1. Имя хоста ---
hostnamectl set-hostname "$HOSTNAME_FQDN" hostnamectl set-hostname "$HOSTNAME_FQDN"

View file

@ -30,11 +30,11 @@ BR_LINK_ADDR="" # адрес BR-RTR в этой сети, адрес/префи
# --- Локальная сеть в сторону BR-SRV (через BR-FW; не более 16 адресов) --- # --- Локальная сеть в сторону BR-SRV (через BR-FW; не более 16 адресов) ---
# Нужна только для правил NAT — адрес BR-RTR здесь назначает BR-FW. # Нужна только для правил 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-туннель до HQ-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) ---
GRE_IF="gre1" GRE_IF="gre1"
GRE_LOCAL="" # локальный конец туннеля, адрес/префикс (из калькулятора, /30) GRE_LOCAL="" # локальный конец туннеля (префикс проставится сам: /30)
GRE_REMOTE="172.16.1.2" # конец HQ-RTR (адрес HQ-RTR в сети линка по заданию) GRE_REMOTE="172.16.1.2" # конец HQ-RTR (адрес HQ-RTR в сети линка по заданию)
# --- OSPF (значения из задания) --- # --- OSPF (значения из задания) ---
@ -63,6 +63,12 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
fi fi
echo "=== Настройка BR-RTR ===" 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. Имя хоста --- # --- 1. Имя хоста ---
hostnamectl set-hostname "$HOSTNAME_FQDN" hostnamectl set-hostname "$HOSTNAME_FQDN"

View file

@ -17,7 +17,7 @@ HOSTNAME_FQDN="br-srv.au-team.irpo" # таблица 3, запись br-srv.
# --- Сеть --- # --- Сеть ---
SRV_IF="enp0s3" # 1-й NIC — к BR-FW SRV_IF="enp0s3" # 1-й NIC — к BR-FW
SRV_ADDR="" # адрес BR-SRV в сети BR (сеть не более 16 адресов), адрес/префикс SRV_ADDR="" # адрес BR-SRV в сети BR (префикс проставится сам: /28 — не более 16 адресов)
SRV_GW="" # шлюз — адрес BR-FW в этой же сети SRV_GW="" # шлюз — адрес BR-FW в этой же сети
DNS_SRV="" # DNS для сервера — адрес HQ-SRV (основной DNS по заданию) DNS_SRV="" # DNS для сервера — адрес HQ-SRV (основной DNS по заданию)
# либо внешний, например 77.88.8.7 — уточните у экзаменатора # либо внешний, например 77.88.8.7 — уточните у экзаменатора
@ -49,6 +49,10 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
fi fi
echo "=== Настройка BR-SRV ===" echo "=== Настройка BR-SRV ==="
# Префикс по заданию (достаточно голого IP)
add_prefix () { if [[ "$2" == */* ]]; then echo "$2"; else echo "$2/$1"; fi; }
SRV_ADDR=$(add_prefix 28 "$SRV_ADDR")
# --- 1. Имя хоста --- # --- 1. Имя хоста ---
hostnamectl set-hostname "$HOSTNAME_FQDN" hostnamectl set-hostname "$HOSTNAME_FQDN"

View file

@ -27,13 +27,13 @@ DNS_ROUTER="77.88.8.7" # внешний DNS для роутера (можно
# --- Локальные VLAN на ОДНОМ физическом адаптере --- # --- Локальные VLAN на ОДНОМ физическом адаптере ---
LAN_IF="enp0s8" # 2-й NIC — физический адаптер в сторону HQ-SW (для VLAN 100/200/999) LAN_IF="enp0s8" # 2-й NIC — физический адаптер в сторону HQ-SW (для VLAN 100/200/999)
VLAN100_ADDR="" # адрес HQ-RTR в VLAN 100 (сеть не более 32 адресов), адрес/префикс VLAN100_ADDR="" # адрес HQ-RTR в VLAN 100 (префикс проставится сам: /27 — не более 32 адресов)
VLAN200_ADDR="" # адрес HQ-RTR в VLAN 200 (сеть не более 16 адресов), адрес/префикс VLAN200_ADDR="" # адрес HQ-RTR в VLAN 200 (префикс /28 — не более 16 адресов)
VLAN999_ADDR="" # адрес HQ-RTR в VLAN 999 (сеть не более 8 адресов), адрес/префикс VLAN999_ADDR="" # адрес HQ-RTR в VLAN 999 (префикс /29 — не более 8 адресов)
# --- GRE-туннель до BR-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) --- # --- GRE-туннель до BR-RTR (сеть 10.10.10.0/24, минимальная маска -> /30) ---
GRE_IF="gre1" GRE_IF="gre1"
GRE_LOCAL="" # локальный конец туннеля, адрес/префикс (из calculator, /30) GRE_LOCAL="" # локальный конец туннеля (префикс проставится сам: /30)
GRE_REMOTE="" # удалённый конец туннеля — адрес BR-RTR в сети ISP (без префикса) GRE_REMOTE="" # удалённый конец туннеля — адрес BR-RTR в сети ISP (без префикса)
# --- OSPF (значения из задания) --- # --- 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")" 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 "DHCP: subnet=$DHCP_SUBNET mask=$DHCP_NETMASK range=$DHCP_RANGE_FIRST..$DHCP_RANGE_LAST"
echo "NAT-сети: $NAT_NETS" 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 ===" echo "=== Настройка HQ-RTR ==="

View file

@ -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_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 SRV_GW="" # шлюз — адрес HQ-RTR в VLAN 100
DNS_SRV="" # внешний DNS для самого сервера (необязательно, напр. 77.88.8.7) DNS_SRV="" # внешний DNS для самого сервера (необязательно, напр. 77.88.8.7)
@ -67,6 +67,10 @@ if [[ ${#MISSING[@]} -gt 0 ]]; then
exit 1 exit 1
fi fi
# Адрес HQ-SRV без префикса — для записей A/PTR и listening DNS # Адрес 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%/*}" SRV_ADDR_HOST="${SRV_ADDR%/*}"
DNS_LISTEN="$SRV_ADDR_HOST" DNS_LISTEN="$SRV_ADDR_HOST"