Загрузка данных


# Вариант 3 (etherwave.net) — всё по машинам

## Подсети

|Сеть            |Маска|Хостов|
|----------------|-----|------|
|VLAN100 (HQ-SRV)|/29  |6     |
|VLAN200 (HQ-CLI)|/27  |30    |
|BR-SRV          |/26  |62    |
|VLAN999 (Mgmt)  |/25  |126   |
|ISP→HQ-RTR      |/28  |—     |
|ISP→BR-RTR      |/28  |—     |
|GRE туннель     |/30  |—     |

-----

# ISP

```bash
hostnamectl set-hostname isp.etherwave.net; exec bash
```

```bash
# enp7s1 — DHCP (к провайдеру)
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=dhcp
EOF

# enp7s2 — к HQ-RTR
mkdir -p /etc/net/ifaces/enp7s2
cat > /etc/net/ifaces/enp7s2/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "172.16.4.1/28" > /etc/net/ifaces/enp7s2/ipv4address
cat > /etc/net/ifaces/enp7s2/ipv4route << 'EOF'
192.168.100.0/29 via 172.16.4.2
192.168.200.0/27 via 172.16.4.2
192.168.99.0/25 via 172.16.4.2
EOF

# enp7s3 — к BR-RTR
mkdir -p /etc/net/ifaces/enp7s3
cat > /etc/net/ifaces/enp7s3/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "172.16.5.1/28" > /etc/net/ifaces/enp7s3/ipv4address
echo "192.168.30.0/26 via 172.16.5.2" > /etc/net/ifaces/enp7s3/ipv4route

systemctl restart network
```

```bash
# NAT
echo "net.ipv4.ip_forward = 1" >> /etc/net/sysctl.conf
sysctl -p /etc/net/sysctl.conf
apt-get install -y iptables
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
systemctl enable --now iptables
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ip a
ip r
ping -c 3 172.16.4.2   # HQ-RTR
ping -c 3 172.16.5.2   # BR-RTR
```

-----

# HQ-RTR

```bash
hostnamectl set-hostname hq-rtr.etherwave.net; exec bash
```

```bash
# WAN
mkdir -p /etc/net/ifaces/enp7s1
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "172.16.4.2/28" > /etc/net/ifaces/enp7s1/ipv4address
echo "default via 172.16.4.1" > /etc/net/ifaces/enp7s1/ipv4route

# LAN trunk (без IP)
mkdir -p /etc/net/ifaces/enp7s2
cat > /etc/net/ifaces/enp7s2/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF

# VLAN100 — HQ-SRV
mkdir -p /etc/net/ifaces/enp7s2.100
cat > /etc/net/ifaces/enp7s2.100/options << 'EOF'
TYPE=vlan
BOOTPROTO=static
VID=100
HOST=enp7s2
EOF
echo "192.168.100.1/29" > /etc/net/ifaces/enp7s2.100/ipv4address

# VLAN200 — HQ-CLI
mkdir -p /etc/net/ifaces/enp7s2.200
cat > /etc/net/ifaces/enp7s2.200/options << 'EOF'
TYPE=vlan
BOOTPROTO=static
VID=200
HOST=enp7s2
EOF
echo "192.168.200.1/27" > /etc/net/ifaces/enp7s2.200/ipv4address

# VLAN999 — Management
mkdir -p /etc/net/ifaces/enp7s2.999
cat > /etc/net/ifaces/enp7s2.999/options << 'EOF'
TYPE=vlan
BOOTPROTO=static
VID=999
HOST=enp7s2
EOF
echo "192.168.99.1/25" > /etc/net/ifaces/enp7s2.999/ipv4address

systemctl restart network
```

```bash
# GRE туннель
mkdir -p /etc/net/ifaces/gre1
cat > /etc/net/ifaces/gre1/options << 'EOF'
TYPE=iptun
TUNTYPE=gre
TUNLOCAL=172.16.4.2
TUNREMOTE=172.16.5.2
TUNOPTIONS='ttl 64'
HOST=enp7s1
BOOTPROTO=static
MULTICAST=yes
EOF
echo "10.0.0.1/30" > /etc/net/ifaces/gre1/ipv4address

systemctl restart network
ip link set gre1 up
ip link set gre1 multicast on
```

```bash
# Автозапуск туннеля
cat >> /etc/rc.d/rc.local << 'EOF'
ip link set gre1 up
ip link set gre1 multicast on
EOF
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
```

```bash
# NAT
echo "net.ipv4.ip_forward = 1" >> /etc/net/sysctl.conf
sysctl -p /etc/net/sysctl.conf
apt-get install -y iptables
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
systemctl enable --now iptables
```

