Skip to content

Instantly share code, notes, and snippets.

@tombarron
Created August 3, 2020 12:20
Show Gist options
  • Save tombarron/5fbb6af932bc8f8ff23deaad8f97dc81 to your computer and use it in GitHub Desktop.
Save tombarron/5fbb6af932bc8f8ff23deaad8f97dc81 to your computer and use it in GitHub Desktop.
Install this script as /etc/NetworkManager/dispatcher.d/12-getv6addr as a hack to get NM to acquire DHCPv6 stateful addresses at boot time
#!/bin/bash
set -x
DEVICE=$1
ACTION=$2
#if [[ $DEVICE = "eth1" && $ACTION = "up" ]] ; then
if [[ $ACTION = "up" ]]; then
MYNAME=$(echo $0 | awk -F '/' '{print $NF}')
WORKDIR=$(mktemp -d /var/tmp/${MYNAME}XXXX)
LEASEFILE=${WORKDIR}/dhcp6-${DEVICE}
PIDFILE=${WORKDIR}/dhclient6.pid
cp /sbin/dhclient $WORKDIR
${WORKDIR}/dhclient -6 -1 -lf $LEASEFILE -pf $PIDFILE $DEVICE -sf /bin/true
kill $(cat $PIDFILE) || true
ADDR=$(awk '/iaaddr/ {print $2}' $LEASEFILE)
if [ -n "$ADDR" ]; then
ip addr add $ADDR/64 dev $DEVICE || true
fi
rm -rf $WORKDIR
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment