Я настроил VPN согласноэтотинструкция (у меня Linux), все нормально, соединение устанавливается, IP-адрес меняется с моего на USA, но ресурсы, которые должны быть доступны по VPN, по-прежнему недоступны.
Настраивал то же самое подключение по той же инструкции, но только для Windows 10 - все работает и ресурсы доступны. На Linux трафик к этим ресурсам не идет через VPN сервер, но я так и не смог разобраться как это исправить, т.к. я в этом не силен. Информация о моей системе:
$ cat /etc/*release
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux
Я предполагаю, что трафик обходит VPN-сервер и проходит через шлюз по умолчанию.
Вот что показывает nslookup
$nslookup confluence.internal.mycompany.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Я думаю, имеет смысл попробоватьМаршрутизация, но я не силен в сетевом администрировании и не знаю, как определить правильный подмножественный адрес. Например, aaa.internal.mycompany.com, bbb.internal.mycompany.com, ccc.internal.mycompany.com и т. д. Я хочу направить трафик на aaa,bbb,ccc через VPN, как это сделать?
Вот также информация tcpdump, которая может быть полезна:
13:57:39.163855 IP 172.16.203.173.41032 > 8.8.8.8.53: 44676+ A? confluence.internal.mycompnay.com. (50)
00:06:11.353064 IP 172.16.203.173.39547 > 8.8.4.4.53: 13730+ A? confluence.internal.mycompany.com. (50)
00:06:11.484299 IP 172.217.1.46.443 > 172.16.203.173.35770: Flags [P.], seq 1:40, ack 39, win 269, options [nop,nop,TS val 1580986377 ecr 1105408237], length 39
00:06:11.484400 IP 172.16.203.173.35770 > 172.217.1.46.443: Flags [.], ack 40, win 502, options [nop,nop,TS val 1105408387 ecr 1580986377], length 0
00:06:11.525396 IP 8.8.4.4.53 > 172.16.203.173.39547: 13730 NXDomain 0/1/0 (113)
00:06:11.525562 IP 172.16.203.173.39547 > 8.8.4.4.53: 32697+ AAAA? confluence.internal.mycompany.com. (50)
00:06:11.697698 IP 8.8.4.4.53 > 172.16.203.173.39547: 32697 NXDomain 0/1/0 (113)
00:06:11.698212 IP 172.16.203.173.48215 > 8.8.8.8.53: 13821+ A? confluence.internal.mycompany.com. (50)
00:06:11.698276 IP 172.16.203.173.48215 > 8.8.8.8.53: 19952+ AAAA? confluence.internal.mycompany.com. (50)
00:06:11.859694 IP 8.8.8.8.53 > 172.16.203.173.48215: 13821 NXDomain 0/1/0 (113)
00:06:11.872141 IP 8.8.8.8.53 > 172.16.203.173.48215: 19952 NXDomain 0/1/0 (113)
00:06:11.873004 IP 172.16.203.173.49336 > 8.8.8.8.53: 36616+ A? confluence.internal.mycompany.com. (50)
00:06:12.034300 IP 8.8.8.8.53 > 172.16.203.173.49336: 36616 NXDomain 0/1/0 (113)
00:06:12.034472 IP 172.16.203.173.49336 > 8.8.8.8.53: 34317+ AAAA? confluence.internal.mycompany.com. (50)
00:06:12.195798 IP 172.16.203.173.33819 > 8.8.8.8.53: 61396+ A? translate.google.com. (38)
00:06:12.197393 IP 172.16.203.173.49098 > 216.58.192.206.443: Flags [P.], seq 2343637690:2343638004, ack 443265426, win 11148, options [nop,nop,TS val 2103047503 ecr 1587334695], length 314
00:06:12.209082 IP 8.8.8.8.53 > 172.16.203.173.49336: 34317 NXDomain 0/1/0 (113)
00:06:12.209542 IP 172.16.203.173.54539 > 8.8.8.8.53: 62574+ A? confluence.internal.mycompany.com. (50)
00:06:12.209658 IP 172.16.203.173.54539 > 8.8.8.8.53: 56421+ AAAA? confluence.internal.mycompany.com. (50)
00:06:12.334328 IP 172.16.203.173.56738 > 172.217.6.2.443: Flags [P.], seq 1835541891:1835541930, ack 3334813663, win 502, options [nop,nop,TS val 324800469 ecr 1444482233], length 39
00:06:12.334456 IP 172.16.203.173.56978 > 216.58.192.130.443: Flags [P.], seq 712232265:712232304, ack 2284899148, win 502, options [nop,nop,TS val 1560658341 ecr 3970133710], length 39
00:06:12.334525 IP 172.16.203.173.56994 > 172.217.4.37.443: Flags [P.], seq 175676537:175676576, ack 336787689, win 24353, options [nop,nop,TS val 525175697 ecr 3037756038], length 39
00:06:12.334592 IP 172.16.203.173.45234 > 172.217.8.195.443: Flags [P.], seq 840900759:840900798, ack 624615808, win 1323, options [nop,nop,TS val 2439520764 ecr 528658266], length 39
00:06:12.348814 IP 216.58.192.206.443 > 172.16.203.173.49098: Flags [.], ack 314, win 1050, options [nop,nop,TS val 1587377915 ecr 2103047503], length 0
00:06:12.358256 IP 8.8.8.8.53 > 172.16.203.173.33819: 61396 2/0/0 CNAME www3.l.google.com., A 216.58.192.206 (75)
00:06:12.358483 IP 172.16.203.173.39682 > 8.8.8.8.53: 10206+ AAAA? translate.google.com. (38)
00:06:12.370884 IP 8.8.8.8.53 > 172.16.203.173.54539: 56421 NXDomain 0/1/0 (113)
00:06:12.382054 IP 8.8.8.8.53 > 172.16.203.173.54539: 62574 NXDomain 0/1/0 (113)
Я прав, что это не правильно? Трафик не должен идти через DNS гугла, верно?
Вот что netstat -r
с выключенным vpn:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp2s0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
с включенным vpn:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 500 0 0 ppp0
0.0.0.0 192.168.0.1 0.0.0.0 UG 600 0 0 wlp2s0
192.0.2.1 0.0.0.0 255.255.255.255 UH 500 0 0 ppp0
192.168.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
192.168.0.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp2s0
208.100.17.99 192.168.0.1 255.255.255.255 UGH 600 0 0 wlp2s0
Я пыталсяэтотно не удалось: я потерял подключение к интернету
Вот мои настройки VPN в сетевом менеджере:
Как мне устранить неполадки?
решение1
Я хочу направить трафик на aaa,bbb,ccc через VPN. Как это сделать?
Я предполагаю, что это локальные адреса (как вы утверждаете в заголовке), например 192.168.0.2
. Пакеты на этот адрес не проходят через туннельный интерфейс, потому что у вас есть более конкретный маршрут, чем маршрут по умолчанию, указывающий на wlp2s0
:
192.168.0.1 0.0.0.0 255.255.255.255 UH 600 0 0 wlp2s0
При статической маршрутизации более конкретные маршруты всегда «выигрывают». Чтобы решить эту проблему, можно сделать следующее:
- Удалить текущий маршрут с помощью
ip route delete 192.168.0.1
- Добавьте новый маршрут к этому префиксу (который адресует хосты aaa,bbb,cc) с интерфейсом (
dev
), указывающим на интерфейс туннеля. Например:ip route add 192.168.0.1/24 via $IP_OF_TUNNELGATEWAY dev ppp0
решение2
Наконец, я решил свою проблему. Это долгая история. Основная причина — неправильная конфигурация DNS, в результате которой внутренние (за VPN-сервером) адреса не могли быть правильно разрешены. Предположение, почему это произошло, следующее. Каждый раз, когда я подключаюсь к VPN, происходит следующая цепочка событий:
-> сетевой менеджер
->strongswanппп0
-> dhclient ppp0 (172.16.203.173, 192.0.2.1, dns1=xyz11, dns2=xyz12) -> resolvconf
ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc fq_codel state UNKNOWN group default qlen 3 link/ppp inet 172.16.203.173 peer 192.0.2.1/32 scope global ppp0 valid_lft forever preferred_lft forever
-> dns1=xyz11, dns2=xyz12 в /etc/resolv.conf
DNS-адреса были взяты из конфигурации VPN-подключения (см. скриншот выше).
Новый маршрут
default via ppp0 metric 500
был добавлен в таблицу маршрутизации. Его приоритет меньше приоритета по умолчанию enp3s0,0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp3s0
в результате чего трафик не проходит через ppp0.первая проблема/etc/resolv.conf, содержащий dns1 и dns2, в какой-то момент времени переопределяется сетевым менеджером на DNS-серверы Google по умолчанию 8.8.8.8 и 8.8.4.4.второй выпуск
Чтобы исправить вторую проблему, я установилdnsmasqкоторый служит прокси и обрабатывает dns самостоятельно. Мне пришлось удалить, pacman -R openresolv netctl
который изменился /etc/resolv.conf
и не содержит единственный адрес dnsmasq:
# Generated by NetworkManager
search internal.mycompany.com
nameserver 127.0.0.1
options edns0 trust-ad
чтобы указать сетевому менеджеру использовать dnsmarq, я также добавил эту строку в /etc/NetworkManager/conf.d/dns.conf
:
[main]
dns=dnsmasq
Чтобы исправить первую проблему в NetworkManager, я добавил более конкретный маршрут, имеющий более высокий приоритет, чем маршрут enp3s0 по умолчанию:
10.Y.X.Z 192.0.2.1 255.255.255.255 UGH 500 0 0 ppp0
Вот и все. Весь трафик к внутренним ресурсам идет через VPN, остальной трафик идет как и прежде.
Также я запретил любую перезапись /etc/resolve.conf
chattr +i /etc/resolv.conf ((to protect the file from write))
chattr -i /etc/resolv.conf ((для снятия защиты, режим по умолчанию)) - для отката
Надеюсь, это будет кому-то полезно.