Как настроить 2 сети, одна из которых виртуальная? Коллеги, привет!
В офисе к нам приходит шнурок от провайдера с одним статическим IP. Он втыкается в роутер, к которому подключена куча машин. Роутер раздаёт IP адреса из сети 192.168.2.0/24 по DHCP. Всё работает как надо.
Сейчас приобрели сервер, воткнули в него патчкорд от роутера, сервер получил свой IP адрес (например, 192.168.2.200). Внутри сервера установили KVM, создали сеть NAT (virbr1, virbr1-nic. IP адреса раздаёт DHCP в сети 192.168.5.0/24), которая ходит в интернет через физический интерфейс enp2s0. Виртуалки доступ в интернет имеют, всё хорошо.
Что нужно: дать возможность из сети 192.168.2.0/24 получать доступ к виртуалкам в сети 192.168.5.0/24. Сначала я действовал просто: на роутере настроил статический маршрут (при пакете в 192.168.5.0/24 пакет уходит в 192.168.2.200). Затем на самом сервере настроил iptables на переадресацию пакетов из enp2s0 в virbr1 если IP получателя находится в сети 192.168.5.0/24. И всё, вроде, заработало. Только был странный момент - у некоторых людей к 192.168.5.0 не подключалось. Ни по SSH, ни по HTTP. А у других всё было хорошо.
Что интересно: как вообще организуют такие сети? Как правильно настраивать iptables под такие задачи? Не подойдёт ли для этого bridge?
Сильно не бейте, я не сисадмин, просто приходится настраивать сеть в офисе, знания приобретал по ходу работы.

21 Авг 2019 в 06:36
257 +1
0
Ответы
1

Для организации сетей с виртуальными машинами и доступом из внешней сети можно использовать несколько подходов. Один из них - использование моста (bridge).

Для этого нужно настроить мост на сервере, который будет объединять физический интерфейс enp2s0 и виртуальный интерфейс virbr1. В этом случае все устройства в сети 192.168.2.0/24 и 192.168.5.0/24 будут работать в одной общей сети и видеть друг друга без необходимости настройки маршрутизации и NAT.

Чтобы настроить мост, можно использовать следующие шаги:

Установить пакет bridge-utils (если еще не установлен): sudo apt-get install bridge-utilsОстановить DHCP сервер на виртуальной сети (virbr1): sudo systemctl stop libvirt-guestsСоздать мост br0: sudo brctl addbr br0Добавить физический интерфейс enp2s0 в мост br0: sudo brctl addif br0 enp2s0Удалить интерфейс enp2s0 из DHCP: sudo dhclient -r enp2s0Включить мост и настроить IP адрес: sudo ip link set br0 up && sudo ip addr add 192.168.2.XXX/24 dev br0Запустить DHCP сервер на новом мосту (br0) для раздачи IP адресов устройствам в обеих сетях

Теперь все устройства в сети 192.168.2.0/24 и 192.168.5.0/24 будут находиться в одной общей сети и иметь доступ друг к другу.

Касательно настройки iptables, для переадресации пакетов между сетями можно использовать следующее правило:
sudo iptables -A FORWARD -i br0 -o virbr1 -j ACCEPT
sudo iptables -A FORWARD -i virbr1 -o br0 -j ACCEPT

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

20 Апр 2024 в 13:15
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир