我有两个虚拟机(服务器,客户端)与防火墙VPN。 当我尝试ping从客户端数据包的任何IPv6资源不会返回到客户端。
Tcpdump在enp0s3接口(服务器)中显示ICMP应答数据包,而不是在wg0(服务器上的vpn接口)。 但是,如果禁用nftables并启动ip6tables,一切正常。 经过这一步,我禁用ip6tables和启用nftables …所有继续工作…
软件版本:
NixOS: 17.09.git.ebaff59 (Hummingbird) WireGuard: 0.0.20170706 Nftables: 0.7
使用下一个命令构buildISO映像:
服务器:
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文件:
使用下一个命令创build虚拟机:
服务器:
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路由,路由-6,wg,sysctl -a,dmesg,lsmod。
服务器:
客户:
来自客户端的Tcpdump日志。 Ping 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
您可能缺less需要注册的答复NAT链。
https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)
我正在更新维基,把它放在粗体中。