raspbian 如何在 IP 地址中进行选择?

raspbian 如何在 IP 地址中进行选择?

我正在运行一个 Raspbian 客户端,该客户端通过 HTTP 连接到 Raspbian 服务器。服务器上的 Apache 设置为不需要对本地 IP(ip4 和 ip6)进行身份验证。客户端和服务器都连接到单个 FritzBox 路由器。

客户端有多个可用 IP:

wlan0     Link encap:Ethernet  HWaddr 80:1f:02:7c:de:8c
      inet addr:192.168.0.46  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::821f:2ff:fe7c:de8c/64 Scope:Link
      inet6 addr: 2a02:8108:xxxx:xxxx:xxxx:xxxx:xxxx:8a0a/64 Scope:Global
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:389873 errors:0 dropped:1009 overruns:0 frame:0
      TX packets:265130 errors:0 dropped:1 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:186117464 (177.4 MiB)  TX bytes:35864729 (34.2 MiB)

服务器的 Apache 访问日志显示客户端使用的 IP2a02:8108...不在允许的本地 IP 范围内。

为什么客户端选择全局 IP 来连接本地子网内,以及这会受到什么影响?

更新

服务器和客户端都在同一个本地网络中,并且都具有链路本地地址:

客户

eth0      Link encap:Ethernet  HWaddr b8:27:eb:a9:e8:80
      inet addr:192.168.0.48  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::3e43:e197:e064:1be8/64 Scope:Link
      inet6 addr: 2a02:8108:9c40:...:1192/64 Scope:Global

服务器

eth0      Link encap:Ethernet  HWaddr b8:27:eb:50:df:c6
      inet addr:192.168.0.21  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::ba27:ebff:fe50:dfc6/64 Scope:Link
      inet6 addr: 2a02:8108:9c40:...:dfc6/64 Scope:Global

服务器 apache 日志

2a02:8108:9c40:...:1dcd:8339 - - [11/Dec/2016:13:30:30 +0000] "GET /middleware.php/capabilities/definitions.json HTTP/1.1" 401 387 "http://keller.fritz.box/frontend/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"

答案1

地址选择算法描述于https://www.rfc-editor.org/rfc/rfc6724

除非服务器的地址是链路本地地址 ( fe80:...),否则客户端使用其全局范围地址作为源地址是正确的。它不会将链路本地源地址与全局目标一起使用。

看看https://www.rfc-editor.org/rfc/rfc6724#section-10.1。它们看起来和你的情况完全吻合。

相关内容