所以我有一个 Linux 服务器的 vps 提供商,它在我的网站上的网络仪表板中说明了这一点:
2607:f840:0044:0022:0000:0000:0000:0000/64 被路由到这个服务器 (2607:f840:0:3f:0:0:0:eaa)
2607:f840:0:3f:0:0:0:eaa/64 是分配给 eth0 接口的地址,旁边写着 GLOBAL。
我对 IPv6 只了解一点。每个地址长 128 位,以十六进制形式书写,通过省略前导零或使用 :: 一次来缩短。我不明白的是将 2607:f840:44:22::/64 “路由”到我的 IPv6 分配地址 2607:f840:0:3f:0:0:0:eaa/64 意味着什么。
所以我不能改变2607:f840:0:3f:0:0:0:eaa 但我可以选择从 2607:f840:44:22:0000:0000:0000:0000 到 2607:f840 的任何内容:44:22:FFFF:FFFF:FFFF:FFFF? 那会给我 2^64 个可能的地址,但目的是什么?
希望这个问题不要太含糊或离题,感谢您的洞察力。
我正在尝试使用 venet 在我的 Debian 节点 (OpenVZ) 上启用 IPv6;我的主机在 Proxmox 2.2(内核 2.6.32-16-pve)下,似乎路由失败。
我的主机正确地 ping 我的所有节点;我的所有节点都 ping 我的主机,但没有一个节点可以 ping 另一个节点或外部世界。当我从我的计算机运行到我的节点的跟踪路由时,它在到达我的主机之前停止(到我的节点的跟踪路由运行良好)。
这是我的网络配置:
X网络掩码:2001:41d0:2:520 X::/64XIPv6:2001:41d0:2:520 X::1在我的主机上,vmbr0配置是(来自/etc/network/interfaces):
iface vmbr0 inet6 static
address 2001:41d0:2:52ae::1
netmask 64
gateway 2001:41d0:2:52ff:ff:ff:ff:ff
post-up ip -6 route add 2001:41d0:2:52ff:ff:ff:ff:ff/128 dev vmbr0 #gateway
post-up ip -6 route add default via 2001:41d0:2:52ff:ff:ff:ff:ff #gateway
post-up ip -6 route add 2001:41d0:2:520X::/64 dev vmbr1 # node X
post-up …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的服务器上使用 tayga 实现 NAT64,但我不确定如何继续。
我的服务器通过一个 IPv4 地址和一个 /64 IPv6 地址块连接到互联网。它提供各种服务。出于某些原因,我还运行了一些 LinuX Containers (LXC)。这些是 IPv6 专有的。我在我的主机系统上实现了一个网桥 (br0),并将地址从 eth0 切换到 br0。我的容器在 IPv6 上成功地相互通信。通过主机上的 mod_proxy,我也可以将仅 ipv6 的网络服务器 (LXC) 连接到 IPv4 互联网。但只是在一个方向,你可以说。
对于某些自动更新功能,我需要 NAT64+DNS6,因为某些更新服务器不支持 IPv6。
让我们假设以下情况,并注意 IP 地址并未真正使用。
主机 br0:
inet address: 10.0.0.1 # external IP
inet6 address: 2a01::1/64 # external IP
Run Code Online (Sandbox Code Playgroud)
LXC eth0:
# external IP, some ip6tables forward rules implemented on the host
inet6 address: 2a01::2/64
Run Code Online (Sandbox Code Playgroud)
我在我的主机上安装了 tayga 并像这样配置它:
tun-device nat64
ipv4-addr 192.168.255.1
prefix 2a01:0:0:0:64::/96
map 192.168.255.2 2a01::2
Run Code Online (Sandbox Code Playgroud)
Tayga 自动从该 /96 子网中选择一个 …
我有以下情况:我将 FreeBSD 9.1 机器配置为gif0接口上的心跳 SixXS 隧道的端点。到目前为止它有效,我可以通过 IPv6 ping6。
我lagg0从连接到 LAN 的分配的 IPv6 子网中将静态 IPv6分配给另一个接口,该接口是聚合接口。现在我想使用rtadvd守护进程将此网络前缀通告给我的 LAN 。
这是它的/etc/rtadvd.conf文件:
lagg0:\
:addr="xxxx:yyyy:zzzz:aaaa::":prefixlen#64:tc=ether:
Run Code Online (Sandbox Code Playgroud)
与xxxx:yyyy:zzzz:aaaa::/64作为网络前缀。当我现在将客户端添加到网络时,它们会使用网络前缀并生成它们的 autoconf 和临时地址。这很好用。
然而,他们缺少的是正确的 IPv6 默认路由。在路由表中,IPv6 的默认路由是fe80::路由器的链路本地地址。
现在没有数据包被路由到互联网。如果我手动将默认路由添加到主机,它就可以工作。
我的问题
我认为路由器广告应该在客户端上配置正确的默认路由。我在这里错过了什么吗?为什么它会宣传其本地链接地址而不是正确的地址?
我有一个要分配的静态 IPv6 地址。当我将地址添加到/etc/sysconfig/network-scripts/ifcfg-eth0文件并重新启动网络时,我意识到我得到了几个 IPv6 地址。第一个是我的静态地址(Prefix::host),第二个是我的自动配置地址(Prefix::MAC_ADDRESS)。
我意识到流量正在离开自动配置地址,所以我的解决方案是禁用它。我在/etc/sysconfig/network-scripts/ifcfg-eth0文件中添加了“IPV6_AUTOCONF=no” 。由于自动配置地址消失了,这解决了问题。
但是,由于没有自动配置,我没有获得默认网关。我相信 Solaris 有一种称为“基于令牌的 IPv6”的东西,您可以在其中指定地址的主机部分,并且自动配置仍会运行以分配前缀、dns 和默认网关。我可以在 linux 中执行此操作吗?
我目前有一个 Airport Extreme 作为我的家庭办公室防火墙。除了处理 IPv4 NAT,我的 ISP (Comcast) 将 IPv6 前缀委派给 Airport,机场又将委派的前缀分配给我的 LAN 接口并发送适当的路由广告。
我想用一个小型 Linux 防火墙替换 Airport - 带有第二个以太网接口的 NUC 看起来很有趣 - 但我无法确定是否可以复制 IPv6 行为。我的基本问题是:
假设我想将端口 443 上的 2a00:1450:400c:c01::71 重定向到本地主机端口 12345。
如何使用 Iptables 做到这一点?
好吧,它是 Weechat,它在端口 >=1000 上运行 SSL 中继。它可以在此端口上与 IPv4 和 IPv6 建立连接。所以我想将定义的 IPv6:Port [2a00:1450:400c:c01::71]:443 绑定到 IPv6 localhost Port [::1]:12345
我希望有人可以帮助阐明ping6在 GNU/Linux 机器上展示的不同行为。
该机器是一台Linode主机,已分配了 IPv4 和 IPv6 地址。它在双栈配置中运行。Linode 人提供了两个 IPv4 解析器和两个 IPv6 解析器。(对于这个问题,我只会使用每种类型中的一种)。
当我将/etc/resolv.conf文件配置为使用 IPv4 解析器时;
# /etc/resolv.conf
nameserver 72.14.179.5
Run Code Online (Sandbox Code Playgroud)
ping6对每个回显回复执行反向查找,并相应地显示地址。(这是我所期望的。)
$ ping6 -c 6 google.com
PING google.com(dfw06s33-in-x05.1e100.net) 56 data bytes
64 bytes from dfw06s33-in-x05.1e100.net: icmp_seq=1 ttl=49 time=34.7 ms
64 bytes from dfw06s33-in-x05.1e100.net: icmp_seq=2 ttl=49 time=34.7 ms
64 bytes from dfw06s33-in-x05.1e100.net: icmp_seq=3 ttl=49 time=34.7 ms
64 bytes from dfw06s33-in-x05.1e100.net: icmp_seq=4 ttl=49 time=34.7 ms
64 bytes from dfw06s33-in-x05.1e100.net: icmp_seq=5 ttl=49 time=34.7 ms
64 bytes …Run Code Online (Sandbox Code Playgroud) 在我的专用服务器(由 OVH 托管)上,运行全新安装的 Ubuntu 14.04,curl 和 wget 需要大约 10 秒才能完成一个简单的请求。
$ curl -v google.com
* Rebuilt URL to: google.com/
* Hostname was NOT found in DNS cache
Run Code Online (Sandbox Code Playgroud)
只有在 10 秒后它才会真正返回一些东西。所以我决定在这个上运行strace:
write(2, "Hostname was NOT found in DNS ca"..., 36) = 36
socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP) = 3
close(3) = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f0a24fb8000
mprotect(0x7f0a24fb8000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f0a257b7f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f0a257b89d0, tls=0x7f0a257b8700, child_tidptr=0x7f0a257b89d0) = 5047
poll(0, 0, 4) = 0 (Timeout)
poll(0, 0, 8) …Run Code Online (Sandbox Code Playgroud) 显然,现在如果您/proc/sys/net/ipv6/conf/all/forwarding设置为1完全禁用接口和路由的自动配置的值,但我有一个系统,我想动态配置地址的一个接口。
我有一个带有多个接口的 Linux 机器,充当具有多个 wan 连接的路由器 。在 IPv4 方面,我使用多个路由表和 ip 规则将流量定向到单独的上行链路。
我的主要 wan 连接具有永久分配给我的连接的静态 IPv6 地址。备份连接基本上是廉价的宽带连接,我没有静态地址 IPv6 或 IPv4。我可以通过radvdump我的廉价宽带备份链接的提供商看到他们现在正在发送 IPv6 路由器广告。在那个链接上。由于我的盒子是路由器并且启用了转发,我如何动态配置此链接上的地址?有什么方法可以让我的系统接受路由器广告配置其地址,然后添加度量标准高于我的主连接路由的路由?

我的防火墙也在运行 squid,我的大部分通信都通过代理。因此,在主链路出现故障的情况下,我将不必执行任何奇怪的 IPv6 NAT 或任何事情来让我的内部主机与分配在我的宽带接口上的动态网络一起工作。大部分通信将由应用程序级代理很好地处理。
那么如何让我的 Linux 系统上的接口连接到为 IPv6 配置的宽带网络呢?Linux 机器运行 Debian wheezy,内核为 3.14-0.bpo.2-amd64。