Я использую безголовый сервер Ubuntu 14.04.1 LTS . До того, как я включил маршрутизацию, мой AirPort Extreme был маршрутизатором. На тот момент DNS не было проблемой. С тех пор, как я прекратил использовать AirPort Extreme, а безголовый сервер Ubuntu 14.04.1 LTS стал маршрутизатором, DNS не работал при подключении OpenVPN. Так что, повторюсь , проблема в том, что ping 173.194.219.139 работает, но ping google.com не работает.

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

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Bridge setup
auto br0 em1
iface br0 inet dhcp
bridge_ports em1

auto br1 em2 veth0
iface br1 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.255.255.0
broadcast 10.0.0.255
bridge_ports em2 veth0

# pre and post up
pre-up ip link add name veth0 type veth peer name veth1
pre-up ip netns add vpn
pre-up ip link set veth1 netns vpn
post-up ip netns exec vpn ip link set dev lo up
post-up ip netns exec vpn ip link set dev veth1 up
post-up ip netns exec vpn ip addr add 10.0.0.254/24 broadcast 10.0.0.255 dev veth1
post-up ip netns exec vpn ip route add default via 10.0.0.1


iptables

*nat
-A POSTROUTING -o "$EXTIF" -j MASQUERADE
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# ALLOW COMMUNICATION WITH NETNS VPN
-A FORWARD -o "$INTIF" -j ACCEPT
# ALLOW STATES RELATED,ESTABLISHED
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# LOOPBACK
-A INPUT -i lo -j ACCEPT
# ICMP
-A INPUT -i "$INTIF" -p icmp -j ACCEPT
# DNS
-A INPUT -i "$INTIF" -p tcp --dport 53 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 53 -j ACCEPT
# DHCP
-A INPUT -i "$INTIF" -p udp --dport 67 -j ACCEPT
# PLEX
-A INPUT -p tcp --dport 32400 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 1900 -j ACCEPT
-A INPUT -i "$INTIF" -p tcp --dport 3005 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 5353 -j ACCEPT
-A INPUT -i "$INTIF" -p tcp --dport 8324 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 32410 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 32412 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 32413 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 32414 -j ACCEPT
-A INPUT -i "$INTIF" -p tcp --dport 32469 -j ACCEPT
# SSH
-A INPUT -i "$INTIF" -p tcp --dport 22 -j ACCEPT
# TRANSMISSION
-A INPUT -p tcp --dport 59156 -j ACCEPT
-A INPUT -i "$INTIF" -p tcp --dport 9091 -j ACCEPT
# HTTP(S)
-A INPUT -i "$INTIF" -p tcp --dport 80 -j ACCEPT
# SAMBA
-A INPUT -i "$INTIF" -p tcp --dport 139 -j ACCEPT
-A INPUT -i "$INTIF" -p tcp --dport 445 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 137 -j ACCEPT
-A INPUT -i "$INTIF" -p udp --dport 138 -j ACCEPT
# FACETIME & IMESSAGE
-A INPUT -p tcp --dport 80 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p udp --dport 3478 -j ACCEPT
-A INPUT -p udp --dport 3497 -j ACCEPT
-A INPUT -p tcp --dport 5223 -j ACCEPT
-A INPUT -p udp --dport 16384 -j ACCEPT
-A INPUT -p udp --dport 16387 -j ACCEPT
-A INPUT -p udp --dport 16393 -j ACCEPT
-A INPUT -p udp --dport 16402 -j ACCEPT
# ROUTING
-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
-A FORWARD -j LOG
COMMIT


/etc/openvpn/US-California.conf

client
dev tun
proto udp
remote us-california.privateinternetaccess.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass login
comp-lzo
verb 1
reneg-sec 0
crl-verify crl.pem

2 ответа2

1

Разрешение DNS не работает, потому что вы забыли добавить правильный /etc/resolv.conf в ваше пространство имен сети. Здесь есть две особенности.

Во-первых, это делается вне команд iproute2 .

        mkdir -p /etc/netns/nns
        echo "nameserver 8.8.8.8" > /etc/netns/nns/resolv.conf
        echo "nameserver 8.8.4.4" >> /etc/netns/nns/resolv.conf

Измените nns на имя вашего сетевого пространства имен.

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

Вы можете легко добавить вышеупомянутые команды в раздел pre-up раздела br1 в /etc /network /interfaces, а также для команд, удаляющих файл, в раздел post-down.

Также легко понять, почему DNS не работает в вашей системе: вы используете Ubuntu, который для DNS использует dnsmasq, работающий на интерфейсе lo , по адресу 127.0.1.1 (просто посмотрите в /etc/resolv.conf), чтобы ваши DNS-запросы поступают на интерфейс lo, они перехватываются вашим экземпляром dnsmasq, который берет на себя решение DNS-запросов. Поскольку вы не изменили /etc/resolv.conf, вы по-прежнему используете хост, который ссылается на lo: но в lo в сетевом пространстве имен vpn нет экземпляра dnsmasq, который прослушивает DNS-запросы.

0

Похоже, что ваш /etc/openvpn/server.conf имеет push- запрос push "dhcp-option DNS" указывающий на AirPort Extreme. Попробуйте обновить эту настройку и снова проверьте свой VPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .