К сожалению, мой хостинг-провайдер требует использования статических маршрутов для настройки сети (шлюз находится в другой подсети, чем IP-адрес хоста). Для этого я добавил следующие строки в файл конфигурации сети (/ etc / network / interfaces):
post-up route add -host 172.31.1.1 dev ens3 && route add default gw 172.31.1.1
Чтобы разблокировать зашифрованный корневой диск с помощью cryptsetup, я устанавливаю dropbear, чтобы я мог использовать SSH в busybox и предоставить пароль шифрования. Однако я не нашел способа добавить статические маршруты в файл конфигурации initramfs. Кто-нибудь знает, как это можно сделать? Рассматриваемый сервер работает под управлением Ubuntu 16.04.
Добавление маршрута через скрипт initramfs не помогло. Не знаю почему.
Ответ в другом потоке сработал: Полное шифрование диска Ubuntu в Hetzner Cloud добавляет статический маршрут в initramfs
Открыть файл /usr/share/initramfs-tools/scripts/functions
, ищите configure_networking()
(около строки 412 в Ubuntu 18.04) и добавьте следующее непосредственно перед закрытием }
:
ip route add ${IPV4GATEWAY}/${IPV4NETMASK} dev ${DEVICE}
ip route add default via ${IPV4GATEWAY} dev ${DEVICE}
diff -p /usr/share/initramfs-tools/scripts/functions{.orig,}
*** ./functions.orig 2019-03-27 14:00:57.685412556 +0000
--- ./functions 2019-03-27 13:59:09.758130638 +0000
*************** configure_networking()
*** 410,415 ****
--- 410,418 ----
/run/net-${DEVICE}.conf /run/net-*.conf /run/net6-*.conf
netinfo_to_netplan /run/netplan \
/run/net-${DEVICE}.conf /run/net-*.conf /run/net6-*.conf
+
+ ip route add ${IPV4GATEWAY}/${IPV4NETMASK} dev ${DEVICE}
+ ip route add default via ${IPV4GATEWAY} dev ${DEVICE}
}
netinfo_to_resolv_conf() {
Создайте небольшой вспомогательный скрипт, который настраивает вашу статическую маршрутизацию. В соответствии с руководство по initramfs-tools сценарии в / etc / initramfs-tools / scripts / nfs-premount выполняются после включения сетевого интерфейса, но вам может потребоваться поместить сценарий в другой подкаталог.
Вам нужно будет использовать ip route
синтаксис, потому что AFAIK более старый route
команда не будет доступна:
#!/bin/sh
# /etc/initramfs-tools/scripts/nfs-premount/static-routes
ip route add default via 172.31.1.1 dev ens3
exit 0
и убедитесь, что скрипт исполняемый (chmod 755 /etc/initramfs-tools/scripts/nfs-premount/static-routes
) перед запуском update-initramfs
.