LINUX.ORG.RU
ФорумAdmin

OpenVPN и доменные имена


1

1

Привет всем,

Я подключился из дома ко своей корпоративной сети, используя OpenVPN. Дома у меня установлены две операционки. По непонятным мне причинам доменные имена моей рабочей сети не обнаруживаются когда я подключен из под Arch Linux. При обращении напрямую к ip адресам - всё в порядке. Но, подключаясь из под Win7 у меня никаких проблем с доменными именами нет. Те же самые конфиги, но результат разный.

В чём может быть проблема?

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    302    0        0 wlan0
10.10.0.0       0.0.0.0         255.255.255.0   U     0      0        0 tap0
172.16.0.0      10.10.0.1       255.255.0.0     UG    0      0        0 tap0
192.168.1.0     0.0.0.0         255.255.255.0   U     302    0        0 wlan0

OpenVPN после установления соединения какой-нибудь скрипт, перезаписывающий resolv.conf, случайно не дёргает?

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

Неа,

вот конфиг client.conf:

client
tls-client
dev tap
proto udp
remote xxx.ru 1194
resolv-retry infinite
persist-key
persist-tun
tls-client
pkcs12 yyy.p12
ns-cert-type server
tls-auth ta.key 1
comp-lzo
mssfix 1200

дергаю просто:

$ sudo openvpn client.ovpn 
Thu Nov  1 00:04:26 2012 OpenVPN 2.2.2 x86_64-unknown-linux-gnu [SSL] [LZO2] [EPOLL] [eurephia] built on Aug 18 2012
Thu Nov  1 00:04:26 2012 IMPORTANT: OpenVPN's default port number is now 1194, based on an official port number assignment by IANA.  OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Thu Nov  1 00:04:26 2012 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Thu Nov  1 00:04:26 2012 Control Channel Authentication: using 'ta.key' as a OpenVPN static key file
Thu Nov  1 00:04:26 2012 LZO compression initialized
Thu Nov  1 00:04:26 2012 UDPv4 link local (bound): [undef]:1194
Thu Nov  1 00:04:26 2012 UDPv4 link remote: xx.xx.xx.xx:1194
Thu Nov  1 00:04:27 2012 [xxx.ru] Peer Connection Initiated with xx.xx.xx.xx:1194
Thu Nov  1 00:04:29 2012 TUN/TAP device tap0 opened
Thu Nov  1 00:04:29 2012 /usr/sbin/ip link set dev tap0 up mtu 1500
Thu Nov  1 00:04:29 2012 /usr/sbin/ip addr add dev tap0 10.10.0.56/24 broadcast 10.10.0.255
Thu Nov  1 00:04:29 2012 Initialization Sequence Completed

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

да пробовал, такой вариант тоже не проходит:(

anterior
() автор топика

Стоп. А что такое dns вас не учили? Откуда клиент, даже подключенный к сети 172.16.0.0 узнает о том, какие домены есть у вас в сети?

fjfalcon ★★★
()

в конец конфига openvpn.conf

...
script-security 2
up /usr/share/openvpn/update-resolv-conf
down /usr/share/openvpn/update-resolv-conf

cat /usr/share/openvpn/update-resolv-conf

#!/bin/bash
#
# Parses DHCP options from openvpn to update resolv.conf
# To use set as 'up' and 'down' script in your openvpn *.conf:
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
#
# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
# and Chris Hanson
# Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL.
#
# 05/2006 chlauber@bnc.ch
#
# Example envs set from openvpn:
# foreign_option_1='dhcp-option DNS 193.43.27.132'
# foreign_option_2='dhcp-option DNS 193.43.27.133'
# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'

[ -x /usr/sbin/resolvconf ] || exit 0

case $script_type in

up)
   for optionname in ${!foreign_option_*} ; do
      option="${!optionname}"
      echo $option
      part1=$(echo "$option" | cut -d " " -f 1)
      if [ "$part1" == "dhcp-option" ] ; then
         part2=$(echo "$option" | cut -d " " -f 2)
         part3=$(echo "$option" | cut -d " " -f 3)
         if [ "$part2" == "DNS" ] ; then
            IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
         fi
         if [ "$part2" == "DOMAIN" ] ; then
            IF_DNS_SEARCH="$part3"
         fi
      fi
   done
   R=""
   if [ "$IF_DNS_SEARCH" ] ; then
           R="${R}search $IF_DNS_SEARCH
"
   fi
   for NS in $IF_DNS_NAMESERVERS ; do
           R="${R}nameserver $NS
"
   done
   echo -n "$R" | /usr/sbin/resolvconf -a "${dev}.inet"
   ;;
down)
   /usr/sbin/resolvconf -d "${dev}.inet"
   ;;
esac

Нужно установить openresolv и сделать этому скрипту флаг +x.

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