Задать вопрос
Devoll
@Devoll
Backend-разработчик

Почему внутренний IP адрес сервера транслируется наружу?

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

Имеется:
* Выделенный сервер с ОС Proxmox VE 5.4 (Debian-based) и несколько виртуальных машин.
* Для доступа к интернету создан мост на eth0 ( bridge-ports eth0)
* Для локальной сети между виртуальными машинами создан мост без привязки к сетевому интерфейсу ( bridge-ports none)
* Для раздачи интернета на виртуальные машины использую правило iptables masquerade
* Одна виртуальная машина имеет сразу два интерфеса vmbr0 (со своим внешним ip) и vmbr1

Настройки его сетевых интерфесов:

/etc/network/interfaces:
iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
 address  95.95.95.95
 netmask  255.255.255.0
 gateway  95.95.95.1
 bridge-ports eth0
 bridge-stp off
 bridge-fd 0

auto vmbr1
iface vmbr1 inet static
 address  192.168.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_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE


Диаграмма данной сети:

5d7bccc783584724951965.jpeg

Вопрос:

Провайдер говорит, что видит 192.168.0.1 из-за чего нарушается работа сети провайдера. Он требует перестать предоставлять данный IP адрес наружу.
  • Вопрос задан
  • 1159 просмотров
Подписаться 7 Средний 2 комментария
Решения вопроса 1
hint000
@hint000
у админа три руки
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

добавьте к этой команде ещё такую:
post-up iptables -t nat -A OUTPUT -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

Поясню логику. Дело в том, что
Провайдер говорит, что видит 192.168.0.1
, а это адрес физического хоста, того же самого, на котором выполняется MASQUERADE. Цепочка POSTROUTING работает для пакетов, которые форвардятся (например, с виртуалок), а для пакетов, генерируемых этим же хостом, POSTROUTING не работает, вместо этого нужно использовать OUTPUT.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
нарушается работа сети провайдера


хороший провайдер, и конкурсы интересные
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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