设置 6in4 隧道服务器

设置 6in4 隧道服务器

我想设置一个 IPv6-in-IPv4 SIT 隧道服务器。我仔细研究了Ubuntu IPv6 维基页面但一切都以客户端的身份连接到隧道为目标,而不是托管隧道。我想使用 6in4,因为它非常简单/多功能,并且似乎可以毫无问题地与大多数家用路由器/防火墙进行协商。

这将主要由我们的系统管理员使用,以便在家中通过本身不支持 IPv6 的 DSL/Cable 连接访问 IPv6。我想自己运行它的原因有两个:

  1. 我发现飓风电气隧道之类的隧道相当慢,有时还不可靠。
  2. 我不喜欢我们的流量通过 HE 的网络。我们有自己的核心传输网络和来自 RIPE 的 IPv6 分配,所以我们不妨利用它!

这将可供 5-10 个用户同时使用。

我所拥有的可以用作主机的设备:

  • 思科 ISR
  • 思科 ASA
  • Juniper MX
  • Linux/Windows 服务器 (最好是 Ubuntu)

提前致谢。

答案1

如果我没记错的话,SIT 是对称的:两侧都做同样的事情。

配置应该非常简单:

思科 IOS:

interface Tunnel0
 description 6in4 to <client>
 no ip address
 ipv6 enable
 ipv6 address 2001:db8:::1/64
 tunnel source <local ipv4>
 tunnel destination <client ipv4 addr>
 tunnel mode ipv6ip

瞻博网络 JunOS

interfaces {
   ip-0/1/0 {
      unit 0 {
         tunnel {
            source <local ipv4>;
            destination <client ipv4 addr>;
         }
         family inet6 {
            address 2001:db8::1/64;
         }
      }
   }
}

Linux iproute2:

ip tunnel add tun-6in4 mode sit remote <client ipv4 addr> local <local ipv4> 
ip link set tun-6in4  up
ip addr add 2001:db8:::1/64 dev tun-6in4

我没有 ASA 配置经验,但这也应该是可行的。

然而,6in4 有几个缺点:

  • 中心节点上有 N 个隧道,用于连接 N 个对等体

  • 对于动态 IP 客户端来说,没有简单的方法来更新对等 IP。

您可能需要了解动态 VPN 技术,例如 OpenVPN(解决了问题 2,尽管设备将动态生成)或锡克(解决两个问题),或者任何其他能够使用 Tap 设备封装以太网(因此是 IPv6)的设备。

答案2

为 ISP 员工提供 IPv6 家庭连接非常重要的。

6in4 是对称的,因此您可以在两端以相同的方式设置隧道(在两端之间形成虚拟“电缆”)。然后像往常一样进行路由:“客户”端使用隧道作为默认网关,“服务器”将前缀路由到相应的隧道。最后一点可能需要重新分配一些(手动或自动)路由。

在 Cisco IOS 上,redistribute static在您的路由协议配置中执行此操作是一种简单的方法,但您可能需要过滤重新分配。我通常在 BGP 中重新分配“客户”路由。它使 IGP(如 ISIS 或 OSPF)更清洁,这将有助于在链路抖动或故障后加快核心的收敛速度。而且 BGP 提供了更好的过滤选项。例如,通过将社区附加到重新分配的路由。


稍微扩展一下 petrus 给出的答案。我将给出 Cisco 符号,但这在其他操作系统中也以大致相同的方式工作。

您可以拥有编号和未编号的链接。编号链接可能会使调试更容易,但它会使您的寻址计划更复杂一些。在这两种情况下,您都必须将一些地址空间委托给用户。链接上的地址仅用于链路,并且用户可能还需要链路后面的网络地址。因此,将/56或路由/48到链路下方。


让我们从一个无编号的链接开始。使用 创建链接以ipv6 enable在链接上创建链接本地地址。在“服务器”端类似这样:

interface Tunnel1
 description 6in4 to <client-1>
 no ip address
 ipv6 enable
 tunnel source <local ipv4>
 tunnel destination <client-1 ipv4 addr>
 tunnel mode ipv6ip

interface Tunnel2
 description 6in4 to <client-2>
 no ip address
 ipv6 enable
 tunnel source <local ipv4>
 tunnel destination <client-2 ipv4 addr>
 tunnel mode ipv6ip

ipv6 route 2001:db8:a001::/48 Tunnel 1
ipv6 route 2001:db8:a002::/48 Tunnel 2

router bgp 65530
 address-family ipv6
  redistribute static

在“客户端”方面:

interface Tunnel1
 description 6in4 to <server>
 no ip address
 ipv6 enable
 tunnel source <client-1 ipv4>
 tunnel destination <server ipv4 addr>
 tunnel mode ipv6ip

interface FastEthernet0/0
 ipv6 address 2001:db8:a001:1::1/64

ipv6 route ::/0 Tunnel 1

现在,使用编号链接也完全一样。好处是您可以更轻松地 ping 隧道的另一个端点。在“服务器”端,如下所示:

interface Tunnel1
 description 6in4 to <client-1>
 no ip address
 ipv6 address 2001:db8:0:a001::1/64
 tunnel source <local ipv4>
 tunnel destination <client-1 ipv4 addr>
 tunnel mode ipv6ip

interface Tunnel2
 description 6in4 to <client-2>
 no ip address
 ipv6 address 2001:db8:0:a002::1/64
 tunnel source <local ipv4>
 tunnel destination <client-2 ipv4 addr>
 tunnel mode ipv6ip

ipv6 route 2001:db8:a001::/48 2001:db8:0:a001::2
ipv6 route 2001:db8:a002::/48 2001:db8:0:a002::2

router bgp 65530
 address-family ipv6
  redistribute static
  redistribute connected

在“客户端”方面:

interface Tunnel1
 description 6in4 to <server>
 no ip address
 ipv6 address 2001:db8:0:a001::2/64
 tunnel source <client-1 ipv4>
 tunnel destination <server ipv4 addr>
 tunnel mode ipv6ip

interface FastEthernet0/0
 ipv6 address 2001:db8:a001:1::1/64

ipv6 route ::/0 2001:db8:0:a001::1

为了方便起见,我选择了2001:db8:0:a001::/64与委派相关的点对点链接2001:db8:a001::/48。您可以选择任何您喜欢的前缀,但使用 IPv6 这样大的地址空间保持事物可识别性会有所帮助...

相关内容