<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Consolas, sans-serif;">
<div>Hello everybody,</div>
<div><br>
</div>
<div>At Facebook we use BGP anycast technology to balance DHCP traffic. To do so we advertise a global VIP via BGP, VIP that then ends up in the rack switch dhcp relayers.</div>
<div>We then receive UDP datagrams that have the VIP IP as the destination IP, therefore we need to bring up tunl0/ip6tnl0 interfaces onto our machines that have the VIP assigned so that applications can get those datagrams destined to the VIP address.</div>
<div><br>
</div>
<div>I’ve been testing kea 0.9.2 in our production environment and I’ve noticed a regression compared to 0.9:</div>
<div><br>
</div>
<div>KEA refuses to listen on tunl0 or ip6tnl0 interfaces.</div>
<div><br>
</div>
<div>I get an error like this:</div>
<div><br>
</div>
<div>2015-11-18 06:09:11.451 WARN [kea-dhcp4.dhcpsrv/650885] DHCPSRV_OPEN_SOCKET_FAIL failed to open socket: the interface tunl0 is down or has no usable IPv4 addresses configured</div>
<div><br>
</div>
<div>Even though I assign an IP to the interface, see:</div>
<div><br>
</div>
<div>
<div>$ ip addr show tunl0</div>
<div>9: tunl0: <NOARP> mtu 0 qdisc noop state DOWN</div>
<div>    link/ipip 0.0.0.0 brd 0.0.0.0</div>
<div>    inet 10.127.255.68/32 scope global tunl0</div>
<div>       valid_lft forever preferred_lft forever</div>
</div>
<div><br>
</div>
<div>And basically our DICOVERY packets are never seen by the server.</div>
<div>I am currently reading lib/dhcp/iface_mgr.cc but I wanted to give you an heads up...</div>
<div>
<div id="MAC_OUTLOOK_SIGNATURE">
<div>
<div>-- </div>
<div>Angelo Failla</div>
</div>
<div>Cluster Infrastructure - Dublin</div>
<div>Pallotron@fb.com</div>
</div>
</div>
</body>
</html>