Назад | Перейти на главную страницу

Доступ к гостям в виртуальной сети при подключении к хосту через PPTP

Я настраиваю машину разработки, на которой работает Ubuntu 12.04 и KVM для виртуализации. У меня есть гость, работающая под управлением Ubuntu 12.04, к которой можно получить доступ с хоста через его IP-адрес, назначенный libvirt. Гость также может получить доступ в Интернет, без проблем.

Однако теперь я хочу настроить PPTP, чтобы я мог подключиться к хосту (с моей рабочей станции под управлением Windows 7) и получить прямой доступ к гостям, не полагаясь на переадресацию портов SSH.

Я могу подключиться со своей W7-машины к хосту (PPTP), но я не могу получить доступ к каким-либо виртуальным машинам (которые доступны напрямую с хоста).

Соответствующие файлы конфигурации

cat /etc/network/interfaces

auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   x.x.x.x
  broadcast x.x.x.x
  netmask   x.x.x.x
  gateway   x.x.x.x

# default route to access subnet
up route add -net x.x.x.x netmask x.x.x.x gw x.x.x.x eth0

virsh net-edit default

<network>
  <name>default</name>
  <uuid>xxxxxxxx-72ce-3c20-af0f-d3a010f1bef0</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:xx:xx:xx'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
      <host mac='52:54:00:yy:yy:yy' name='web1' ip='192.168.122.11' />
    </dhcp>
  </ip>
</network>

cat /etc/pptpd.conf (прокомментированные строки удалены)

# TAG: option
#   Specifies the location of the PPP options file.
#   By default PPP looks in '/etc/ppp/options'
#
option /etc/ppp/pptpd-options

# TAG: logwtmp
#   Use wtmp(5) to record client connections and disconnections.
#
logwtmp

#(Recommended)
localip 192.168.122.1
remoteip 192.168.122.234-238,192.168.122.245

cat /etc/ppp/chap-secrets*

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
xxxxx       *       yyyyyyyyyy              192.168.122.100

Я получаю правильный IP-адрес при подключении моей W7-машины, но когда я пытаюсь ping виртуальная машина по адресу 192.168.122.11 я получаю

Reply from 192.168.122.1: Destination port unreachable.

Вероятно, мне не хватает чего-то тривиального, но я не могу понять, что это такое. Я обращаюсь к вам, serverfault.

Я считаю, что вам нужно настроить виртуальный интерфейс, который направит вас в сеть вашего сервера. Я заставил это работать один раз в OpenVPN, но настройка PPTP должна быть аналогичной.

Вот как я нашел то, что вам нужно:

http://pptpclient.sourceforge.net/routing.phtml#client-to-lan

После подключения к VPN просто добавьте маршрут на своем компьютере с Windows через cmd

Например. Пуск> запустить> cmd.exe

route ADD 192.168.122.0 MASK 255.255.255.0  192.168.122.100 METRIC 0 
       destination^     ^mask                ^gateway   metric^    ^

Просто установите нужные параметры.

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

Например.

iptables -t nat -I POSTROUTING -o ppp+ -s 192.168.122.0/24 -j MASQUERADE

И если вы тоже хотите получить доступ к Интернету через него (например, используя удаленный шлюз)

iptables -t nat -I POSTROUTING -o eth+ -s 192.168.122.0/24 -j MASQUERADE

OpenVPN

OpenVPN имеет приятную функцию, в которой хост может От себя направляет к клиенту, но принцип тот же. Если вы хотите пойти по этому пути, я написал здесь хорошее руководство, https://serverfault.com/a/403016/113375