]> TLD Linux GIT Repositories - rc-scripts.git/blob - lib/ifup-routes
- disable lock checks (happens on LUKS2 and fails during system boot)
[rc-scripts.git] / lib / ifup-routes
1 #!/bin/sh
2 #
3 #
4 # Adds static routes which go through device $DEVICE
5 # Called from ifup-post.
6
7 if [ ! -f /etc/sysconfig/static-routes -a ! -f /etc/sysconfig/static-routes6 ]; then
8         return
9 fi
10
11 # note the trailing white space character in the grep gets rid of aliases
12 grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-routes | while read device args; do
13         if [[ "$args" = *:* ]]; then
14                 if is_no "$IPV6_NETWORKING"; then
15                         continue
16                 fi
17         else
18                 if is_no "$IPV4_NETWORKING"; then
19                         continue
20                 fi
21         fi
22         /sbin/ip route add $args dev $REALDEVICE
23 done
24
25 if ! is_no "$IPV6_NETWORKING"; then
26         grep -E "^($DEVICE|any)[[:blank:]]" /etc/sysconfig/static-routes6 | while read device args; do
27                 /sbin/ip -6 route add $args dev $REALDEVICE
28         done
29 fi
30
31 # based on information from http://avahi.org/wiki/AvahiAutoipd#Routes
32 if is_yes "$ZEROCONF" && ! /sbin/ip link show dev $REALDEVICE | grep -q POINTOPOINT ; then
33         # metric based on device ifindex, so the same route may be added to
34         # multiple devices. Big, so it won't conflict with anything else.
35         if [ -f /sys/class/net/$REALDEVICE/ifindex ] ; then
36                 metric="$(cat /sys/class/net/$REALDEVICE/ifindex)"
37                 metric=$(($metric + 1000))
38         else
39                 metric=1000
40         fi
41
42         # default route in default table, so it won't override default
43         # route set by other means
44         /sbin/ip route add default metric $metric dev $REALDEVICE table default
45
46         # add 169.254.0.0/16 route if not already present on the device
47         current=$(/sbin/ip route show 169.254.0.0/16 dev $REALDEVICE)
48         if [ -z "$current" ] ; then
49                 /sbin/ip route add 169.254.0.0/16 metric $metric dev $REALDEVICE
50         fi
51
52         unset metric
53         unset current
54 fi