Now in dracut only default gateway is added. However as below you can see, if a service target is in different subnet with default gateway, a subnet route to that service target has to be added into dracut. sh> ip route show default via 192.168.122.1 dev eth0 proto static metric 1024 192.168.200.0/24 via 192.168.100.222 dev ens10 proto static metric 1 Now add a cmdline parameter rd.route="" and the related operation to parse it. User can add static route by specify it in cmdline like. For now the PREFIX/nexthop/output_device is enough to route. rd.route="192.168.200.0/24_via_192.168.100.222_dev_ens10" --- dracut.cmdline.7.asc | 8 ++++++++ modules.d/40network/net-lib.sh | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc index fef13b3..e2ab8a7 100644 --- a/dracut.cmdline.7.asc +++ b/dracut.cmdline.7.asc @@ -536,6 +536,14 @@ interface name. Better name it "bootnet" or "bluesocket". list of physical (ethernet) interfaces. Bridge without parameters assumes bridge=br0:eth0 +**rd.route=**__<route-options>__:: + Add static route to route table with route options which are separated by + underscore. Among them some are necessary, such as the destination prefix + of the route, the address of the nexthop route, the output device name. + It's like + rd.route=192.168.200.0/24_via_192.168.100.222_dev_ens10 + + NFS ~~~ **root=**\[_<server-ip>_:]__<root-dir>__[:__<nfs-options>__]:: diff --git a/modules.d/40network/net-lib.sh b/modules.d/40network/net-lib.sh index a82f1a8..b428abb 100755 --- a/modules.d/40network/net-lib.sh +++ b/modules.d/40network/net-lib.sh @@ -103,6 +103,15 @@ setup_net() { [ -e /tmp/net.$netif.resolv.conf ] && \ cp -f /tmp/net.$netif.resolv.conf /etc/resolv.conf + # add static route + local _p _r + for _p in $(getargs rd.route=); do + if strstr "$_p" "$netif"; then + _r=${_p//'_'/' '} + ip route add $_r + fi + done + # Handle STP Timeout: arping the default gateway. # (or the root server, if a) it's local or b) there's no gateway.) # Note: This assumes that if no router is present the -- 1.9.0 -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html