# Deployment Cases

# Office Testbed

#### Исходные данные Стенда:

<p class="callout info">Ноутбук с Windows 11 Pro  
Ноутбук с Linux Astra 1.8 Desktop  
ВМ с Linux Astra 1.8 Server  
Коммутатор - TP-Link TL-SG108</p>

<p class="callout success">Цель: Обеспечить сетевую связанность между 3-мя узлами  
Доступ в Инет для Work-Desktop и Host-Desktop по разным Wi-Fi</p>

#### VM-Server (Linux Astra 1.8 server)

##### Отключение NetworkManager

```ruby
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
sudo systemctl restart networking
systemctl status networking
```

##### Настройка Static IP

```shell
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-Desktop (Linux Astra 1.8)  


##### Настройка Static IP без gw/dns

Узнаем имя Wi-Fi адаптера

```ruby
nmcli device status
nmcli con show
```

Имя адаптера "Gigant\_Guests"

```ruby
sudo nmcli con mod "Wired connection 1" \
  ipv4.method manual \
  ipv4.addresses 192.168.10.3/24 \
  ipv4.gateway "" \
  ipv4.dns "" \
  ipv4.never-default yes \
  ipv6.method disabled
```

Применяем изменения

```ruby
sudo nmcli con up "Gigant_Guests"
ip -4 addr show eno1
```

##### Включение IPv4-форвардинга

```bash
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

```shell
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
```


Применение изменений

```ruby
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-Desktop (Windows 11 Pro)

##### Настройка Static IP без gw/dns

Имя адаптера "Ethernet"

```powershell
$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
```

Профиль «Частная сеть», чтобы брандмауэр не блокировал

```powershell
Set-NetConnectionProfile -InterfaceAlias $if -NetworkCategory Private
```

##### <span>Static route to VM subnet</span>

IP Astra Хоста - 192.168.10.3  
Сеть Astra ВМ - 192.168.122.0

```powershell
route -p add 192.168.122 mask 255.255.255.0 192.168.10.3 metric 1
```

Разрешение входящего ping на Win11

```powershell
New-NetFirewallRule -DisplayName "Allow ICMPv4-In" -Protocol ICMPv4 -IcmpType 8 -Direction Inbound -Action Allow -Profile Any
```

Проверка

```ruby
route print -4 | findstr 192.168.122

ping 192.168.10.3
ping 192.168.122.1
ping 192.168.122.2
```