我一直致力于在我的网络中获得 IPv6 支持,并且在短时间内一切正常。服务器正在运行 Ubuntu Server 8.10。
但是,现在每当我尝试在服务器上执行与 IPv6 相关的任何操作时,我都会收到“不允许操作”。这来自诸如wide-dhcpv6-client(尝试从ISP获取IPv6地址时)和radvd之类的东西——这两种错误都将这种类型的错误记录到系统日志中。
即使 ping 回环接口也失败:
xxx@gordon:~$ ping6 ::1
PING ::1(::1) 56 data bytes
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
^C
--- ::1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2014ms
xxx@gordon:~$ sudo ping6 ::1
sudo: unable to resolve host gordon
PING ::1(::1) 56 data bytes
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not …Run Code Online (Sandbox Code Playgroud) 对于这个公然的新手问题,我深表歉意,但我想以“正确的方式”来做这件事,而不仅仅是在它似乎有效之前就胡说八道,而且我拥有的文档似乎没有解决这个问题。
目前,我正在使用的 Debian Linux 机器具有以下 /etc/network/interfaces 文件:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet dhcp
pre-up modprobe bonding mode=active-backup miimon=100 primary=eth0
pre-up ip link set bond0 up
pre-up /sbin/ifenslave bond0 eth0
pre-up /sbin/ifenslave bond0 eth1
Run Code Online (Sandbox Code Playgroud)
上面的工作正常,并且主要做我想要的 - 在启动时,盒子出现并且两个以太网插孔用于故障转移/冗余(即盒子在工作时使用第一个插孔进行通信,否则它使用第二个插孔)。
但是,出于我的目的,我不想使用 IPv4 或 DHCP。我希望盒子只使用盒子的 IPv6 自分配地址(即 fe80::whatever:it:is)而不使用其他 IP 地址(嗯......环回可以)来提出 bond0。指定这个的正确方法是什么?我应该将“iface bond0 inet dhcp”更改为“iface bond0 inet6”吗?完全删除那条线?还有什么?理想情况下,我希望能够在多个盒子上使用完全相同的文件,而无需为每个盒子修改它,顺便说一句。
我的网络路由器是 ZyXEL ZyWall USG 100,它有一个内置的 DNS 服务器。许多 Windows 计算机连接到它并通过 DHCP 获取 IPv4 地址。他们还会通过路由器的“域名”获知 DNS 后缀(“内部”)。通常这工作正常。但是,有时 Windows(Vista 或 7)机器将无法解析 DNS 记录中域名为“domain-name”的机器的 IP 地址。具有与“域名”关联的 IP 地址的机器此时已打开并可被其他 Windows 计算机访问。
发生这种情况时,它仍然可以使用“nslookup domain-name”解析IP地址,但“ping domain-name”、“ping -4 domain-name”和浏览“ http://domain-name ”失败。Ping "domain-name.internal" 有效。
我在受此问题影响的计算机上查看了“ipconfig /displaydns”命令的输出,我看到意外的 IPv6 条目如下所示:
domain-name
----------------------------------------
No records of type AAAA
Run Code Online (Sandbox Code Playgroud)
我可以通过重新启动网络适配器接口来暂时解决问题。
在http://technet.microsoft.com/en-gb/library/bb878121.aspx,微软说:
注意:由于 Internet 上的 DNS 服务器配置错误,同时使用 IPv4 和 IPv6 的计算机可能无法解析名称并连接到 Internet 资源。当错误配置的 DNS 服务器收到将名称解析为一个或多个 IPv6 地址的请求(请求 AAAA 记录)时,就会发生这种罕见的问题。如果 DNS 服务器不支持 IPv6,则名称查询失败。查询节点然后发送请求以将名称解析为一组 IPv4 地址(对 A 记录的请求)。错误配置的 DNS 服务器丢弃对 IPv4 地址的后续 DNS 查询,整个名称解析尝试失败,导致请求节点的网络连接受损。如果您遇到此问题,在 …
我有一个场景,运行 Debian 的设备可能有多个网络接口。我希望我的 eth0 接口通过 SLAAC 配置获取其地址,但我希望其余接口只有其本地链路或手动配置的 IPv6 地址。
这可能吗?
我刚刚购买了 Windows Server 2008 R2 VPS 计划,当我看到默认配置禁用了 Windows 防火墙时,我感到很震惊。我启用了防火墙并禁用了大部分入站规则,但我对核心网络类别中的规则有一些不确定性。我知道我不想要 DHCP,所以我禁用了 IP4 和 IP6 版本,但我对这个类别中的其他条目一无所知:
IGMP
IPHTTPS
IPv6
Multicast Listener Done, Query, Report and Report v2
Neighbor Discovery Advertisement and Solicitation
Packet Too Big
Parameter Problem
Router Advertisement
Router Solicitation
Teredo
Time Exceeded
Run Code Online (Sandbox Code Playgroud)
此服务器的唯一计划入站连接是 HTTP、HTTPS 和 RDP,因此我的偏好是禁用所有这些规则。但是,我想确保这不会导致任何意外问题。
TCP 是有状态的,应该要求后续数据包到达同一服务器。(无状态)HTTP 在 TCP 之上运行,CDN 可以使用任播。
那么 TCP 是如何与任播一起工作的呢?如果 syn 和 ack 转到不同的服务器怎么办?我想我听说谷歌对此有一些解决方案,但我不确定。
如果有任何区别,请同时回答 IPv4 和 IPv6。
我的目标是为我的每个 docker 容器拥有一个可路由的公共 IPv6 地址。我希望能够使用 IPv6 协议连接进出我的容器。
我正在使用 Linode 并且我被分配了一个公共 IPv6 池:
2600:3c01:e000:00e2:: / 64 routed to 2600:3c01::f03c:91ff:feae:d7d7
Run Code Online (Sandbox Code Playgroud)
该“路由到”地址是由 dhcp 自动配置的:
# ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2600:3c01::f03c:91ff:feae:d7d7/64 scope global mngtmpaddr dynamic
valid_lft 2591987sec preferred_lft 604787sec
inet6 fe80::f03c:91ff:feae:d7d7/64 scope link
valid_lft forever preferred_lft forever
Run Code Online (Sandbox Code Playgroud)
我设置了 AAAA 记录,ipv6.daaku.org以便更轻松地使用:
# nslookup -q=AAAA ipv6.daaku.org
ipv6.daaku.org has AAAA address 2600:3c01:e000:e2::1
Run Code Online (Sandbox Code Playgroud)
为了测试,我手动分配了该地址:
# ip -6 addr add 2600:3c01:e000:00e2::1/64 dev eth0
# ip -6 addr show …Run Code Online (Sandbox Code Playgroud) 我们目前正在设置一些本地网络服务器以在完整的 ipv4 网络中运行。我可以肯定,这个网络没有 ipv6 支持,永远不会。
在那旁边,
我们需要以某种方式完全禁用 Linux 服务器内核上的 ipv6 支持。
是的,我可以在谷歌上搜索一些 sysctl 设置,但这还不够。例如,在默认设置中/etc/hosts,我也发现了一些 ipv6 记录。我不会让它在以后惹出什么麻烦。
究竟需要做什么才能从全新安装的 debian 中完全删除整个 ipv6 支持?最好的是清单/待办事项清单,但任何其他形式也可以。
我检查/etc了很多配置文件,但我不能确定我找到了所有东西。
有什么更好的想法吗?有没有“清单”,需要设置什么?
IPv4 分配一整块 IPv4 环回地址,127.0.0.0/8. 相比之下,IPv6 只分配一个环回地址,::1.
IPv6 在其环回地址分配方面如此吝啬,这似乎令人惊讶,因为总的来说它提供了地址空间的巨大增加。
在 IPv4 中,我发现能够使用多个环回地址很有用。例如,对于某些复杂的 DNS 设置,我可以安装两个本地 DNS 服务器,一个在 上127.0.0.1:53,另一个在127.0.1.1:53. (使用不同的 IP 地址引用不同的服务器要容易一些,而不是在单个 IP 地址上使用非标准端口号。)我不能在只有一个环回地址的 IPv6 上使用这种策略。
与 IPv4 不同,只为 IPv6 分配一个环回地址可能有什么好的理由?
我的网络中有以下配置:
ISP Router <- eth1 -> Mikrotik Router <- eth2-5 -> Internal network
Run Code Online (Sandbox Code Playgroud)
我的 ISP 路由器收到一个动态的 /64 IPV6 块,每当我重新启动它时都会发生变化。
问题是我内部网络中的设备没有收到 IPV6 地址,可能是因为 Mikrotik 中的 DHCP 服务器配置不正确。
我已经在 Mikrotik 中配置了 DHCP 客户端(IPV6 -> DHCP 客户端),我可以看到我的 ISP 分配的 /64 块。
但是我无法配置 DHCP 服务器。我尝试在“IPV6 -> DHCP 服务器 -> 添加新”中分配池,但我的设备仍然没有收到任何 IPV6 地址。
关于什么是错误的任何想法?我使用的是 6.33 版。
注意:如果我将设备直接连接到我的 ISP 路由器,则 IPV6 可以正常工作。
- - 编辑 - -
在迈克尔发表评论后,我取得了一些进展。我在 Mikrotik 中禁用了 DHCP 服务器,并在“IPV6 -> 地址”中添加了一个带有广告标志的新地址,并使用了 DHCP 客户端创建的池。
我内部网络中的所有设备都在接收 IPV6 地址并且可以互相 ping 通。不幸的是,我无法 ping 外部主机。
在 Mikrotik 中,只有在 …