5 # Adds all addresses of device.
6 # Called from ifup-post.
9 for IP_ADDR in $IPADDR_ALIASES; do
10 [ -z "$IP_ADDR" ] && continue
11 # Be sure that primary address is added
12 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
13 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
17 if is_yes "${IPV4_NETWORKING}"; then
18 ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
22 for IP_ADDR in $IPV6_ADDR; do
23 [ -z "$IP_ADDR" ] && continue
24 # Be sure that primary address is added
25 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
26 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
30 # Check for IPv6 address
31 if (echo $IP_ADDR | grep -q ":"); then
32 if is_yes "${IPV6_NETWORKING}"; then
33 ip -6 addr add ${IP_ADDR} dev ${DEVICE}
35 elif is_yes "${IPV4_NETWORKING}"; then
36 ip -4 addr add ${IP_ADDR} dev ${DEVICE} brd +
40 for nr in $(awk 'BEGIN { max=0; }; /^IPADDR[0-9]+=/ { s = $0; gsub(/^IPADDR/, "", s); gsub(/=.*/, "", s); if (int(s) > int(max)) { max=s; }; }; END { for(j=1; j<=int(max); j++) print j } ' $CONFIG); do
41 eval IP_ADDR="\$IPADDR${nr}"
42 [ -z "$IP_ADDR" ] && continue
44 eval IP_ADDR_OPT="\$IP_AOPTS${nr}"
45 eval IP_ROUTE_OPT="\$IP_ROPTS${nr}"
47 # Be sure that primary address is added
48 if [ "$IP_ADDR" = "$IP4ADDR" -o "$IP_ADDR" = "$IP6ADDR" ]; then
49 if (ip addr show dev $DEVICE | grep -qE "[[:space:]]${IP_ADDR}[[:space:]]"); then
53 # Check for IPv6 address
54 if echo $IP_ADDR | grep -q ":"; then
55 if is_yes "${IPV6_NETWORKING}"; then
56 ip -6 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
58 elif is_yes "${IPV4_NETWORKING}"; then
59 # If broadcast is missing then autocalculate it
60 if ! (echo $IP_ADDR_OPT | grep -qE "brd|broadcast"); then
61 IP_ADDR_OPT="brd + ${IP_ADDR_OPT}"
63 ip -4 addr add ${IP_ADDR} dev ${DEVICE} ${IP_ADDR_OPT}
67 # Setup IPv4-compatible addresses
68 if is_yes "$IPV6_NETWORKING" && [ "$BOOTPROTO6" = "v4compat" ]; then
69 # enable automatic tunnels
72 # add v4compat addresses to device
73 for addr in $(ip -4 addr show scope global dev $DEVICE | \
74 awk '/inet/ { print $2 }' | awk -F"/" '{ print $1 }'); do
75 ip -6 addr add ::$addr dev $DEVICE