diff --git a/vlan b/vlan new file mode 100644 index 0000000..511c463 --- /dev/null +++ b/vlan @@ -0,0 +1,48 @@ +#!/bin/bash +# Задание 4, Модуль 1 (HQ-RTR) +# Настройка VLAN и маршрутизации (Router-on-a-Stick) + +[ $EUID -ne 0 ] && echo "Требуется root" && exit 1 + +# Физический интерфейс +PHYS_IF="enp0s3" + +# VLAN и подсети +VLAN_SRV="100" +VLAN_CLI="200" +VLAN_MGT="999" + +IP_SRV="192.168.3.1/26" +IP_CLI="192.168.4.1/29" +IP_MGT="192.168.1.1/28" + +echo "Настройка VLAN на интерфейсе $PHYS_IF..." + +# Загрузка модуля VLAN +modprobe 8021q 2>/dev/null + +# Создание VLAN-интерфейсов +for VID in $VLAN_SRV $VLAN_CLI $VLAN_MGT; do + IF_NAME="${PHYS_IF}.${VID}" + ip link del "$IF_NAME" 2>/dev/null + ip link add link "$PHYS_IF" name "$IF_NAME" type vlan id "$VID" + echo "VLAN $VID создан ($IF_NAME)" +done + +# Настройка IP и активация +ip addr add "$IP_SRV" dev "${PHYS_IF}.${VLAN_SRV}" +ip addr add "$IP_CLI" dev "${PHYS_IF}.${VLAN_CLI}" +ip addr add "$IP_MGT" dev "${PHYS_IF}.${VLAN_MGT}" + +ip link set "${PHYS_IF}.${VLAN_SRV}" up +ip link set "${PHYS_IF}.${VLAN_CLI}" up +ip link set "${PHYS_IF}.${VLAN_MGT}" up +ip link set "$PHYS_IF" up + +# Включение маршрутизации +echo 1 > /proc/sys/net/ipv4/ip_forward + +echo "Готово" + +# Проверка +ip -d link show type vlan \ No newline at end of file