- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我正在使用用于 IPv6 的 Berkeley 套接字 API,并注意到 IPv6 地址 ( sockaddr_in6
) 有一个名为 sin6_scope_id
的字段。 ,这不是 IPv4 地址的一部分。
经过一番搜索,我了解到 scope_id
用于标识网络接口(interface),因为多个网络接口(interface)可以具有相同的链路本地 IPv6 地址。这是有道理的,但是我不明白的是 IPv4 是如何处理这个问题的,如果那里没有等效的范围 ID?
内核中是否有一种机制可以防止多个 IPv4 接口(interface)被分配相同的链路本地地址?
如果是这样,那为什么有必要为 IPv6 发明范围 ID 而不是采用与 IPv4 相同的解决方案呢?
此外,scope_id 是否仅用于区分具有相同链路本地地址的接口(interface),还是还有其他用例?
最佳答案
简而言之,不,没有定义明确的机制来处理具有多个接口(interface)的主机上的链路本地 IPv4 地址。没有什么可以阻止为两个不同的接口(interface)选择相同的链路本地地址(但是,如果两个接口(interface)位于同一网络链路上,则基于 ARP 的冲突检测将导致其中至少一个被重新分配)。
RFC 3927 section 3.2涵盖“地址歧义”的问题:
Given that the IP stack must have the outbound interface associatedwith a packet that needs to be sent to a Link-Local destinationaddress, interface selection must occur. The outbound interfacecannot be derived from the packet's header parameters such as sourceor destination address (e.g., by using the forwarding table lookup).Therefore, outbound interface association must be done explicitlythrough other means. The specification does not stipulate thosemeans.
Application software run on a multi-homed host that supports IPv4Link-Local address configuration on more than one interface may fail.
This is because application software assumes that an IPv4 address isunambiguous, that it can refer to only one host. IPv4 Link-Localaddresses are unique only on a single link. A host attached tomultiple links can easily encounter a situation where the sameaddress is present on more than one interface, or first on oneinterface, later on another; in any case associated with more thanone host. Most existing software is not prepared for this ambiguity.In the future, application programming interfaces could be developedto prevent this problem.
关于sockets - IPv6 范围 ID 与 IPv4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328995/
目前部署在 Kubernetes 中的服务,通过 Calico BGP 将 Service 与集群外网络打通,并在外部的 nginx 中配置 Service 地址对外进行服务暴露。经过一段时间的观察
如发现here , 有一种新的 kube 服务是 IPVS 并且有很多负载均衡算法。 唯一的问题是我没有找到指定这些算法的位置。 我的理解: rr:循环法->循环调用后端pod lc:最少连接-> 将
我想尝试这种新的代理模式以及它为我们的一些应用程序提供的各种调度程序。到目前为止,我一直无法找到更改默认模式的方法 iptables至 ipvs在 GKE 节点上。 每个人都说通过--proxy-mo
我想在现有集群中为 IPVS 启用 Kube-proxy 模式。目前,它在 IPtables 上运行。如何在不影响现有工作负载的情况下将其更改为 IPVS? 我已经安装了所有必需的模块来启用它。另外,
我正在开发的应用程序作为 Kubernetes 集群中的部署运行。为此部署创建的 Pod 分布在集群中的各个节点上。我们的应用程序一次只能处理一个 TCP 连接,并且会拒绝进一步的连接。目前,我们使用
我是一名优秀的程序员,十分优秀!