anikinator
Contributor
Contributor

Выход гостевых машин через vmnet1 host-only

Jump to solution

Всем доброго дня.

Столкнулся со следующей проблемой.

Имеется хост машина на CentOS 5.5 с eth0 с IP-адресом, который видит мир, а также гостевые машины под управлением vmware-server 2 (гостевые машины 2008R2).

Создал vmnet1 host-only и подключаю гостевые машины через vmnet1.

vmnet1 IP: 10.0.0.1

гостевые машины в подсети 10.0.0.0/8

Далее, с помощью iptables указываю на то, что для сети 10.0.0.0/8 необходимо выполнять трансляцию локальных IP в настоящий.

Правило:

$IPT -t nat -A POSTROUTING -p ALL -s 10.0.0.0/8 -o eth0 -j SNAT --to-source $inet_ip_adress

В iptables разрешено все, все политики ACCEPT.

В итоге:

гостевые машины видят мир только через icmp, работает только ping, tracert.

telnet, dns, http - не работает, не могу выяснить в чем причина.

Может ли это быть связано с какими-то особенностями vmnet1 host-only? В некоторых источниках интернета пишут, что host-only коммутатор предназначен только для работы с изолированной сетью, либо с хостом, но не может работать с внешними ресурсами.

iptables выбран для того, чтобы гибко управлять сервисами на гостевых машинах - выпускать их в мир. На сколько мощный NAT встроенный в vmware, возможно ли обойтись им?

Также на хост-машине имеется второй сетевой интерейс eth1, однако, он не подключен ни к какой из сетей кабелем, указать его в качестве bridg можно, но vmware не поднимает такой сетевой интерейс, он в статусе "отключен".

Не могу сообразить как правильно настроить сеть.

Спасибо.

0 Kudos
1 Solution

Accepted Solutions
FondRGS
Enthusiast
Enthusiast

>iptables выбран для того, чтобы гибко управлять сервисами на гостевых машинах - выпускать их в мир

Сделайте, как я написал - все заработает. А пока вы ничем не управляете. Контролировать можно только в момент перекладывания пакета с одного интерфейса на другой. Остальное - для самоуспокоения.

Ну и iptables-how-to.... Там в конце ваш батник и расписан - только лишнего много.

WBR

View solution in original post

0 Kudos
10 Replies
VTsukanov
Virtuoso
Virtuoso

Судя по описанию - где то промахнулись в настройке CentOS ...

tcpdump & how-to в помощь, но происходящее к vmware adapter-ам никакого отношения.

Что значит "На сколько мощный NAT встроенный в vmware, возможно ли обойтись им?" я не очень понимаю, тогда когда я пользовался VMware server проблем не было, вся требуемая мне функциональность (например проброс портов) там реализованна.

0 Kudos
anikinator
Contributor
Contributor

Решение использовать vmnet1 host-only верное?

0 Kudos
VTsukanov
Virtuoso
Virtuoso

Если в качестве gateway у Windows vm-ок , настроенный CentOS (с одним интерфейсом в host-only, а другим в bridged) - да, должно работать.

Только ключевое слово настроенный, нет там никакой дополнительной мистики


anikinator
Contributor
Contributor

IP адрес vmnet1: 10.0.0.1 - для win машин это gateway

IP eth0 - адрес доступный из мира

eth1 - запущен, но vmware server 2 не работает с ним, т.к. этот интерфейс не подключен ни к каким сетям физическим кабелем. При попытке соединить виртуальную машину с ним мостом - виртуальный адаптер выключается или не поднимается при старте виртуальной машины.

"с одним интерфейсом в host-only, а другим в bridged" - не могли бы пояснить подробнее?

Как я уже говорил, icmp проходят нормально.

0 Kudos
FondRGS
Enthusiast
Enthusiast

Смутная конфигурация....

> Также на хост-машине имеется второй сетевой интерейс eth1, однако, он не подключен ни к какой из сетей кабелем, указать его в качестве bridg можно, но vmware не поднимает такой сетевой интерейс, он в статусе "отключен".

Так воткните его в любой хаб. К нему (eth1) бриджем цепляйте виртуалки и iptables вам в помощь... Все заработает.

WBR, N-ff

P/S/ Только не забудьте, что в iptables ключевое слово для вашего случая FORWARD, а уж потом всякий NAT

P/P/S/ И 10.0.0.1 должен быть у eth1

vmnet1 IP: 10.0.0.1 - вообще не понимаю, как у сети 1 адрес. Или вы что-то другое понимаете под vmnet

0 Kudos
anikinator
Contributor
Contributor

vmnet1 - это виртуальная сеть для гостевых машин и одновременно виртуальный хост адаптер /dev/vmnet1, если посмотреть

#ifconfig vmnet1

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01 
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:664 errors:0 dropped:0 overruns:0 frame:0
          TX packets:288 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Возможно что-то с iptables накрутил - не исключено. Но там сейчас все разрешено и только одно правило для SNAT.

0 Kudos
FondRGS
Enthusiast
Enthusiast

>гостевые машины видят мир только через icmp, работает только ping, tracert.

telnet, dns, http - не работает, не могу выяснить в чем причина.

Настройки по умолчанию : )))

/etc/sysconfig/iptables : )))

Это входящие правила на Ваш eth0... А Вы скажите service iptables stop

И набейте батничек с нужными правилами, только форвардить и построутить нужно с eth0 на eth1 и обратно. Ну и в конце форвардинг включить перенаправлением единички : )

echo "1" > /proc/......../ip_forward

хотя сейчас может как-то по другому поступают. Это ж мы, по старинке...

WBR, N-ff

FondRGS
Enthusiast
Enthusiast

>iptables выбран для того, чтобы гибко управлять сервисами на гостевых машинах - выпускать их в мир

Сделайте, как я написал - все заработает. А пока вы ничем не управляете. Контролировать можно только в момент перекладывания пакета с одного интерфейса на другой. Остальное - для самоуспокоения.

Ну и iptables-how-to.... Там в конце ваш батник и расписан - только лишнего много.

WBR

View solution in original post

0 Kudos
anikinator
Contributor
Contributor

Возможно, я вас запутал.

Конечно, я включил форвардинг echo "1" > /proc/sys/net/ipv4/ip_forward, иначе пинги бы не ходили.

eth1 - не при делах, можно считать, что его нет. Есть только eth0 и vmnet1.

Обчем, помучаю iptables. Если дело в другом, тогда не знаю.

0 Kudos
anikinator
Contributor
Contributor

Эх, ребят, спасибо вам.

Я балбес...

Все дело было в iptables, я не сбросил дефолтные правила iptables.

0 Kudos