Elektronik123
@Elektronik123
системный администратор

Настройка сети Debian 9 Proxmox Hetzner?

Добрый день!
не первый день бьюсь над проблемой, гугл давно скурил, решил обратиться за помощью...

Суть проблемы: арендован физ. сервер на hetzner.de, соответсвенно есть статический IP, установлен Debian 9, на него установлен Proxmox, туда залит ранее подготовленный образ (qcow2) win2016, не получается настроить внутреннюю lan-сеть, если точнее -- маршрутизацию между мостами (локальная сеть не видит интернет).
Делаю по мануалам, коих много, все сводится к тому, что надо добавить 3 строки в /etc/network/interfaces:

post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE

Но как не пытался, не выходит. Более того, после добавления строк не поднимается мост при рестарте службы network.

немного инфы:
PVE 5.3-6

uname -a
Linux Debian-95-stretch-64-minimal 4.15.18-9-pve #1 SMP PVE 4.15.18-30 (Thu, 15 Nov 2018 13:32:46 +0100) x86_64 GNU/Linux

nano /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

source /etc/network/interfaces.d/*
[spoiler]
auto lo
iface lo inet loopback

iface lo inet6 loopback

auto enp0s31f6
iface enp0s31f6 inet manual

auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.182
netmask 255.255.255.192
gateway xx.xxx.xxx.129
bridge-ports enp0s31f6
bridge-stp off
bridge-fd 0
# up route add -net xxx.xxx.xxx.128 netmask 255.255.255.192 gw xxx.xxx.xxx.129 dev enp0s31f6

auto vmbr1
iface vmbr1 inet static
address 10.0.0.1
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
# post-up echo 1 > /proc/sys/net/ipv4/ip_forwardpost-up
# iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o enp0s31f6 -j MASQUERADE
# post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o enp0s31f6 -j MASQUERADE[/spoiler]

Закоментировано то, что по идее должно быть в конфиге. Если раскоментирую строку под vmbr0, после service network restart vmbr0 не поднимается.

[spoiler]systemctl status networking.service

networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-01-14 08:37:34 CET; 11s ago
Docs: man:interfaces(5)
Process: 3941 ExecStop=/sbin/ifdown -a --read-environment --exclude=lo (code=exited, status=0/SUCCESS)
Process: 4530 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Process: 4520 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=0/SUCCESS)
Main PID: 4530 (code=exited, status=1/FAILURE)
CPU: 30ms

Jan 14 08:37:34 Debian-95-stretch-64-minimal systemd[1]: Starting Raise network interfaces...
Jan 14 08:37:34 Debian-95-stretch-64-minimal ifup[4530]: Waiting for vmbr0 to get ready (MAXWAIT is 2 seconds).
Jan 14 08:37:34 Debian-95-stretch-64-minimal ifup[4530]: RTNETLINK answers: File exists
Jan 14 08:37:34 Debian-95-stretch-64-minimal ifup[4530]: ifup: failed to bring up vmbr0
Jan 14 08:37:34 Debian-95-stretch-64-minimal systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Jan 14 08:37:34 Debian-95-stretch-64-minimal systemd[1]: Failed to start Raise network interfaces.
Jan 14 08:37:34 Debian-95-stretch-64-minimal systemd[1]: networking.service: Unit entered failed state.
Jan 14 08:37:34 Debian-95-stretch-64-minimal systemd[1]: networking.service: Failed with result 'exit-code'.[/spoiler]

Если закоментирую строку обратно -- выдает ту же ошибку. Что странно, конфиг ведь приведен в первоначальное состояние. При раскоментировании нижних строканалогично не поднимается vmbr1. Подозреваю что VPE как то блокирует, если так -- править надо непосредственно из веб-интерфейса. но что и где править -- не понятно. на всех форумах и во всех мануалах, в том числе и в manual hetzner и в manual самого proxmox говорится о том, что необходимо только добавить эти строки...
собственно вот и вопрос. как сделать маскардинг и куда копать дальше. (естественно пробую не только ребутнуть службу, но и ребутаю сервер после неудачи...если строки закоментированы -- после ребута служба ребутится без ошибок, если раскоментировать -- те де ошибки, не может поднять интерфейс...)

ну и на всякий случай настройки виртуальной машины:
ip 10.0.0.2
mask 255.255.255.0
gate 10.0.0.1
dns 8.8.8.8
в PVE сеть с vmbr1, карта Intel (пробовал и virtio, дрова стоят, на предыдущем PVE машина работала с virtio сетевой). Попробовал поставить там машину с нуля (возможности что "что то в винде залагало" я не рассматриваю, не тот случай, но мысли просто кончились за 2 дня работы), результат тот же. 10.0.0.1 пингуется, 8.8.8.8 не пингуется...

Скажите, какеи еще нужны вводные для решения проблемы. или может кто стакивался и сразу подскажет, куда копать?
  • Вопрос задан
  • 1307 просмотров
Решения вопроса 1
Elektronik123
@Elektronik123 Автор вопроса
системный администратор
помогли на sisadmins.ru
Правило айпитаблеса для маскарадинга лучше засунуть в /etc/iptables/rules.v4 с помощью пакета iptables-persistent

Решение:
apt-get install iptables-persistent
iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
iptables-save > /etc/iptables/rules.v4
reboot

Дело в том, что первые 20 ответов в яндексе говорят прописывать маскардинг в interfaces, я был уверен, что надо прописывать в самом iptables, просто не знал как, мало опыта...подсказали, 5 мин гугла, 2 ребута и проблема решена :)

всем спасибо, вопрос можно закрывать
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Добавьте правило ручками и посмотрите стату в иптаблесе
Ну и просто проверьте какие правила у вас в иптаблесе не запрещено лишнего
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы