У меня две виртуальные машины (сервер, клиент) с Wireguard vpn. Когда я пытаюсь пропинговать любой ресурс IPv6 из клиентских пакетов, клиент не возвращается.
Tcpdump показывает мне ответные пакеты ICMP в интерфейсе enp0s3 (сервер), а не в wg0 (интерфейс vpn на сервере). Но если отключить nftables и запустить ip6tables, все работает. После этого шага я отключаю ip6tables и включаю nftables ... Все продолжает работать ...
Версии программного обеспечения:
NixOS: 17.09.git.ebaff59 (Hummingbird)
WireGuard: 0.0.20170706
Nftables: 0.7
Создайте образы ISO с помощью следующих команд:
Сервер:
nix-build -A config.system.build.isoImage -I nixos-config=./wireguard_server_10.nix ./nixpkgs/nixos/default.nix
Клиент:
nix-build -A config.system.build.isoImage -I nixos-config=./wireguard_client_20.nix ./nixpkgs/nixos/default.nix
Вот файлы nix:
Создайте виртуальные машины с помощью следующих команд:
Сервер:
virt-install \
--name NixOSVS10 \
--ram 1024 \
--vcpus 1 \
--cdrom /tmp/nixos_10.iso \
--os-type linux \
--nodisk \
--network bridge=br0 \
--graphics vnc,password="ABCDEF",port=5910,listen=2a01:4f8:xx:xx::13 \
--autostart \
--noautoconsole
Клиент:
virt-install \
--name NixOSVS20 \
--ram 1024 \
--vcpus 1 \
--cdrom /tmp/nixos_20.iso \
--os-type linux \
--nodisk \
--network bridge=br0 \
--graphics vnc,password="ABCDEF",port=5920,listen=2a01:4f8:xx:xx::13 \
--autostart \
--noautoconsole
Правила Nftables:
Сервер:
Клиент:
Вывод для ip a, ip -6 route, route -6, wg, sysctl -a, dmesg, lsmod.
Сервер:
Клиент:
Журналы tcpdump от клиента. Пинг IPv6-адрес 2001: 19f0: 7400: 87a2 :: 64 (https://ipv6.net/)
Вывод из / proc / net / nf_conntrack:
С nftables:
С ip6tables:
Snat некорректно работает в nftables. Но работайте после следующих шагов:
[root@nixos:~]# systemctl stop nftables
[root@nixos:~]# ip6tables -t nat -A POSTROUTING -o enp0s3 -j SNAT --to-source 2a01:4f8:xx:xx::10
Решено. http://marc.info/?l=netfilter-devel&m=150027256708621&w=2
Вероятно, вам не хватает цепочки NAT ответов, которую необходимо зарегистрировать.
https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)
Я сейчас обновляю вики, чтобы выделить это жирным шрифтом.