为了找到适合我需要的OpenVPN配置,我制作了这脚本来帮助自己在CentOS系统上安装。我的服务器配置文件实际上如下所示:
port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4
它实际上工作得很完美,但是当我租了一个服务器@ liteserver.nl,他们给了我一个/64子网,我试图配置OpenVPN服务器,给每个客户端一个IPv6地址,以便用一个专用IP访问互联网。因此,我按照这页面上的说明来设置IPv6以供内部使用。该页面包含对具有公共IPv6 (2001:Db8:0:abc:100/64)的服务器和路由IPv6子网(我认为这可能是liteserver.nl给我的子网)的说明,即2001年:Db8:0:123::/64。在不注意示例地址差异的情况下,我为服务器配置了一个公共IPv6 (2A04:52c0:101:xxx:100/64),并向OpenVPN客户端提供了他们给我的整个子网(2A04:52c0:101:101:xxx://64),下面是我的server.conf的实际样子:
port 1194
proto udp
dev tun
user nobody
group nobody
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 10.8.0.1"
push "dhcp-options DNS 2a04:52c0:101:xxx::1"
push "redirect-gateway def1 bypass-dhcp"
crl-verify crl.pem
ca ca.crt
cert server.crt
key server.key
tls-auth tls-auth.key 0
dh dh4096.pem
auth SHA256
cipher AES-256-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
status openvpn.log
verb 4
server-ipv6 2a04:52c0:101:xxx::/64
tun-ipv6
push tun-ipv6
ifconfig-ipv6 2a04:52c0:101:xxx::1 2a04:52c0:101:xxx::2
push "route-ipv6 2a04:52c0:101:xxx::/64"
push "route-ipv6 2000::/3"
因此,当IPv4连接工作正常时,IPv6是正确分配的,但我不能使用IPv6 (根据test-ipv6.com )访问互联网,我在问自己是否需要两个/64子网(一个用于专用OpenVPN网络,一个用于VPN服务器本身,因此用于传出连接)来正确地配置这个子网,或者如果我错过了something...anyway,我想要得到的是一个具有私有IPv4和IPv6连接的VPN服务器,以及一个公共IPv4和一个或多个IPv6地址(Es)。请告诉我这是否可行,以及如何做到。我真的希望有人能帮我。
提前谢谢。
发布于 2017-08-26 10:31:47
我认为您需要将NDP请求代理到公共IPv6地址。我没有亲自测试过,但这是理论:
您的ISP将向您的服务器发送整个IPv6网络(2a04:52c0:101:xxx::/64)的流量。这意味着,当Internet上的某个人试图连接到该网络内的IP地址时,流量将被发送到您的服务器,希望它知道如何处理它。
您的服务器在该网络中有一个地址(2A04:52c0:101:xxx:100)。当它接收到另一个地址的流量时,它会忽略它,因为它不是一个它可以识别的地址。因此,从OpenVPN分配的网络中获取IP地址的设备的通信量在服务器上停止运行。
为了让您的服务器意识到它必须获得该流量并通过OpenVPN将其“向下”发送,您有两个选项:为您的OpenVPN客户端使用不同的IPv6网络(所以是传统的路由工作),或者将流量代理到当前网络。第一种是最好的选择,但您的ISP可能不会为您分配多个/64;后者是NDP代理,类似于IPv4中的ARP代理。
使用NDP代理,您的服务器将获得非自己地址的通信量,并将其重新发送给通过OpenVPN连接的具有相同IP地址的客户端。您必须对网络中属于OpenVPN客户端的每个IP地址执行此操作。
在StackExchange网络中,还有其他的答案详细介绍了这一点:
请检查这些答案,以获得更彻底的解释。
发布于 2023-02-01 16:04:14
这个解决方案非常简单(虽然花了6个小时才弄清楚)。手册在这里:分割单个可路由IPv6 6网卡
https://serverfault.com/questions/870354
复制相似问题