gaa*_*kam 2 routing ip ip-address
我可以做这个:
/sbin/ip addr add 172.17.0.12 dev eth0
Run Code Online (Sandbox Code Playgroud)
这种可能性与我的(显然过于简单和不真实的)分配 IP 地址如何工作的心理模型相冲突。
根据这个心智模型:
对我来说,给自己分配 IP 地址的想法似乎……毫无意义?那么如果计算机声明“这是我的 IP 地址”怎么办?IP 地址的目的是让路由器知道数据包应该转发到哪里。
在上面的例子中,当一台计算机为172.17.0.12
自己分配一个私有网络地址时,只有当该私有网络的路由器知道并同意这台计算机拥有这个地址时,这才有意义。但在这种情况下,这不会是真的!那么任何数据包都可以eth0
到达这台计算机吗?
虽然其他答案概述了静态 IP 地址存在的原因,但我想回答您关于它如何工作的部分问题。
你在这里缺少的是ARP。想象一个 172.17.0.0/16 专用网络。您的一个客户端“给自己”了静态 IP 地址 172.17.0.12。第二个客户端 172.17.0.42 想要与 172.17.0.12 通信。在 ARP 之后,172.17.0.42 发送广播。它实际上是到处大喊“谁拥有 IP 地址 172.17.0.12?”。172.17.0.12 答复和通信建立。请注意,如果有两个客户端声称拥有相同的 IP 地址,则会出现混乱。