![如何从我的系统中找到并删除 6to4?](https://linux22.com/image/810367/%E5%A6%82%E4%BD%95%E4%BB%8E%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%89%BE%E5%88%B0%E5%B9%B6%E5%88%A0%E9%99%A4%206to4%EF%BC%9F.png)
上周我安装了 Miredo,并配置我的系统通过 6to4 隧道处理 IPv6。这很容易,而且效果很好。
所以我决定尝试一下 Hurricane Electric 的 IPv6 连接。我有很多东西要学,我认为我已经全部运行好了(在 Hurricane 一位非常有耐心的员工的大力帮助下:我的 LinkSys E3200 不喜欢 IPv6)。
但是现在,一切都应该好了,在我卸载了 Miredo 和 Teredo 以及其他程序后,我发现有“6to4 隧道 - 另一个自动隧道”,我需要将其从我的盒子中删除。但我不知道它在哪里或是什么。
我的电脑上连接着几台打印机、一个外置硬盘和一个路由器(路由器没有 IPv6 设置)。我认为,所有这些都与此事无关。
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:21:9b:1c:26:bb
inet addr:192.168.1.104 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: 2002:42db:c22c:0:221:9bff:fe1c:26bb/64 Scope:Global
inet6 addr: fe80::221:9bff:fe1c:26bb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1427 errors:0 dropped:0 overruns:0 frame:0
TX packets:1342 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1152240 (1.1 MB) TX bytes:177497 (177.4 KB)
Interrupt:20 Memory:fdfc0000-fdfe0000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:720 (720.0 B) TX bytes:720 (720.0 B)
$ ip -6 route show
2002:42db:c22c::/64 dev eth0 proto kernel metric 256 expires 24sec
fe80::/64 dev eth0 proto kernel metric 256
default via fe80::c2c1:c0ff:fec6:3308 dev eth0 proto kernel metric 1024
expires 1794sec hoplimit 64
那么,当我甚至不知道 6to4 隧道在哪里时,我该如何摆脱它呢?有没有什么地方可以查看并找出发生了什么?我对 Linux 和 Ubuntu 还很陌生。
因此,看起来 Miredo 并未运行,但我在 eth0 中获得了 IPv6 地址。我认为,Hurricane Electric 的一位员工看到了这一点,并因此看到了“6to4 隧道 - 另一种自动隧道”。这只是 Ubuntu 的一个功能吗?
他告诉我:
“寻找一台配置了 6to4 隧道并向你的 Linux 机器宣布 6to4 前缀的机器。
线索如下:根据您的 IPv6 路由表,fe80::XXXX:XXXX:XXXX:XXXX 是您的默认网关的链接本地地址。您能检查一下哪个设备的 MAC 地址为 XX-XX-XX-XX-XX 吗?”
事实证明,具有该 MAC 地址的设备是我的 LinkSys 路由器!(不支持 IPv6!)我不明白。
答案1
想要了解网络状况,ifconfig
这是一款很棒的工具。它会显示计算机上的所有接口以及它们所具有的地址。另一个不错的工具是ip -6 route show
(IPv4 版本ip route show
:)。
6to4 地址始终以“2002:xxxx:xxxx:”开头(例如 2002:40b8:f37f:)。相比之下,teredo 地址始终以“2002:0:”开头(或 2002:0000:,两者相同)。不要将 6to4 与配置的 HE 隧道混淆。HE 隧道使用 6在4 其地址以“2001:470:”开头。
从您更新的问题中,我可以看到您的系统上没有 6to4 隧道。您的路由器使用“2002:42db:c22c:0:”地址通过 6to4 隧道传输经过它的所有 IPv6 流量。它从隧道向本地网络提供地址。显然您的路由器非常支持 IPv6。
那么,没有 6to4 隧道,您的计算机如何拥有 IPv6 6to4 地址呢?您的计算机使用从路由器获得的地址在您的家庭网络上执行本机 IPv6。当它有互联网绑定的 IPv6 流量时,它会将其发送到您的路由器,然后路由器会将其发送到 6to4 隧道内。
因此,您的整个网络目前都使用 IPv6,您可以做出选择。您可以让路由器为网络执行 IPv6,这样每次 IPv4 地址更改时,都会为您提供不同的 IPv6 地址。或者,您可以让 Ubuntu 为您的网络执行 IPv6,并从 HE 获得静态地址。我认为两者也可以同时进行。
要忽略路由器公布的 IPv6 地址,请单击网络管理器图标,然后单击“编辑连接”。(非 Unity:右键单击打开菜单)。在有线选项卡上,双击自动 eth0 连接。转到 IPv6 选项卡。选择忽略而不是自动。
我写过一篇关于如何在 Ubuntu 上设置 HE 隧道的文章,网址为 https://erikbandersen.com/wordpress/?p=28。我把其中一部分抄在这里。
让我们设置 IPv6 隧道连接。运行
gksudo gedit /etc/network/interfaces
并添加以下内容:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
endpoint 216.218.226.238
address 2001:470:a:d29f::2
netmask 64
ttl 64
up ip -6 route add default dev he-ipv6
down ip -6 route del default dev he-ipv6
将端点设置(216.218.226.238)替换为隧道详细信息页面中的服务器 IPv4 地址字段,将地址设置(2001:470:a:d29f::2)替换为隧道详细信息页面中的客户端 IPv6 地址字段。保存文件。好的,现在让我们启动隧道连接:运行gksudo ifup he-ipv6
。
(从这里开始将您的隧道地址通告给网络的其余部分。)
好的,现在让我们将计算机设置为允许 IPv6 通过自身,而不是仅接受发往自身的流量。打开 /etc/sysctl.conf。查找以下行
net.ipv6.conf.default.forwarding=0
和
net.ipv6.conf.all.forwarding=0
并将它们都从 改为0
,1
如果不存在则添加行(带有 =1)。保存文件然后运行
gksudo sysctl -p
右键单击托盘中的网络管理器图标,然后单击编辑连接。选择与本地网络的连接,然后单击编辑。转到 IPv6 设置选项卡并将方法设置为手动。单击添加。对于地址,请输入路由 64 中的第一个地址。(在此示例中,它将是 2001:470:b:d29f::1。)对于前缀,请输入64
。对于网关,请输入隧道详细信息页面的“客户端 IPv6 地址”中的地址(在此示例中,它将是 2001:470:a:d29f::2)。单击应用。
好的,现在安装 radvd 包,它允许其他主机自动从 Hurricane Electric 分配给您的块中设置 IPv6 地址。创建一个新的文本文件并输入以下文本,按照注释的指示进行编辑:
interface eth0 #change this to the interface that connects to the local network
{
AdvSendAdvert on;
AdvHomeAgentFlag off;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
prefix 2001:470:b:d29f::/64 #change this to the "Routed 64" from the tunnel details page
{
AdvOnLink on;
AdvAutonomous on;
#AdvRouterAddr on; #We don't have dhcpv6 on. Only uncomment this if you want clients to look for a dhcpv6 server.
};
};
将文件保存为“/etc/radvd.conf”
如果你正在运行 UFW 防火墙,请在打开的文本编辑器中打开 /etc/default/ufw 并进行更改
IPv6=no
到
IPv6=yes
并改变
DEFAULT_FORWARD_POLICY="DROP"
到
DEFAULT_FORWARD_POLICY="ACCEPT"
然后保存文件。
最后,运行以下命令启动路由器广告守护进程
/etc/init.d/radvd start