```bash
# OSPF
apt-get install -y frr
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
systemctl enable --now frr

vtysh
conf t
router ospf
 passive-interface default
 network 10.0.0.0/30 area 0
 network 192.168.100.0/29 area 0
 network 192.168.200.0/27 area 0
 network 192.168.99.0/25 area 0
exit
interface gre1
 no ip ospf passive
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 P@ssw0rd
end
wr
```

```bash
# DHCP для HQ-CLI
apt-get install -y dhcp-server

cat > /etc/dhcp/dhcpd.conf << 'EOF'
subnet 192.168.200.0 netmask 255.255.255.224 {
  range 192.168.200.2 192.168.200.30;
  option routers 192.168.200.1;
  option domain-name-servers 192.168.100.2;
  option domain-name "etherwave.net";
}
EOF

echo 'DHCPDARGS="enp7s2.200"' > /etc/sysconfig/dhcpd
systemctl enable --now dhcpd
```

```bash
# Пользователь firewallwren
useradd firewallwren
passwd firewallwren
# Вводим: P@$$word
usermod -aG wheel firewallwren
sed -i 's/^#\s*%wheel\s*ALL=(ALL:ALL)\s*NOPASSWD: ALL/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/' /etc/sudoers
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ip a
ip r
ping -c 3 172.16.4.1   # ISP
ping -c 3 10.0.0.2     # BR-RTR через туннель
vtysh -c "show ip ospf neighbor"
vtysh -c "show ip route ospf"
```

-----

# BR-RTR

```bash
hostnamectl set-hostname br-rtr.etherwave.net; exec bash
```

```bash
# WAN
mkdir -p /etc/net/ifaces/enp7s1
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "172.16.5.2/28" > /etc/net/ifaces/enp7s1/ipv4address
echo "default via 172.16.5.1" > /etc/net/ifaces/enp7s1/ipv4route

# LAN
mkdir -p /etc/net/ifaces/enp7s2
cat > /etc/net/ifaces/enp7s2/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "192.168.30.1/26" > /etc/net/ifaces/enp7s2/ipv4address

systemctl restart network
```

```bash
# GRE туннель
mkdir -p /etc/net/ifaces/gre1
cat > /etc/net/ifaces/gre1/options << 'EOF'
TYPE=iptun
TUNTYPE=gre
TUNLOCAL=172.16.5.2
TUNREMOTE=172.16.4.2
TUNOPTIONS='ttl 64'
HOST=enp7s1
BOOTPROTO=static
MULTICAST=yes
EOF
echo "10.0.0.2/30" > /etc/net/ifaces/gre1/ipv4address

systemctl restart network
ip link set gre1 up
ip link set gre1 multicast on
```

```bash
# Автозапуск туннеля
cat >> /etc/rc.d/rc.local << 'EOF'
ip link set gre1 up
ip link set gre1 multicast on
EOF
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local
```

```bash
# NAT
echo "net.ipv4.ip_forward = 1" >> /etc/net/sysctl.conf
sysctl -p /etc/net/sysctl.conf
apt-get install -y iptables
iptables -t nat -A POSTROUTING -o enp7s1 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
systemctl enable --now iptables
```

```bash
# OSPF
apt-get install -y frr
sed -i 's/ospfd=no/ospfd=yes/' /etc/frr/daemons
systemctl enable --now frr

vtysh
conf t
router ospf
 passive-interface default
 network 10.0.0.0/30 area 0
 network 192.168.30.0/26 area 0
exit
interface gre1
 no ip ospf passive
 ip ospf authentication message-digest
 ip ospf message-digest-key 1 md5 P@ssw0rd
end
wr
```

```bash
# Пользователь firewallwren
useradd firewallwren
passwd firewallwren
# Вводим: P@$$word
usermod -aG wheel firewallwren
sed -i 's/^#\s*%wheel\s*ALL=(ALL:ALL)\s*NOPASSWD: ALL/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/' /etc/sudoers
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ip a
ip r
ping -c 3 172.16.5.1   # ISP
ping -c 3 10.0.0.1     # HQ-RTR через туннель
vtysh -c "show ip ospf neighbor"
vtysh -c "show ip route ospf"
```

-----

# HQ-SRV

```bash
hostnamectl set-hostname hq-srv.etherwave.net; exec bash
```

```bash
# IP адрес
mkdir -p /etc/net/ifaces/enp7s1
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "192.168.100.2/29" > /etc/net/ifaces/enp7s1/ipv4address
echo "default via 192.168.100.1" > /etc/net/ifaces/enp7s1/ipv4route

systemctl restart network
```

