首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确配置IPv6与OpenVPN?

如何正确配置IPv6与OpenVPN?
EN

Server Fault用户
提问于 2017-08-24 21:18:41
回答 2查看 21.7K关注 0票数 8

为了找到适合我需要的OpenVPN配置,我制作了脚本来帮助自己在CentOS系统上安装。我的服务器配置文件实际上如下所示:

代码语言:javascript
运行
复制
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的实际样子:

代码语言:javascript
运行
复制
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)。请告诉我这是否可行,以及如何做到。我真的希望有人能帮我。

提前谢谢。

EN

回答 2

Server Fault用户

发布于 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网络中,还有其他的答案详细介绍了这一点:

请检查这些答案,以获得更彻底的解释。

票数 5
EN

Server Fault用户

发布于 2023-02-01 16:04:14

这个解决方案非常简单(虽然花了6个小时才弄清楚)。手册在这里:分割单个可路由IPv6 6网卡

  1. 删除现有的ipv6: ifconfig eth0 inet6 del 2a04:52c0:101:xxx::x/64
  2. 添加相同的inet6前缀: ifconfig eth0 inet6 Add 2a04:52c0:101:xxx::x/65
  3. 将配置中的行改为: server-ipv6 6 2a04:52c0:101:xxx:8000::/65
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/870354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档