В GCE сервер DHCP возвращает IP-адрес с 32-битной маской. Сделать экземпляр единственным в своей подсети. Он также возвращает пару статических маршрутов (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
Я что-то упускаю при добавлении этих маршрутов?
Я вижу, что это сообщение было создано два с половиной года назад. Не могли бы вы пояснить, что проблема все еще существует?
Тем временем первое, что нам нужно иметь в виду, это то, что DHCP на GCP нельзя изменить. . Кроме того, изменение настроек сетевой карты внутри экземпляра может привести к некоторым сбоям, подобным этому.
Я бы порекомендовал вам по этой конкретной проблеме проверить часть маршрутизации на GCP. Обычно у вас есть интернет-шлюз по умолчанию и маршрут к Интернету по умолчанию, который может быть перепутан или неправилен с новой IP-подсетью и конфигурацией.
udhcpc по умолчанию не запрашивает бесклассовые статические маршруты, вам нужно указать это, добавив -O 121
или -O staticroutes
в командную строку. В качестве альтернативы DHCP-сервер можно настроить на принудительную отправку параметра.
Затем маршруты должны быть настроены с помощью скрипта ловушки udhcpc. Вы можете увидеть netifrc udhcpc-hook.sh Gentoo для реализации, которая делает это.