3 # Bring the interface up (but without an IP)
5 if [ "$MODE" == "routed" ]; then
6 ip link set $INTERFACE addr cc:47:52:4e:45:54
7 ifconfig $INTERFACE 0.0.0.0 up
8 # Add routing table entries
9 while ip rule del dev $INTERFACE; do :; done
10 ip rule add dev $INTERFACE table $LINK
11 ip route replace $IP table $LINK proto static dev $INTERFACE
13 # Enable proxy ARP/NDP
14 echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/proxy_arp
15 echo 0 > /proc/sys/net/ipv6/conf/$INTERFACE/proxy_ndp
17 # Add a routing entry for the eui-64
18 prefix=$(ip -6 route list table $LINK | grep -m 1 "/64" | awk '{ print $1 }')
19 uplink=$(ip -6 route list table $LINK | grep -m 1 default | sed 's/.* dev \([^ ]\+\).*/\1/')
20 eui64=$(mac2eui64 $MAC $prefix)
22 while ip -6 rule del dev $INTERFACE; do :; done
23 ip -6 rule add dev $INTERFACE table $LINK
24 ip -6 ro replace $eui64/128 dev $INTERFACE table $LINK
25 ip -6 neigh add proxy $eui64 dev $uplink
27 # Drop unicast BOOTP/DHCP packets
28 iptables -D FORWARD -i $INTERFACE -p udp --dport 67 -j DROP 2>/dev/null
29 iptables -A FORWARD -i $INTERFACE -p udp --dport 67 -j DROP
31 # Generate the client configuration
32 cat >/var/lib/nfdhcpd/$INTERFACE <<EOF
40 ifconfig $INTERFACE 0.0.0.0 up
41 # Add the interface to the bridge
42 brctl addif $BRIDGE $INTERFACE
43 if [ -f "/var/run/nfdhcpd/$INTERFACE" ]; then
44 rm /var/run/nfdhcpd/$INTERFACE