Removing myself as assignee as I really have no idea right of the bat what we are after here and I will most likely not have the time to dig into all the gory details. Here is the doc for what is supported w.r.t. configuration in dracut for these types of situation: http://man7.org/linux/man-pages/man7/dracut.cmdline.7.html and in detail the way the network would be configured: ip={dhcp|on|any|dhcp6|auto6|either6} dhcp|on|any get ip from dhcp server from all interfaces. If root=dhcp, loop sequentially through all interfaces (eth0, eth1, ...) and use the first with a valid DHCP root-path. auto6 IPv6 autoconfiguration dhcp6 IPv6 DHCP either6 if auto6 fails, then dhcp6 ip=:{dhcp|on|any|dhcp6|auto6}[:[][:]] This parameter can be specified multiple times. dhcp|on|any|dhcp6 get ip from dhcp server on a specific interface auto6 do IPv6 autoconfiguration optionally set on the . This cannot be used in conjunction with the ifname argument for the same . ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] explicit network configuration. If you want do define a IPv6 address, put it in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple times. is optional and is the address of the remote endpoint for pointopoint interfaces and it may be followed by a slash and a decimal number, encoding the network prefix length. optionally set on the . This cannot be used in conjunction with the ifname argument for the same . ip=:[]:::::{none|off|dhcp|on|any|dhcp6|auto6|ibft}[:[][:]] explicit network configuration. If you want do define a IPv6 address, put it in brackets (e.g. [2001:DB8::1]). This parameter can be specified multiple times. is optional and is the address of the remote endpoint for pointopoint interfaces and it may be followed by a slash and a decimal number, encoding the network prefix length. ifname=: Assign network device name (i.e. "bootnet") to the NIC with MAC . Warning Do not use the default kernel naming scheme for the interface name, as it can conflict with the kernel names. So, don’t use "eth[0-9]+" for the interface name. Better name it "bootnet" or "bluesocket". rd.route=/:[:] Add a static route with route options, which are separated by a colon. IPv6 addresses have to be put in brackets. Example. rd.route=192.168.200.0/24:192.168.100.222:ens10 rd.route=192.168.200.0/24:192.168.100.222 rd.route=192.168.200.0/24::ens10 rd.route=[2001:DB8:3::/8]:[2001:DB8:2::1]:ens10 bootdev= specify network interface to use routing and netroot information from. Required if multiple ip= lines are used. nameserver= [nameserver= ...] specify nameserver(s) to use Then there are vlan, bond, bridge, and team kernel command line arguments one could use.