在GCE中,DHCP服务器返回具有32位掩码的IP地址。使实例成为子网中唯一的实例。它还返回一些需要配置的静态路由(RFC3442)。响应的示例如下所示
udhcpc: interface=eth0
udhcpc: ip=10.240.0.2
udhcpc: siaddr=10.240.0.1
udhcpc: subnet=255.255.255.255
udhcpc: mask=32
udhcpc: router=10.240.0.1
udhcpc: staticroutes=10.240.0.1/32 0.0.0.0 0.0.0.0/0 10.240.0.1
udhcpc: opt53=05 使用dhcpd,这非常有效,客户端获取路由并将它们推送到路由表。但是,这里我使用udhcp,我需要自己添加它们。我尝试使用ip命令添加它们,但这似乎不起作用。
ip addr add 10.240.0.2/32 dev eth0
ip route add 10.240.0.1 dev eth0 proto kernel scope link
ip route add 0.0.0.0/0 via 10.240.0.1但这似乎行不通。
/ # ping 8.8.8.8 -c 10
PING 8.8.8.8 (8.8.8.8): 56 data bytes
--- 8.8.8.8 ping statistics ---
10 packets transmitted, 0 packets received, 100% packet loss在添加这些路线的时候,我是不是遗漏了什么?
发布于 2021-02-03 11:10:56
默认情况下,udhcpc不请求无类静态路由,您需要通过将-O 121或-O staticroutes添加到命令行来指示它这样做。或者,可以配置DHCP服务器强制发送选项。
然后,这些路由应该由udhcpc钩子脚本配置。您可以看到Gentoo的netifrc udhcpc-hook.sh实现。
发布于 2020-11-24 14:24:09
我看到这个职位是两年半前创建的,你能澄清一下你还有这个问题吗?
同时,我们需要记住的第一个概念是,不能修改GCP上的DHCP。另外,在实例中修改NIC设置可能会导致类似的一些干扰。
为此,我建议您检查GCP上的路由部分。通常,您有一个默认的Internet网关和一个通往Internet的默认路由,它可能会与新的IP子网和配置混淆或出错。
https://serverfault.com/questions/915434
复制相似问题