Office Testbed
Исходные данные Стенда:
Ноутбук с Windows 11 Pro
Ноутбук с Linux Astra 1.8 Desktop
ВМ с Linux Astra 1.8 Server
Коммутатор - TP-Link TL-SG108
Цель: Обеспечить сетевую связанность между 3-мя узлами
Доступ в Инет для Work-Desktop и Host-Desktop по разным Wi-Fi
VM (Linux Astra 1.8 Server)
Отключение NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
sudo systemctl restart networking
systemctl status networking
Настройка Static IP
sudo tee /etc/network/interfaces > /dev/null << 'EOF'
auto lo
iface lo inet loopback
auto enp1s0
iface enp1s0 inet static
address 192.168.122.2/24
gateway 192.168.122.1
dns-nameservers 192.168.122.1
EOF
sudo systemctl restart networking
Host (Linux Astra 1.8 Desktop)
Настройка Static IP без gw/dns
Узнаем имя Wi-FiLAN адаптера
nmcliip device-br status-4 nmcli con showa
Имя адаптера "Gigant_Guests"eno1"
sudo nmcli con modadd "Wiredtype connectionethernet 1"ifname eno1 con-name pxe-lan \
ipv4.method manual \ ipv4.addresses 192.168.10.1/24
\sudo ipv4.gatewaynmcli ""con \up ipv4.dnspxe-lan
""nmcli \device ipv4.never-default yes \
ipv6.method disabledstatus
Применяем изменения
sudo nmcli con up "Gigant_Guests"
ip -4 addr show eno1
Включение IPv4-форвардинга
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-forward.conf
sudo sysctl --system
sysctl net.ipv4.ip_forward
Hook для libvirt firewall
sudo mkdir -p /etc/libvirt/hooks
sudo tee /etc/libvirt/hooks/network > /dev/null << 'EOF'
#!/bin/bash
# $1 = имя сети, $2 = операция
if [ "$1" = "default" ] && [ "$2" = "started" ]; then
# Win11 (LAN) -> ВМ
iptables -C FORWARD -i eno1 -o virbr0 -s 192.168.10.0/24 -d 192.168.122.0/24 -j ACCEPT 2>/dev/null || \
iptables -I FORWARD 1 -i eno1 -o virbr0 -s 192.168.10.0/24 -d 192.168.122.0/24 -j ACCEPT
# ВМ -> Win11 (ответы и новые соединения)
iptables -C FORWARD -i virbr0 -o eno1 -s 192.168.122.0/24 -d 192.168.10.0/24 -j ACCEPT 2>/dev/null || \
iptables -I FORWARD 2 -i virbr0 -o eno1 -s 192.168.122.0/24 -d 192.168.10.0/24 -j ACCEPT
fi
EOF
sudo chmod +x /etc/libvirt/hooks/network
Применение изменений
sudo systemctl restart libvirtd
sudo virsh net-destroy default && sudo virsh net-start default
sudo virsh net-autostart default
# Проверка правил
sudo iptables -L FORWARD -n -v --line-numbers | head
Work (Windows 11 Pro Desktop)
Настройка Static IP без gw/dns
Имя адаптера "Ethernet"
$if = "Ethernet"
Get-NetIPAddress -InterfaceAlias $if -AddressFamily IPv4 -ErrorAction SilentlyContinue | Remove-NetIPAddress -Confirm:$false
New-NetIPAddress -InterfaceAlias $if -IPAddress 192.168.10.2 -PrefixLength 24
Профиль «Частная сеть», чтобы брандмауэр не блокировал
Set-NetConnectionProfile -InterfaceAlias $if -NetworkCategory Private
Маршрутизация к VM
Статический маршрут в сеть 192.168.122.0/24
IP Astra Хоста - 192.168.10.1
Сеть Astra ВМ - 192.168.122.0
route -p add 192.168.122.0 mask 255.255.255.0 192.168.10.1 metric 1
Удаление маршрута
route delete 192.168.122.0 mask 255.255.255.0 192.168.10.1
Разрешение входящего ping на Win11
New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4 -IcmpType 8 -Direction Inbound -Action Allow -Profile Any
Проверка
route print -4 | findstr 192.168.122
ping 192.168.10.1
ping 192.168.122.1
ping 192.168.122.2