Revision 7c088335

b/clear-proxy-ndp
7 7
host=$(hostname)
8 8
domain=$(hostname -d)
9 9

  
10

  
11
if [ "$GANETI_INSTANCE_PRIMARY" = "$host.$domain" ]; then
12

  
13
  NETWORK="$GANETI_INSTANCE_NIC0_NETWORK"
14
  NETWORK_TYPE="$GANETI_INSTANCE_NIC0_NETWORK_TYPE"
15
  MODE="$GANETI_INSTANCE_NIC0_MODE"
16
  LINK="$GANETI_INSTANCE_NIC0_LINK"
17
  MAC="$GANETI_INSTANCE_NIC0_MAC"
18
  SUBNET6="$GANETI_INSTANCE_NIC0_NETWORK_SUBNET6"
19
  TAGS="$GANETI_INSTANCE_NIC0_NETWORK_TAGS"
10
FIRST=0
11
LAST=$((GANETI_INSTANCE_NIC_COUNT - 1))
12
for idx in $(seq $FIRST $LAST); do
13
  ip=GANETI_INSTANCE_NIC${idx}_IP
14
  mac=GANETI_INSTANCE_NIC${idx}_MAC
15
  mode=GANETI_INSTANCE_NIC${idx}_MODE
16
  link=GANETI_INSTANCE_NIC${idx}_LINK
17
  network=GANETI_INSTANCE_NIC${idx}_NETWORK
18
  subnet6=GANETI_INSTANCE_NIC${idx}_NETWORK_SUBNET6
19
  tags=GANETI_INSTANCE_NIC${idx}_NETWORK_TAGS
20
  eval IP=\$$ip
21
  eval MAC=\$$mac
22
  eval MODE=\$$mode
23
  eval LINK=\$$link
24
  eval NETWORK=\$$network
25
  eval SUBNET6=\$$subnet6
26
  eval TAGS=\$$tags
20 27

  
21 28
  for tag in $TAGS; do
22 29
    case $tag in
23 30
    $IP_LESS_ROUTED_TAG)
24
      EUI64=$($MAC2EUI64 $MAC $SUBNET6 2>/dev/null)
25
      uplink=$(ip -6 route list table $LINK | grep "default via" | awk '{print $5}')
26

  
27
      hooks-log clear-proxy-ndp "ip -6 neigh del proxy $EUI64 dev $uplink"
28
      ip -6 neigh del proxy $EUI64 dev $uplink >/dev/null 2>&1
31
      uplink=$(ip route list table $LINK | grep "default via" | awk '{print $5}')
32
      uplink6=$(ip -6 route list table $LINK | grep "default via" | awk '{print $5}')
33
      eui64=$($MAC2EUI64 $MAC $SUBNET6 2>/dev/null)
34
      if [ "$GANETI_INSTANCE_PRIMARY" = "$host.$domain" ]; then
35
        # This runs on the source node
36
        hooks-log clear-proxy-ndp "ip -6 neigh del proxy $eui64 dev $uplink6"
37
        ip -6 neigh del proxy $eui64 dev $uplink6 >/dev/null 2>&1
38
      else
39
        # This runs on the target node
40
        # Send GARP from host to upstream router to speed up mac change for the VMs IP
41
        hooks-log clear-proxy-ndp "arping  -c3 -I $uplink -U $IP"
42
        echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
43
        arping  -c3 -I $uplink -U $IP
44
        echo 0 > /proc/sys/net/ipv4/ip_nonlocal_bind
45
        # Send Unsolicited Neighbor Advertisement to speed up nd change for the VMs IP
46
        hooks-log clear-proxy-ndp "ndsend $eui64 $uplink6"
47
        ndsend $eui64 $uplink6
48
      fi
29 49
    ;;
30 50
    esac
31 51
  done
32
fi
52
done
33 53

  
34 54
exit 0

Also available in: Unified diff