D.27. /lib/services/ipv4-static-route

#### Linux From Scratch - Version r13.1-2

### Appendix D. Boot and sysconfig scripts version-20250827

- Prev

  /lib/services/ipv4-static

- Next

  Udev configuration rules

- Up
- Home

# D.27 /lib/services/ipv4-static-route

    #!/bin/sh
    ########################################################################
    # Begin /lib/services/ipv4-static-route
    #
    # Description : IPV4 Static Route Script
    #
    # Authors     : Kevin P. Fleming - kpfleming@linuxfromscratch.org
    #               DJ Lucas - dj@linuxfromscratch.org
    # Update      : Bruce Dubbs - bdubbs@linuxfromscratch.org
    #
    # Version     : LFS 7.0
    #
    ########################################################################

    . /lib/lsb/init-functions
    . ${IFCONFIG}

    case "${TYPE}" in
       ("" | "network")
          need_ip=1
          need_gateway=1
       ;;

       ("default")
          need_gateway=1
          args="${args} default"
          desc="default"
       ;;

       ("host")
          need_ip=1
       ;;

       ("unreachable")
          need_ip=1
          args="${args} unreachable"
          desc="unreachable "
       ;;

       (*)
          log_failure_msg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue."
          exit 1
       ;;
    esac

    if [ -n "${GATEWAY}" ]; then
       MSG="The GATEWAY variable cannot be set in ${IFCONFIG} for static routes.\n"
       log_failure_msg "$MSG Use STATIC_GATEWAY only, cannot continue"
       exit 1
    fi

    if [ -n "${need_ip}" ]; then
       if [ -z "${IP}" ]; then
          log_failure_msg "IP variable missing from ${IFCONFIG}, cannot continue."
          exit 1
       fi

       if [ -z "${PREFIX}" ]; then
          log_failure_msg "PREFIX variable missing from ${IFCONFIG}, cannot continue."
          exit 1
       fi

       args="${args} ${IP}/${PREFIX}"
       desc="${desc}${IP}/${PREFIX}"
    fi

    if [ -n "${need_gateway}" ]; then
       if [ -z "${STATIC_GATEWAY}" ]; then
          log_failure_msg "STATIC_GATEWAY variable missing from ${IFCONFIG}, cannot continue."
          exit 1
       fi
       args="${args} via ${STATIC_GATEWAY}"
    fi

    if [ -n "${SOURCE}" ]; then
            args="${args} src ${SOURCE}"
    fi

    case "${2}" in
       up)
          log_info_msg "Adding '${desc}' route to the ${1} interface..."
          ip route add ${args} dev ${1}
          evaluate_retval
       ;;

       down)
          log_info_msg "Removing '${desc}' route from the ${1} interface..."
          ip route del ${args} dev ${1}
          evaluate_retval
       ;;

       *)
          echo "Usage: ${0} [interface] {up|down}"
          exit 1
       ;;
    esac

    # End /lib/services/ipv4-static-route

- Prev

  /lib/services/ipv4-static

- Next

  Udev configuration rules

- Up
- Home