examples: make udhcpc script handle /32 netmasks
No binary (build failed)
—
(log yok)
| @@ -18,11 +18,18 @@ then | |
| metric=0 | |
| for i in $router | |
| do | |
| + | if [ "$subnet" = "255.255.255.255" ]; then |
| + | # special case for /32 subnets: |
| + | # /32 instructs kernel to always use routing for all outgoing packets |
| + | # (they can never be sent to local subnet - there is no local subnet for /32). |
| + | # Used in datacenters, avoids the need for private ip-addresses between two hops. |
| + | /sbin/ip route add $i dev $interface |
| + | fi |
| /sbin/route add default gw $i dev $interface metric $((metric++)) | |
| done | |
| fi | |
| - | # Only replace resolv.conf is we have at least one DNS server |
| + | # Only replace resolv.conf if we have at least one DNS server |
| if [ -n "$dns" ] | |
| then | |
| echo -n > $RESOLV_CONF | |
| @@ -1,5 +1,5 @@ | |
| #!/bin/sh | |
| - | # Sample udhcpc bound script |
| + | # Sample udhcpc renew script |
| RESOLV_CONF="/etc/udhcpc/resolv.conf" | |
| @@ -18,11 +18,18 @@ then | |
| metric=0 | |
| for i in $router | |
| do | |
| + | if [ "$subnet" = "255.255.255.255" ]; then |
| + | # special case for /32 subnets: |
| + | # /32 instructs kernel to always use routing for all outgoing packets |
| + | # (they can never be sent to local subnet - there is no local subnet for /32). |
| + | # Used in datacenters, avoids the need for private ip-addresses between two hops. |
| + | /sbin/ip route add $i dev $interface |
| + | fi |
| /sbin/route add default gw $i dev $interface metric $((metric++)) | |
| done | |
| fi | |
| - | # Only replace resolv.conf is we have at least one DNS server |
| + | # Only replace resolv.conf if we have at least one DNS server |
| if [ -n "$dns" ] | |
| then | |
| echo -n > $RESOLV_CONF | |
| @@ -29,8 +29,14 @@ case "$1" in | |
| metric=0 | |
| for i in $router ; do | |
| echo "Adding router $i" | |
| - | route add default gw $i dev $interface metric $metric |
| - | : $(( metric += 1 )) |
| + | if [ "$subnet" = "255.255.255.255" ]; then |
| + | # special case for /32 subnets: |
| + | # /32 instructs kernel to always use routing for all outgoing packets |
| + | # (they can never be sent to local subnet - there is no local subnet for /32). |
| + | # Used in datacenters, avoids the need for private ip-addresses between two hops. |
| + | ip route add $i dev $interface |
| + | fi |
| + | route add default gw $i dev $interface metric $((metric++)) |
| done | |
| fi | |