Крупное обновление FreeBSD прервало соединение vpnc, входящий трафик ESP не выглядит незашифрованным на интерфейсах
Я обновил FreeBSD
коробка от 10.4
в 11.2-RELEASE-p4
недавно, и, кажется, сломал vpnc
VPN-подключение.
Вот vpnc.conf
:
IPSec gateway 10.1.0.1
IPSec ID vpnuser
IPSec secret su0hoh8liNgeiT8
Xauth username vpnuser
Xauth password miuthei3Niew2ee
Nat Traversal Mode none
Noninteractive
После настройки интерфейса; em0 - аппаратный интерфейс с частным IP-адресом, настройте интерфейс vpnc с публичным адресом.
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
inet 10.2.2.1 netmask 0xfffffe00 broadcast 10.2.3.255
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
inet 127.0.0.1 netmask 0xff000000
nd6 options=21
groups: lo
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1412
options=80000<LINKSTATE>
inet x.11.11.60 --> x.11.11.60 netmask 0xffffffff
nd6 options=29
groups: tun
Opened by PID 90343
До сих пор я узнал:
vpnc может установить VPN-соединение, запустив vpnc с
--no-detach
не показывает никаких критических ошибок. Я использую тот же конфиг, что и раньше с предыдущимFreeBSD
версия, где она работала без нареканий. Я также попробовал несколько версийvpnc-scripts
, Я также проверил это с правилами брандмауэра pf, сброшенными сpfctl -F all
,пинги отправленные с локальной машины (
ping 8.8.8.8
) показать вtcpdump -ni tun0
как исходящий трафик:00:58:24.017976 IP x.11.11.60 > 8.8.8.8: ICMP echo request, id 42593, seq 4, length 64
пинги, отправленные с местной машины, показывают в
tcpdump -ni em0
; Интересно, что VPN-пакет, кажется, каждый раз получает правильный ответ, и этот ответ достигает аппаратного интерфейса локальной машины:00:58:24.018029 IP 10.2.2.1 > 10.1.0.1: ESP(spi=0x1bcc60be,seq=0x3c), length 132 00:58:24.078558 IP 10.1.0.1 > 10.2.2.1: ESP(spi=0xe48f7620,seq=0x6b), length 132
однако возвращаемый пакет не отображается в
tcpdump
,ping-пакеты со случайного внешнего (интернет) хоста на x.11.11.60 вызывают аналогичный трафик, который можно увидеть на
em0
но не наtun0
:01:35:32.612015 IP 10.1.0.1 > 10.2.2.1: ESP(spi=0xe48f7620,seq=0x124), length 132
изменения sysctl
ценность net.inet.ip.forwarding
кажется, не имеет никакого эффекта.
VPN (tun0) должен быть маршрутизацией хоста по умолчанию. Основываясь на обнаружении, что пример ping получает ответ до em0
похоже, это не проблема маршрутизации.
Можете ли вы заметить что-то, что мне не хватает? Какие-нибудь идеи, как я мог заставить VPN-соединение работать снова?
ОБНОВЛЕНИЕ - Новые выводы:
Теперь кажется вероятным, что это не vpnc
конкретная проблема. Скорее всего, может быть что-то с обработкой ESP на FreeBSD 11
,
- Я нашел обходной путь к проблеме, которая состоит в том, чтобы просто заставить режим обхода NAT с
--natt-mode force-natt
несмотря на то, что между хостами нет NAT. По какой-то причине нет проблем с инкапсулированным UDP:
Что показывает на em0
...
14:15:18.500251 IP 10.2.2.1.4500 > 10.1.0.1.4500: UDP-encap: ESP(spi=0x66842bb7,seq=0x3), length 132
14:15:18.527137 IP 10.1.0.1.4500 > 10.2.2.1.4500: UDP-encap: ESP(spi=0x3a4661f0,seq=0x3), length 132
... теперь можно увидеть в незашифрованном виде tun0
:
14:15:18.500200 IP x.11.11.60 > 172.217.21.142: ICMP echo request, id 64016, seq 2, length 64
14:15:18.527188 IP 172.217.21.142 > x.11.11.60: ICMP echo reply, id 64016, seq 2, length 64
Я создал отдельное решение с
racoon
используя руководство FreeBSD, и оно показало аналогичное поведение, когда дело доходит до того, что он явно не обрабатывает входящие пакеты ESP. Почему-то теперь я получаю ошибкуvpnc[3372]: esp sendto: Invalid argument
когда я пытаюсь пинговать, еслиvpnc
был начат с--natt-mode none
,Кажется, в IPsec, ESP и NAT-T произошли некоторые изменения в
FreeBSD
11.0R и 11.1R. Может быть, эти изменения что-то мешают сейчас.
Любая помощь по-прежнему ценится.