LINUX.ORG.RU
решено ФорумAdmin

NAT или не NAT?

 


0

2

HI, традиционно, ALL. Дурная голова снова не даёт покоя кривым рукам). Решил я навести порядок на своём многострадательном шлюзе посредством запихивания всего в гипервизор (proxmox over debian) и раскидывания по виртуалкам, и упёрся в такой момент. Сеть выглядит так: провайдер-гипервизор-НАТ-виртуалка-локалка. Конфиг гипервизора:

auto lo
iface lo inet loopback

allow-hotplug eth1
iface eth1 inet manual

allow-hotplug eth2
iface eth2 inet manual

auto dsl-provider
iface dsl-provider inet ppp
        pre-up /bin/ip link set eth1 up # line maintained by pppoeconf
        provider dsl-provider

auto vmbr0
iface vmbr0 inet static
        address  192.168.0.1
        netmask  255.255.255.0
        bridge_ports eth2
        bridge_stp off
        bridge_fd 0

auto vmbr1
iface vmbr1 inet static
        address  192.168.1.1
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0

/etc/rc.local

iptables -t nat -A POSTROUTING -s '192.168.1.0/24' -o ppp0 -j MASQUERADE

Таким образом интернет натится в виртуалку. Проблема в том, что по задумке гипервизор не должен этим заниматься, но по-другому завернуть интернет в виртуалку не вышло. Сначала я попытался засунуть eth1 в vmbr1 и поднять PPPoE изнутри виртуалки, но у меня ничего не вышло. vmbr1 доступен, но PPPoE через него отчего-то не поднимается. Устал, поднял ppp0 из гипервизора, занатил интернет в нём же, в виртуалках интернет есть. Потом пробовал засунуть ppp0 в тот же бридж-не сработало. Теперь следующая проблема: в виртуалке по той же задумке два интерфейса, на внутреннем висят всякие сервера типа DHCP и тд для локалки. Как пропустить трафик из интернета через виртуалку без NAT? Ибо нат за натом городить не хочется.

на хосте просто создаешь бридж на физический интерфейс, у сетевого интерфейса вм прописываешь бридж с ранее указанным бриджом. все. далее все настройки внутри вм. собственно сам настраивал такую схему, проблем не было. зачем здесь нат не совсем понятно.

byy ()
Ответ на: комментарий от byy

я попытался засунуть eth1 в vmbr1 и поднять PPPoE изнутри виртуалки, но у меня ничего не вышло. vmbr1 доступен, но PPPoE через него отчего-то не поднимается

Изначально я так и пытался сделать-бридж vmbr1 на физический интерфейс eth1, который смотрит в сторону интернета:

auto vmbr1
iface vmbr1 inet static
        address  192.168.1.1
        netmask  255.255.255.0
        bridge_ports eth1
        bridge_stp off
        bridge_fd 0
и соответственно интерфейс у виртуалки указывающий на этот бридж. При этом ip 192.168.1.1 из ВМ пингуется, а PPPoE не поднимается-настраиваю через pppoeconf, и он пишет что не нашёл концентратор PPPoE на интерфейсе. Но раз подобная схема работала, почему же она не работает у меня? Куда копать?

dark-pc ()
Ответ на: комментарий от byy

Получилось. Оказывается не нужно было назначать IP интерфейсам виртуалки перед поиском PPPoE. Благодарю за подсказку.

dark-pc ()

Теперь бы ещё настроить сеть внутри виртуалки. Как правильно сделать? Объединять бриджи в бридж?)

dark-pc ()
Ответ на: комментарий от dark-pc

Оказалось проще чем я думал. Хосту добавил дефолтный маршрут на IP виртуалки, и всё заверте...

dark-pc ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.