net/vlan

48 lines
1.3 KiB
Bash

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