251 lines
7.6 KiB
Markdown
251 lines
7.6 KiB
Markdown
Install proxmox on Hetzner
|
|
|
|
Войдите в консоль корневого сервера Hetzner и перейдите в раздел Rescue Mode, чтобы загрузить сервер в режиме восстановления.
|
|
Заходим на терминал и там предложат установить ОС командой installimage
|
|
|
|
Запускаем, выбираем Other (!!NO SUPPORT!!) - Proxmox7
|
|
``
|
|
installimage
|
|
``
|
|
|
|
Разметка диска, настраиваем RAID0 (так я делал в prox8)
|
|
|
|
```
|
|
DRIVE1 /dev/nvme0n1
|
|
DRIVE2 /dev/nvme1n1
|
|
SWRAID 1
|
|
SWRAIDLEVEL 0 # Use 1 for Raid 1
|
|
|
|
HOSTNAME prox8 # Set correct hostname
|
|
|
|
PART /boot/efi esp 256M
|
|
PART /boot ext4 1024M
|
|
PART lvm vg0 all
|
|
|
|
LV vg0 root / ext4 20G
|
|
LV vg0 swap swap swap 24G
|
|
LV vg0 data /var/lib/vz xfs all
|
|
|
|
# List images with ls /root/.oldroot/nfs/install/../images
|
|
IMAGE /root/.oldroot/nfs/install/../images/Debian-1107-bullseye-amd64-base.tar.gz
|
|
```
|
|
|
|
# Конфигурация массива без LVM, что позволяет, в дальнейшем, тонок настроить конфигурацию файловой системы
|
|
```bash
|
|
SWRAID 1
|
|
SWRAIDLEVEL 0
|
|
|
|
PART swap swap 24G
|
|
PART /boot ext3 1024M
|
|
PART / ext4 20G
|
|
PART /var/lib/vz xfs all
|
|
```
|
|
|
|
|
|
Настройка сети с NAT и мрашрутизацией для виртуалных машин.
|
|
Взято тут
|
|
https://adminwin.ru/nastroyka-nat-dlya-virtualynh-mashin-proxmox/
|
|
```bash
|
|
nano /etc/network/interfaces
|
|
```
|
|
|
|
```
|
|
source /etc/network/interfaces.d/*
|
|
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
iface lo inet6 loopback
|
|
|
|
auto enp7s0
|
|
iface enp7s0 inet static
|
|
address 65.109.116.119/26
|
|
gateway 65.109.116.65
|
|
up route add -net 65.109.116.64 netmask 255.255.255.192 gw 65.109.116.65 dev enp7s0
|
|
# route 65.109.116.64/26 via 65.109.116.65
|
|
|
|
iface enp7s0 inet6 static
|
|
address 2a01:4f9:3051:1005::2/64
|
|
gateway fe80::1
|
|
|
|
iface eth0 inet manual
|
|
|
|
#auto vmbr100
|
|
#iface vmbr100 inet static
|
|
# address 192.168.100.0/24
|
|
# bridge-ports none
|
|
# bridge-stp off
|
|
# bridge-fd 0
|
|
|
|
auto vmbr100
|
|
iface vmbr100 inet static
|
|
address 192.168.100.1
|
|
netmask 255.255.255.0
|
|
bridge-ports none
|
|
bridge-stp off
|
|
bridge-fd 0
|
|
|
|
#NAT
|
|
|
|
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o enp7s0 -j MASQUERADE
|
|
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o enp7s0 -j MASQUERADE
|
|
|
|
post-up iptables -t raw -C PREROUTING -i fwbr+ -j CT --zone 1 2>/dev/null || iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 2>/dev/null || true
|
|
```
|
|
|
|
|
|
|
|
|
|
## OVH
|
|
|
|
```bash
|
|
iface lo inet loopback
|
|
|
|
iface eno1 inet manual
|
|
|
|
iface enp3s0f1 inet manual
|
|
|
|
auto vmbr0
|
|
iface vmbr0 inet static
|
|
address 167.114.172.204/24
|
|
gateway 167.114.172.254
|
|
bridge-ports eno1
|
|
bridge-stp off
|
|
bridge-fd 0
|
|
hwaddress AC:1F:6B:05:B7:84
|
|
|
|
iface vmbr0 inet6 static
|
|
address 2607:5300:60:73cc::/64
|
|
gateway 2607:5300:60:73ff:ff:ff:ff:ff
|
|
|
|
|
|
|
|
auto vmbr100
|
|
iface vmbr100 inet static
|
|
address 192.168.100.1/24
|
|
bridge-ports none
|
|
bridge-stp off
|
|
bridge-fd 0
|
|
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
|
|
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr0 -j MASQUERADE
|
|
#NAT
|
|
|
|
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1
|
|
```
|
|
|
|
|
|
Попался проблемный сервер, где LXC контейнер не мог получить интернет, решение ниже
|
|
```bash
|
|
source /etc/network/interfaces.d/*
|
|
|
|
auto lo
|
|
iface lo inet loopback
|
|
|
|
iface lo inet6 loopback
|
|
|
|
auto enp195s0
|
|
iface enp195s0 inet static
|
|
address 162.55.133.173/26
|
|
gateway 162.55.133.129
|
|
up route add -net 162.55.133.128 netmask 255.255.255.192 gw 162.55.133.129 dev enp195s0
|
|
# route 162.55.133.128/26 via 162.55.133.129
|
|
|
|
iface enp195s0 inet6 static
|
|
address 2a01:4f8:271:5f92::2/64
|
|
gateway fe80::1
|
|
|
|
iface eth0 inet manual
|
|
|
|
iface eth1 inet manual
|
|
|
|
auto vmbr100
|
|
iface vmbr100 inet static
|
|
address 192.168.100.1
|
|
netmask 255.255.255.0
|
|
bridge-ports none
|
|
bridge-stp off
|
|
bridge-fd 0
|
|
|
|
#NAT
|
|
|
|
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
post-up iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -j MASQUERADE
|
|
post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -j MASQUERADE
|
|
|
|
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 || true
|
|
```
|
|
```bash
|
|
Проверил prox14 / тестовый LXC 111. Ничего не менял.
|
|
|
|
Что видно
|
|
CT 111:
|
|
|
|
net0: firewall=1, ip=192.168.100.24/24, gw=192.168.100.1
|
|
|
|
Внутри контейнера:
|
|
|
|
ping 192.168.100.1: OK
|
|
ping 1.1.1.1: FAIL
|
|
DNS: FAIL
|
|
curl наружу: timeout
|
|
|
|
Хост prox14 в интернет ходит нормально. LXC без firewall=1 тоже ходит наружу. Значит проблема именно в связке firewall=1 + NAT.
|
|
|
|
Причина
|
|
На prox14 есть MASQUERADE:
|
|
|
|
-A POSTROUTING -s 192.168.100.0/24 -o enp7s0 -j MASQUERADE
|
|
|
|
Но отсутствует runtime raw-правило conntrack zone для fwbr+:
|
|
|
|
iptables-save -t raw
|
|
# raw table пустая, правила fwbr+ нет
|
|
|
|
При этом в /etc/network/interfaces оно прописано:
|
|
|
|
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
|
|
Но в активных правилах его нет. Поэтому для LXC с firewall=1, которые проходят через fwbr/fwln/fwpr, NAT работает неправильно.
|
|
|
|
Это подтверждается conntrack:
|
|
|
|
src=192.168.100.24 dst=185.12.64.2 ... [UNREPLIED]
|
|
reply dst=192.168.100.24
|
|
mark=111
|
|
|
|
То есть пакет от CT 111 не получает нормальный SNAT на публичный IP 23.88.7.159; ответ ожидается обратно на приватный 192.168.100.24, что с интернета невозможно.
|
|
|
|
Для LXC без firewall conntrack другой:
|
|
|
|
src=192.168.100.29 dst=1.1.1.1 ...
|
|
reply dst=23.88.7.159
|
|
[ASSURED]
|
|
mark=0
|
|
|
|
Там NAT работает.
|
|
|
|
Как решить
|
|
Нужно восстановить raw conntrack-zone правило для firewall bridge:
|
|
|
|
iptables -t raw -C PREROUTING -i fwbr+ -j CT --zone 1 || \
|
|
iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
|
|
После этого новые соединения из LXC с firewall=1 должны начать NAT’иться корректно. Старые UNREPLIED conntrack-записи можно либо подождать, либо аккуратно удалить для
|
|
конкретного CT.
|
|
|
|
Постоянно лучше сделать idempotent-вариантом, а не голым -I, чтобы не плодить дубли после reload:
|
|
|
|
post-up iptables -t raw -C PREROUTING -i fwbr+ -j CT --zone 1 || iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 || true
|
|
|
|
Коротко: проблема не в правилах самого CT 111; outbound из него firewall разрешает. Проблема в отсутствующем активном raw/conntrack-zone правиле для fwbr+ после
|
|
переустановки prox14.
|
|
|
|
```
|
|
|