在这种情况下,是否可以让两个 IPv6 网络通过 IPv4 互联网进行通信?

在这种情况下,是否可以让两个 IPv6 网络通过 IPv4 互联网进行通信?

我设置了一台连接到蜂窝 IPv4 网络(3G USB 加密狗)的笔记本电脑和连接到另一个 IPv4/IPv6 网络的 PC。两台电脑都已配置为作为 IPv6 路由器运行,并且各自都有自己的 IPv6 网络。

笔记本电脑通过 3G 网络连接到互联网,其中一个接口使用 IPv4 地址(私有地址,并且经常变化),另一个接口处于 AP 模式,提供自己的私有 IPv6 网络 (2001:db8:444::/64)。PC 通过组织网络连接到互联网,其中一个接口使用公共 IPv4 和 IPv6 地址,另一个接口处于 AP 模式,提供自己的私有 IPv6 网络 (2001:db8:222::/64)。两者均运行 Linux Ubuntu。

是否可以让两个 IPv6 网络(2001:db8:222::/64 和 2001:db8:444::/64)通过 IPv4 互联网进行通信?

在这种情况下,openvpn 是否有助于通过 IPv4-IPv4 隧道获取 IPv6 流量?

提前感谢帮助

答案1

最容易方法是通过 IPv4 设置 VPN – 例如“tap”(L2)模式的 OpenVPN。

  • 在站点 1(组织):

    # /etc/openvpn/<site2>.conf
    端口 22
    漂浮
    
    秘密 /etc/private/openvpn-<站点1>-<站点2>.key
    dev tap-<site2>
    路由 /etc/openvpn/<site2>-configure.sh
    脚本安全 2
    
    # /etc/openvpn/<站点2>.sh
    ip 链路设置 $dev up
    ip 地址添加 2001:db8:111::1/64 dev $dev
    ip 路由添加 2001:db8:222::/64 dev $dev
    (可选) ip route add ::/0 dev $dev
    
  • 在站点 2(笔记本电脑)上,实际上相同:

    # /etc/openvpn/<site1>.conf
    远程 <site1>-server.example.com 22
    不绑定
    
    秘密 /etc/private/openvpn-<站点1>-<站点2>.key
    dev tap-<site1>
    路由 /etc/openvpn/<site1>-configure.sh
    脚本安全 2
    
    # /etc/openvpn/<站点1>-configure.sh
    ip 链路设置 $dev up
    ip 地址添加 2001:db8:222::1/64 dev $dev
    ip 路由添加 2001:db8:111::/64 dev $dev
    

用于openvpn --genkey --secret /etc/private/openvpn-site2.key在您的笔记本电脑上创建加密密钥,然后将其复制到组织。此设置仅适用于单客户端连接,但配置非常简单,无需处理 TLS 证书。


如果双方都有静态 IP 地址,则可以使用内置的 Linux IP-in-IP 隧道功能。

从技术上讲,最简单的方法是使用 IPv6-over-v4 隧道,其类型与各种 IPv6 隧道代理所使用的类型完全相同 - 只是具有更具体的路由。

ip tunnel add tunnel-site2 mode sit local <local-ipv4> remote <remote-ipv4>

另一种是 GRE 隧道,即 PPTP 使用的类型。语法相同,只是带有mode gre

一旦您有了隧道接口,您就可以为其分配一个 IPv6 地址和/或配置路由。

不幸的是,他们没有选项来处理动态变化的客户端 IP 地址。

相关内容