IP fix
This commit is contained in:
@@ -31,7 +31,7 @@ lsof +D /var/lib/vz
|
|||||||
---
|
---
|
||||||
|
|
||||||
### 3. Пересоздай файловую систему XFS
|
### 3. Пересоздай файловую систему XFS
|
||||||
Оптимальные параметры для RAID0 с chunk = 1 Mb и 6 дисков для блокчейнов:
|
Оптимальные параметры для RAID0 с chunk = 1 Mb и 3 диска для блокчейнов:
|
||||||
```bash
|
```bash
|
||||||
mkfs.xfs -f -s size=4096 -l size=1g -n size=4096 -d su=1m,sw=3 /dev/md3
|
mkfs.xfs -f -s size=4096 -l size=1g -n size=4096 -d su=1m,sw=3 /dev/md3
|
||||||
```
|
```
|
||||||
|
|||||||
+64
-19
@@ -91,10 +91,13 @@ 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-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-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o enp7s0 -j MASQUERADE
|
||||||
|
|
||||||
post-up iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
|
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
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 2>/dev/null || true
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## OVH
|
## OVH
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -177,29 +180,71 @@ 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
|
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1 || true
|
||||||
```
|
```
|
||||||
```bash
|
```bash
|
||||||
✅ Что было причиной
|
Проверил prox14 / тестовый LXC 111. Ничего не менял.
|
||||||
В конфигурации контейнера был установлен firewall=1
|
|
||||||
|
|
||||||
Но Proxmox firewall был отключён (pve-firewall stop)
|
Что видно
|
||||||
|
CT 111:
|
||||||
|
|
||||||
В итоге трафик из контейнера проходил в bridge, но обратно — не возвращался
|
net0: firewall=1, ip=192.168.100.24/24, gw=192.168.100.1
|
||||||
|
|
||||||
После удаления firewall=1 — контейнер подключился напрямую к vmbr100, и всё заработало
|
Внутри контейнера:
|
||||||
|
|
||||||
🧩 Что запомнить на будущее
|
ping 192.168.100.1: OK
|
||||||
Компонент Рекомендация
|
ping 1.1.1.1: FAIL
|
||||||
bridge=vmbr100 Указывать в net0
|
DNS: FAIL
|
||||||
type=veth Обязательно
|
curl наружу: timeout
|
||||||
firewall=1 Оставлять только если firewall активен
|
|
||||||
pve-firewall Должен быть запущен, если включён firewall=1
|
|
||||||
NAT (MASQUERADE) Должен быть без -o, если bridge без портов
|
|
||||||
ip_forward=1 Всегда включать
|
|
||||||
|
|
||||||
📦 Хочешь — могу сохранить тебе:
|
Хост prox14 в интернет ходит нормально. LXC без firewall=1 тоже ходит наружу. Значит проблема именно в связке firewall=1 + NAT.
|
||||||
шаблон interfaces с NAT и vmbr100
|
|
||||||
|
|
||||||
шаблон 500.conf (или net0) без firewall
|
Причина
|
||||||
|
На 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.
|
||||||
|
|
||||||
команду на быструю проверку сети внутри LXC
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user