Revision 63f1d9e7 common.sh

b/common.sh
24 24

  
25 25
function delete_neighbor_proxy {
26 26

  
27
  get_uplink $LINK "-6"
28
  get_eui64 $MAC $NETWORK_SUBNET6
29

  
30
  if [ -z "$EUI64" -z -o "$UPLINK" ]; then
27
  if [ -z "$EUI64" -z -o "$UPLINK6" ]; then
31 28
    return
32 29
  fi
33 30

  
34
  $SNF_NETWORK_LOG $0 "ip -6 neigh del proxy $EUI64 dev $UPLINK"
35
  ip -6 neigh del proxy $EUI64 dev $UPLINK
31
  $SNF_NETWORK_LOG $0 "ip -6 neigh del proxy $EUI64 dev $UPLINK6"
32
  ip -6 neigh del proxy $EUI64 dev $UPLINK6
36 33

  
37 34
}
38 35

  
......
87 84

  
88 85
function send_garp {
89 86

  
90
  get_uplink $TABLE
91 87
  if [ -z "$IP" -o -z "$UPLINK" ]; then
92 88
    return
93 89
  fi
......
101 97
}
102 98

  
103 99
function routed_setup_ipv6 {
104
	# Add a routing entry for the eui-64
105
  get_uplink $TABLE "-6"
106
  get_eui64 $MAC $NETWORK_SUBNET6
107 100

  
108
  if [ -z "$EUI64" -o -z "$TABLE" -o -z "$INTERFACE" -o -z "$UPLINK" ]
101
  if [ -z "$EUI64" -o -z "$TABLE" -o -z "$INTERFACE" -o -z "$UPLINK6" ]
109 102
  then
110 103
    return
111 104
  fi
112

  
105
	# Add a routing entry for the eui-64
113 106
	ip -6 rule add dev $INTERFACE table $TABLE
114 107
	ip -6 ro replace $EUI64/128 dev $INTERFACE table $TABLE
115
	ip -6 neigh add proxy $EUI64 dev $UPLINK
108
	ip -6 neigh add proxy $EUI64 dev $UPLINK6
116 109

  
117 110
	# disable proxy NDP since we're handling this on userspace
118 111
	# this should be the default, but better safe than sorry
119 112
	echo 0 > /proc/sys/net/ipv6/conf/$INTERFACE/proxy_ndp
120 113

  
121 114
  # Send Unsolicited Neighbor Advertisement
122
  $SNF_NETWORK_LOG $0 "ndsend $EUI64 $UPLINK"
123
  ndsend $EUI64 $UPLINK
115
  $SNF_NETWORK_LOG $0 "ndsend $EUI64 $UPLINK6"
116
  ndsend $EUI64 $UPLINK6
124 117

  
125 118
}
126 119

  
......
209 202
SUBNET=$NETWORK_SUBNET
210 203
GATEWAY6=$NETWORK_GATEWAY6
211 204
SUBNET6=$NETWORK_SUBNET6
212
EUI64=$($MAC2EUI64 $MAC $NETWORK_SUBNET6 2>/dev/null)
205
EUI64=$EUI64
213 206
EOF
214 207

  
215 208
}
......
217 210
function get_uplink {
218 211

  
219 212
  local table=$1
220
  local version=$2
221
  UPLINK=$(ip $version route list table $table | grep "default via" | awk '{print $5}')
222
  $SNF_NETWORK_LOG $0 "* uplink for table $table is $UPLINK"
213
  UPLINK=$(ip route list table $table | grep "default via" | awk '{print $5}')
214
  UPLINK6=$(ip -6 route list table $table | grep "default via" | awk '{print $5}')
215
  $SNF_NETWORK_LOG $0 "* Table $table: uplink -> $UPLINK, uplink6 -> $UPLINK6"
223 216

  
224 217
}
225 218

  
......
236 229
    EUI64=
237 230
  else
238 231
    EUI64=$($MAC2EUI64 $mac $prefix)
239
    $SNF_NETWORK_LOG $0 "* eui64 for $mac inside $prefix is $EUI64"
232
    $SNF_NETWORK_LOG $0 "* $mac + $prefix -> $EUI64"
240 233
  fi
241 234

  
242 235
}
......
308 301
update_all () {
309 302

  
310 303
  local action=$1
304
  $SNF_NETWORK_LOG $0 "Update ($action) dns for $GANETI_INSTANCE_NAME $IP $EUI64"
311 305
  update_arecord $action
312 306
  update_aaaarecord $action
313 307
  update_ptrrecord $action
......
360 354
}
361 355

  
362 356

  
357
# Use environment variables to calculate desired info
358
# IP, MAC, LINK, TABLE, BRIDGE,
359
# NETWORK_SUBNET, NETWORK_GATEWAY, NETWORK_SUBNET6, NETWORK_GATEWAY6
360
function get_info {
361

  
362
  $SNF_NETWORK_LOG $0 "Getting info for $INTERFACE of $GANETI_INSTANCE_NAME"
363
  get_rev4_info $IP
364
  get_eui64 $MAC $NETWORK_SUBNET6
365
  get_rev6_info $EUI64
366
  get_uplink $TABLE
367

  
368
}
369

  
370

  
363 371
# Query nameserver for entries related to the specific instance
364 372
# An example output is the following:
365 373
# www.google.com has address 173.194.113.114

Also available in: Unified diff