LINUX.ORG.RU

Конфигурация виртуальной машины.

 ,


0

1

Всем доброго времени суток. Господа формучане, прошу вашей помощи. Имеется VMWARE WORKSTATION 12, на ней стоят 3 виртуалки(1, 2, 3), на всех стоит Ubuntu 16.04. Как мне так настроить их сетевое взаимодействие, что бы я мог пингануть с машины 1 машину 3 через машину 2? Благодарю за любую помощь =)

Уточнение: для них должен быть доступна внешняя сеть? Если да, а хост получает интернет по DHCP, то проще всего тупо перевести всех в бридж. Ещё есть вариант, когда одна за NAT, а остальные во внутренней виртуальной сети получают интернет от неё.

Если не нужен доступ во внешнюю сеть, то внутренняя виртуальная сеть.

Вообще, вариантов много.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Доступ в Интернет для виртуалок не принципиален, главное это именно их взаимодействие между собой. Распиши, пожалуйста, подробнее самый простой вариант реализации.

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

В конфигурации сетевого интерфейса в параметрах виртуальной машины можно выбрать три состояния:

  • Bridged Networking - виртуалки подключены напрямую к внешней сети;
  • Network Address Translation (NAT) - виртуалки находятся за шлюзом и внешняя сеть их «не видит», но они имеют доступ к внешней сети через шлюз;
  • Host-Only Networking - виртуалки во внутренней виртуальной сети, доступа к внешней сети не имеют;

Выбери на всех троих одну одинаковую из представленных вариантов сети.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от Aberforth

Неправильно написал, не дочитал вопрос.

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

На машине 1 прописать:

ip r a IP_HOST3 via IP_HOST2
А на машине 3 прописать:
ip r a IP_HOST1 via IP_HOST2

На машине 2 прописать:

echo 1 > /proc/sys/net/ipv4/ip_forward

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Попробовал. Не работает. На всех машинах поставил сетевой режим Bridged Networking. Через ifconfig узнал адреса 1: 192.168.0.104, 2: 192.168.0.105, 3:192.168.0.106. Напрямую они пингуются. На машине 1 пишу: «sudo ip r a 192.168.0.106 via 192.186.0.105», получаю ответ: «RTNETLINK answers: Network is unreachable». На машине 2 прописываю «sudo echo 1 > /proc/sys/net/ipv4/ip_forward», ответ: «bash: /proc/sys/net/ipv4/ip_forward: Permission denied ». Все машины были включены в тот момент, что можно с этим сделать?

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

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

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

Попробуй так:

sudo -i
echo 1 > ....
И на всех машинах перед вызовом команд сделай sudo -i, а потом вводи команды без sudo.

Проверил, через sudo echo 1 > ... не работает.

Нужно в начале получить права root полноценно, например через sudo -i, а потом писать echo 1 > /proc/..., делай так же со всеми остальными командами.

Т.е. не sudo ip r ..., а sudo -i, а затем просто ip r ... .

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 3)
Ответ на: комментарий от kostik87

Большое спасибо! Все заработало =) И последний блок вопросов. Теперь я собираюсь усложнить маршрутизацию. Машина 2 пингует машину 1 через 3. Машина 3 пингует машину 2 через 1. В данном случае мне нужно выполнить те же команды(с учетом адресации)? И самый самый последний вопрос, как мне разнести эти машины в разные подсети?

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

Машина 2 пингует машину 1 через 3. Машина 3 пингует машину 2 через 1.

Не знаю, будет ли так работать, может быть кольцо. Но наверное будет работать. Проверь сам.

В данном случае мне нужно выполнить те же команды(с учетом адресации)?

Да.

И самый самый последний вопрос, как мне разнести эти машины в разные подсети?

Нужно изменить маску сети.

К примеру сеть 191.168.0.0/24 можно разделить на несколько подсетей, скажем с маской /27.

Адрес сети: 192.168.0.0/27
Диапазон адресов: 192.168.0.1 - 192.168.0.30

Адрес сети: 192.168.0.32/27
Диапазон адресов: 192.168.0.33 - 192.168.0.63

Адрес сети: 192.168.0.64/27 
Диапазон адресов: 192.168.0.65 - 192.168.0.94

Или ты имеешь ввиду разные сети, т.е.: 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24 такие адреса?

В любом случае просто выставляй соответствующие адреса на сетевых интерфейсах.

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

Назначение ещё одного ip адреса на интерфейс:

ip addr add IP_ADDRESS/MASK dev INTERFACE
За подробностями: https://wiki.gentoo.org/wiki/Iproute2

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)
Ответ на: комментарий от kostik87

Модифицировать маршрутизацию не удалось. К примеру для реализации правила «Машина 2 пингует машину 1 через 3» на машине 3 использовал «echo 1 > /proc/sys/net/ipv4/ip_forward», на машине 2 прописал «ip r a IP_HOST1 via IP_HOST3», и на первой машине «ip r a IP_HOST2 via IP_HOST3». В итоге все три машины больше не могут связаться друг с другом, никак. Буду разбираться дальше. Еще раз спасибо за ответы, они были очень полезны и дали фундамент от которого можно отталкиваться в поисках решения. =)

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

В итоге все три машины больше не могут связаться друг с другом, никак.

Скорее всего, получилось кольцо.

с машины 1 машину 3 через машину 2
Машина 2 пингует машину 1 через 3. Машина 3 пингует машину 2 через 1.

Удачи.

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

Разобрался как настроить маршрутизацию. На примере 1-го правила: 1->2->3. На первой машине пишем «ip r a IP_HOST3 via IP_HOST2», на второй «echo 1 > /proc/sys/net/ipv4/ip_forward», а на третьей ничего прописывать не надо, в остальных правилах аналогично. Тогда все будет работать.

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

Зачем на винде, тем более на десятке, линуксы?

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