```bash
# Пользователь quantumduck
useradd -u 1003 quantumduck
passwd quantumduck
# Вводим: P@ssw0rd
usermod -aG wheel quantumduck
sed -i 's/^#\s*%wheel\s*ALL=(ALL:ALL)\s*NOPASSWD: ALL/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/' /etc/sudoers
grep NOPASSWD /etc/sudoers
```

```bash
# SSH
cat >> /etc/openssh/sshd_config << 'EOF'

Port 2022
AllowUsers quantumduck
MaxAuthTries 2
PasswordAuthentication yes
Banner /etc/openssh/banner
EOF

echo "Authorized access only" > /etc/openssh/banner
systemctl restart sshd
```

```bash
# DNS (dnsmasq)
apt-get install -y dnsmasq
systemctl stop dnsmasq
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak

cat > /etc/dnsmasq.conf << 'EOF'
interface=enp7s1
listen-address=192.168.100.2,127.0.0.1
domain=etherwave.net
server=8.8.8.8
no-resolv

host-record=hq-rtr.etherwave.net,192.168.100.1
host-record=hq-srv.etherwave.net,192.168.100.2
host-record=hq-cli.etherwave.net,192.168.200.2
host-record=br-rtr.etherwave.net,192.168.30.1
host-record=br-srv.etherwave.net,192.168.30.2
cname=moodle.etherwave.net,hq-rtr.etherwave.net
cname=wiki.etherwave.net,hq-rtr.etherwave.net

ptr-record=1.100.168.192.in-addr.arpa,hq-rtr.etherwave.net
ptr-record=2.100.168.192.in-addr.arpa,hq-srv.etherwave.net
ptr-record=2.200.168.192.in-addr.arpa,hq-cli.etherwave.net
EOF

systemctl enable --now dnsmasq
systemctl status dnsmasq
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ping -c 3 192.168.100.1              # шлюз
ping -c 3 8.8.8.8                   # интернет
ssh -p 2022 quantumduck@192.168.100.2
host hq-srv.etherwave.net 192.168.100.2
host 192.168.100.1 192.168.100.2
```

-----

# BR-SRV

```bash
hostnamectl set-hostname br-srv.etherwave.net; exec bash
```

```bash
# IP адрес
mkdir -p /etc/net/ifaces/enp7s1
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=static
EOF
echo "192.168.30.2/26" > /etc/net/ifaces/enp7s1/ipv4address
echo "default via 192.168.30.1" > /etc/net/ifaces/enp7s1/ipv4route

systemctl restart network
```

```bash
# Пользователь quantumduck
useradd -u 1003 quantumduck
passwd quantumduck
# Вводим: P@ssw0rd
usermod -aG wheel quantumduck
sed -i 's/^#\s*%wheel\s*ALL=(ALL:ALL)\s*NOPASSWD: ALL/%wheel ALL=(ALL:ALL) NOPASSWD: ALL/' /etc/sudoers
grep NOPASSWD /etc/sudoers
```

```bash
# SSH
cat >> /etc/openssh/sshd_config << 'EOF'

Port 2022
AllowUsers quantumduck
MaxAuthTries 2
PasswordAuthentication yes
Banner /etc/openssh/banner
EOF

echo "Authorized access only" > /etc/openssh/banner
systemctl restart sshd
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ping -c 3 192.168.30.1   # шлюз
ping -c 3 8.8.8.8        # интернет
ping -c 3 192.168.100.2  # HQ-SRV (через OSPF)
ssh -p 2022 quantumduck@192.168.30.2
```

-----

# HQ-CLI

```bash
hostnamectl set-hostname hq-cli.etherwave.net; exec bash
```

```bash
# IP по DHCP
cat > /etc/net/ifaces/enp7s1/options << 'EOF'
TYPE=eth
BOOTPROTO=dhcp
EOF
systemctl restart network
```

```bash
# Часовой пояс
timedatectl set-timezone Asia/Yekaterinburg
```

**Проверка:**

```bash
ip a                     # должен получить адрес из 192.168.200.2-30
ping -c 3 192.168.200.1  # шлюз
ping -c 3 8.8.8.8        # интернет
host hq-srv.etherwave.net # DNS работает
```

-----

# Proxmox — VLAN теги

|Машина|Адаптер|VLAN Tag        |
|------|-------|----------------|
|HQ-SRV|enp7s1 |100             |
|HQ-CLI|enp7s1 |200             |
|HQ-RTR|enp7s2 |без тега (trunk)|

На Linux Bridge enp7s2 HQ-RTR поставить галку **VLAN aware**.