# set handling for bridge
case "$DEVICETYPE" in
- br|atm|lec|irda|vlan)
+ bond|br|atm|lec|irda|vlan)
HANDLING=1
;;
esac
# Multicast ready devices
- if is_yes "$MULTICAST"; then
- MULTICAST="on"
+ if [ -n "$MULTICAST" ]; then
+ MULTICAST="$MULTICAST"
else
case "$DEVICETYPE" in
- eth|br)
+ eth|br|vlan)
MULTICAST="on"
;;
*)
if [ -z "${IPV6_GLOBALROUTEDEV}" -o "${IPV6_GLOBALROUTEDEV}" = "${DEVICE}" ]; then
# set up default route
if [ "${IPV6_GLOBALROUTEGW}" ]; then
+ ip -6 route add ${IPV6_GLOBALROUTEGW} dev ${DEVICE} ${IP6SRCADDR} onlink
ip -6 route add 2000::/3 via ${IPV6_GLOBALROUTEGW} dev ${DEVICE} ${IP6SRCADDR} onlink
elif [ "${IPV6_GLOBALROUTEDEV}" = "${DEVICE}" ]; then
ip -6 route add 2000::/3 dev ${DEVICE} ${IP6SRCADDR}
# Add ONLY IPv4 address (IPv6 address is added automaticly)
set_up_loopback()
{
- if is_yes "$IPV4_NETWORKING"; then
+ # test if addr is assigned already as lxd(lxc?) initializes loopback upfront
+ if is_yes "$IPV4_NETWORKING" && ! ip addr show lo | grep -q "127\.0\.0\.1"; then
ip addr add 127.0.0.1/8 dev lo
fi
ip link set dev lo up
/sbin/ip rule add $args $prio
done
elif is_no "$1"; then
- LC_ALL=C /sbin/ip rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do
+ LC_ALL=C /sbin/ip rule show | grep -vE -e "from all lookup (main|default|local|253|254|255)[[:space:]]*\$" -e " map-to " | while read prio from src args; do
[ "$src" = "all" ] && /sbin/ip rule delete $args || /sbin/ip rule delete $from $src $args
done
fi
/sbin/ip -6 rule add $args $prio
done
elif is_no "$1"; then
- LC_ALL=C /sbin/ip -6 rule show | grep -vE -e "from all lookup (main|default|local|253|254|255) \$" -e " map-to " | while read prio from src args; do
+ LC_ALL=C /sbin/ip -6 rule show | grep -vE -e "from all lookup (main|default|local|253|254|255)[[:space:]]*\$" -e " map-to " | while read prio from src args; do
[ "$src" = "all" ] && /sbin/ip -6 rule delete $args || /sbin/ip -6 rule delete $from $src $args
done
fi