Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Как настроить 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?

Сильно не бейте, я не сисадмин, просто приходится настраивать сеть в офисе, знания приобретал по ходу работы.
  • Вопрос задан
  • 509 просмотров
Подписаться 2 Простой 8 комментариев
Пригласить эксперта
Ответы на вопрос 4
tsklab
@tsklab
Здесь отвечаю на вопросы.
но в основной сети адреса выдаются DHCP, а у виртуалок хотелось бы статичные адреса иметь
Для конкретного MAC выделенный IP (настройка DHCP). Или внутри отключите DHCP и настройте постоянный IP.
Ответ написан
Комментировать
@office378
добавить в /etc/sysctl.conf:
net.ipv4.ip_forward=1

затев в консоли сделать:
sysctl -p

iptables не нужен, если у обоих сетей физически один шлюз
Ответ написан
Комментировать
hempy80
@hempy80
Внесистемный администратор
Ох, эксперты понабежали. Попробую объяснить по-чайниковски. Самым простым способом решения вашей задачи это подключить виртуальные машины к сети не используя приватную подсеть за nat, а используя bridge (мост), таким образом сеть с вашими виртуалками становится частью сети 192.168.2.0, а 192.168.5.0 становится не нужна – виртуальным машинам назначаются адреса из основной сети. Более сложный случай, если есть необходимость отделить подсеть с виртуалками (для облегчения понимания лучше абстрагироваться от понятия виртуальная сеть, с точки зрения OSI это обычная подсеть с хостами) от основной сети. Как вы понимаете, для маршрутизации между подсетями должна быть некая сущность, объединяющая две L3 подсети, в вашем случае этой сущностью является ваш маршрутизатор. Короче говоря , на нём выделяется отдельный порт для подсети 192.168.5.0/24, самому порту назначается адрес из этой подсети, например 192.168.5.1, к этому порту должен быть подключен гипервизор, самому гипервизору тоже назначается адрес из этой подсети, шлюзом по умолчанию для него будет 192.168.5.1. Как и в первом случае, виртуальные машины подключается к сети через bridge (мы же помним, фактически, это просто коммутатор), адреса назначаются также из 192.168.5.0, а шлюзом для них также является 192.168.5.1 – то есть гипервизор, виртуальные машины – это всё, с точки зрения сети являются отдельными хостами. После чего все счастливы, трафик между подсетями ходит через маршрутизатор, без странных костылей в виде проброса портов и других нетрадиционных развлечений. Рассмотрим самый сложный случай, гипервизор должен находиться в одной сети (192.168.2.0), а виртуальные машины другой (192.168.5.0). В этом нам поможет технология VLAN. На маршрутизаторе также выделяется порт, но работать он должен в режиме trunk (хитрым способом объединяя внутри одного физического сегмента два или более L2-домена), в общем-то, это всё тот же второй случай, только с настройкой vlan-интерфейсов как на гипервизоре, так и на маршрутизаторе. Как вы понимаете, для второго и третьего случая не подойдет обычный домашний роутер (если, конечно, он не доведен до ума альтернативной прошивкой openwrt).
Как-то так. можно было бы и детальнее подсказать, если укажите модель вашего маршрутизатора и какой гипервизор вы используете.
Ответ написан
@nApoBo3
Внутри kvm вам nat не нужен. Делайте везде внутри route, а nat только наружу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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