diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 228fae2..c7e1837 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -213,25 +213,20 @@ kdump_setup_znet() { get_routes() { local _netdev="$1" _target="$2" - local _route _nexthop + local _route _route=`/sbin/ip route get to $_target 2>&1` -# -# in the same subnet region, following is the route format -# _route='192.168.200.137 dev eth1 src 192.168.200.129 -# cache ' -# -# in the different subnet region, following is the route format -# _route='192.168.201.215 via 192.168.200.137 dev eth1 src 192.168.200.129 -# cache ' -# - if `echo $_route | grep -q "via"`; then + if /sbin/ip route get to $_target | grep -q "via"; + then # route going to a different subnet via a router - _nexthop=`echo $_route | awk '{print $3}'` + echo $_route | awk '{printf("rd.route=%s:%s:%s\n", $1, $3, $5)}' \ + >> ${initdir}/etc/cmdline.d/45route-static.conf + else + # route going to a different subnet though directly connected + echo $_route | awk '{printf("rd.route=%s::%s\n", $1, $3)}' \ + >> ${initdir}/etc/cmdline.d/45route-static.conf fi - _netdev=$(kdump_setup_ifname $_netdev) - echo "rd.route=$_target:$_nexthop:$_netdev" >> ${initdir}/etc/cmdline.d/45route-static.conf } # Setup dracut to bringup a given network interface