ISATAP 中的链路本地地址和全局链路地址有什么区别?
例如:
link-local address: fe80::5efe:c000:0201
global address: 3ffe:b00:1:2::5efe:c000:0201
Run Code Online (Sandbox Code Playgroud)
为什么我们不只使用一个地址?为什么同时使用两者有帮助?
我可以在互联网上找到一些信息,但由于使用了技术术语,我很难理解这些信息。有人可以帮我解决这个问题吗?
我是否正确理解了我所阅读的内容?
首先,链路本地地址是否始终是 IP 地址?此外,链路本地地址是否始终在 169.254.1.0 到 169.254.1.0 的范围内?
其次,链路本地地址总是由其自身分配给设备。更详细地说,设备选择一个 IP 地址(从指定范围内)并将这个 IP 地址发送到网络中的其他设备。如果这个 IP 地址没有被其他设备占用,它将被考虑的设备占用。这是正确的吗?
我希望 Apache 侦听特定接口上的本地链路 ipv6 地址。我的 httpd.conf 中有以下行:
Listen [fe80::a00:16ff:fe89:420f]:80
Run Code Online (Sandbox Code Playgroud)
它基于此处的 Apache 文档:https : //httpd.apache.org/docs/2.4/bind.html “IPv6 地址必须括在方括号中”
我的操作系统/Apache版本详情如下:
$ httpd -v
Server version: Apache/2.4.18 (Unix)
Server built: Dec 14 2015 08:05:54
$ uname -rv
4.3.3-3-ARCH #1 SMP PREEMPT Wed Jan 20 08:12:23 CET 2016
Run Code Online (Sandbox Code Playgroud)
使用显示的结果journalctl -e是:
(22)Invalid argument: AH00072: make_sock: could not bind to address [fe80.....
IPv6 正在工作,因为我有 sshd 和 dnsmasq 监听。我曾尝试向地址附加两个不同的范围 ID 后缀。您可以使用的接口ID3或名字net1作为既是scopeidping6和sshd。
$ ip addr | grep -Po …Run Code Online (Sandbox Code Playgroud) 根据我在网上阅读的内容,通过获取网络接口的 MAC 地址,在其中插入一个 FF:FE 字,或者在一些附加位中进行 OR 运算,等等,就可以生成 IPv6 链路本地地址:例如 MAC 地址 00: 3E:E1:c6:20:c2 对应 IPv6 链路本地地址 fe80::23e:e1ff:fec6:20c2%en0,知道 MAC 地址的程序可以计算 IPv6 地址,反之亦然。
这在我的 Macintosh 上似乎运行良好,但在我同事的 Windows 机器上,我们看到了这一点(来自 ipconfig 的输出):
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::eb:b41:3e4c:fd9e%11
IPv4 Address. . . . . . . . . . . : 192.168.0.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . …Run Code Online (Sandbox Code Playgroud) 我可以将默认 GW 设置为下一跳路由器的链路本地地址吗?我知道这是一件奇怪的事情,我主要想知道这可能吗?
路由器不转发具有链路本地地址的数据包。
我想知道的是:如果目标是链接本地地址,那是有道理的,但是如果我有一个只有链接本地地址的盒子试图到达全局/站点范围地址怎么办?流量可以返回,还是会失败,因为返回的数据包将发送到链路本地地址?
我们最近遇到了一种情况,Windows 10 机器为自己分配了一个本地链接地址 169.254.0.33。
根据我们对RFC 3927 第 2.1 节的阅读,这是不允许的。范围 169.254.0.xx 和 169.254.255.xx 保留供将来使用,不用于自动分配。
有趣的是,阅读同一 RFC 第 2 节的介绍,它声称,至少在撰写本文时,MS Windows“与本节中的规则兼容”。
这种违规行为是否已知?还是我们在 Windows 10 中遇到了错误?还是我们误解了什么?
(此外,我们胆怯地试图看看我们是否可以让它分配一个不同的地址(通过启用/禁用接口,...),但它总是分配相同的地址,169.254.0.33。不确定这是否是另一个非-合规性,但)
我的网络设置非常简单:两台 win7-64 机器连接到一个交换机。为其网络接口启用了 IPv6。没有路由器没有外部网络没有DHCP。
ipconfig report for the computer shows that they obtain a link local ipv6 address:
machineA: Link-local IPv6 Address . . . . . : fe80::7d4a:a8f:2a:e190%10
machineB: Link-local IPv6 Address . . . . . : fe80::2506:6b8e:d161:adcb%11
Run Code Online (Sandbox Code Playgroud)
但是,当我使用以下语法从 machineB ping machineA 时,出现“目标主机无法访问”错误: ping fe80::7d4a:a8f:2a:e190 ping fe80::7d4a:a8f:2a:e190%11
注意:当我使用完全相同的配置使用 IPv4 地址 ping 时,同时我得到响应。
编辑:这是接口信息:
Interface List
11...78 2b cb 97 e0 a9 ......Intel(R) 82579LM Gigabit Network Connection
Run Code Online (Sandbox Code Playgroud) link-local ×8
ipv6 ×6
windows ×2
apache-2.4 ×1
arch-linux ×1
gateway ×1
httpd.conf ×1
ip ×1
ip-address ×1
networking ×1
ping ×1
router ×1