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

Каковы правильные маршруты для подключения к серверу OpenVPN с мостовым подключением?

Я установил сервер OpenVPN на машине с частным IP-адресом 10.0.0.13. Шлюз имеет адрес 10.0.0.2 и раздает адреса 10.0.0. * Другим машинам в сети. VPN настроен с использованием моста. Мой файл / etc / network / interfaces выглядит так:

# Bring these interfaces up automatically
auto lo br0

# The loopback network interface
iface lo inet loopback

# The bridge connection
iface br0 inet static
    address         10.0.0.13
    bridge_ports    eth0
    bridge_stp      on
    broadcast       10.0.0.255
    gateway         10.0.0.2
    netmask         255.255.255.0
    network         10.0.0.0

# The primary network interface
iface eth0 inet manual
    up ifconfig $IFACE 0.0.0.0 up
    up ip link set $IFACE promisc on
    down ip link set $IFACE promisc off
    down ifconfig $IFACE down

Файл конфигурации сервера (/etc/openvpn/server.conf) выглядит так:

port 1194
proto udp
dev tap0
up "/etc/openvpn/up.sh br0"
down "/etc/openvpn/down.sh br0"
ca ca.crt
cert VPNserver.crt
key VPNserver.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt

server-bridge 10.0.0.13 255.255.255.0 10.0.0.200 10.0.0.219
push "route 10.0.0.2 255.255.255.0"

push "redirect-gateway def1 bypass-dhcp"
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
max-clients 20
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log-append  /var/log/openvpn.log
verb 3
crl-verify crl.pem

Я думаю, что серверный мост и строка под ним, возможно, нуждаются в настройке. Должен ли OpenVPN создавать подсеть для себя и для подключения клиентов? Сначала у меня создалось впечатление, что я могу просто заставить OpenVPN назначать IP-адреса в той же подсети, если они находятся за пределами диапазона DHCP маршрутизатора; сейчас я не так уверен.

В любом случае, вот симптомы текущего конфига. Клиентский компьютер (который находится в сети 10.6.0.0 - вы увидите это в следующих результатах) может подключиться, но только IP-адрес сервера OpenVPN доступен для проверки связи, и я не могу просматривать веб-страницы. Я подключаюсь из Linux CLI; вот некоторые из полученных результатов, которые заставляют меня думать, что проблема заключается в маршрутизации. Я выделил вывод, который мне кажется актуальным.

Fri Jun  3 12:54:51 2011 [VPNserver] Peer Connection Initiated with [AF_INET]SERVER.PUBLIC.IP.ADDRESS:1194  
Fri Jun  3 12:54:53 2011 SENT CONTROL [VPNserver]: 'PUSH_REQUEST' (status=1)  
Fri Jun  3 12:54:53 2011 PUSH: Received control message: 'PUSH_REPLY,route 10.0.0.2 255.255.255.0,redirect-gateway def1 bypass-dhcp,route-gateway 10.0.0.13,ping 10,ping-restart 120,ifconfig 10.0.0.201 255.255.255.0'  
Fri Jun  3 12:54:53 2011 OPTIONS IMPORT: timers and/or timeouts modified  
Fri Jun  3 12:54:53 2011 OPTIONS IMPORT: --ifconfig/up options modified  
Fri Jun  3 12:54:53 2011 OPTIONS IMPORT: route options modified  
Fri Jun  3 12:54:53 2011 OPTIONS IMPORT: route-related options modified  
Fri Jun  3 12:54:53 2011 ROUTE default_gateway=10.6.0.1  
Fri Jun  3 12:54:53 2011 TUN/TAP device tap0 opened  
Fri Jun  3 12:54:53 2011 TUN/TAP TX queue length set to 100  
Fri Jun  3 12:54:53 2011 /sbin/ifconfig tap0 10.0.0.201 netmask 255.255.255.0 mtu 1500 broadcast 10.0.0.255  
Fri Jun  3 12:54:53 2011 /sbin/route add -net SERVER.PUBLIC.IP.ADDRESS netmask 255.255.255.255 gw 10.6.0.1  
**SIOCADDRT: File exists  
Fri Jun  3 12:54:53 2011 ERROR: Linux route add command failed: external program exited with error status: 7**  
Fri Jun  3 12:54:53 2011 /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.0.0.13  
Fri Jun  3 12:54:53 2011 /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.0.0.13  
**Fri Jun  3 12:54:53 2011 /sbin/route add -net 10.0.0.2 netmask 255.255.255.0 gw 10.0.0.13
route: netmask doesn't match route address**  
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables  
   route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.  

   route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.  
   route {-V|--version}                  Display version/author and exit.  

  -v, --verbose            be verbose  
  -n, --numeric            don't resolve names  
  -e, --extend             display other/more information  
  -F, --fib                display Forwarding Information Base (default)  
  -C, --cache              display routing cache instead of FIB  

  <AF>=Use '-A <af>' or '--<af>'; default: inet  
  List of possible address families (which support routing):  
   inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)  
   netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)  
   x25 (CCITT X.25)  
**Fri Jun  3 12:54:53 2011 ERROR: Linux route add command failed: external program exited with error status: 4**  
Fri Jun  3 12:54:53 2011 GID set to nogroup  
Fri Jun  3 12:54:53 2011 UID set to nobody  
Fri Jun  3 12:54:53 2011 Initialization Sequence Completed  

Итак, я думаю, я ищу:

  1. Уберите эти ошибки
  2. Иметь доступ к машинам, отличным от сервера OpenVPN, в сети 10.0.0.0
  3. Направляйте весь трафик (просмотр веб-страниц и т. Д.) Через VPN

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

Хорошо, технически @Zoredache верен. Мой вопрос был: «Каковы правильные маршруты для подключения сервера OpenVPN с мостовым подключением?» и я не должен давить route 10.0.0.2 255.255.255.0 (что, вероятно, должно быть route 10.0.0.0 255.255.255.0 тем не мение). Удаление этой строки решило первую часть моей проблемы.

Вторая часть моей проблемы (невозможность пинговать другие машины в сети 10.0.0.0) была связана с деталью, о которой я не упомянул, а именно с тем, что этот сервер находится на виртуальной машине VMWare. Благодаря это сообщение в блоге, Я обнаружил, что «виртуальный коммутатор ESXi по умолчанию отбрасывает беспорядочные пакеты», и узнал, как настроить виртуальную машину, чтобы этого не делать.

Мне не удалось достичь третьей цели - маршрутизации всего трафика через VPN, но я решил, что это не критично для данного конкретного развертывания. Комментарии в конфигурации по умолчанию предполагают, что, раскомментировав push "redirect-gateway def1 bypass-dhcp" Я бы «настроил всех клиентов для перенаправления их сетевого шлюза по умолчанию через VPN, заставляя весь IP-трафик, такой как просмотр веб-страниц и поиск DNS, проходить через VPN», но когда я раскомментировал это, я не смог выйти за пределы сети на все.

При использовании маршрутизируемого openvpn интерфейс подразумевается. Однако при использовании мостового openvpn вы больше не можете предполагать, что что-то подразумевается. Должна быть возможность сообщить, через какой IP-адрес проходит маршрут. Как (командная строка linux): ip ro add 8.0.0.0/8 через 1.2.3.4.