Ik heb een server die gebruikt wordt voor virtualisatie hosting. De server, verder benoemd als host, maakt gebruikt van QEMU-KVM virtualisatie om verschillende virtuele machines, verder benoemd als guests, te draaien. Ik heb nu een probleem waarbij ik lokaal niet naar de host of de guests kan verbinden (pingen faalt) via hun IPv6-adres. Dit probleem is enkel bij LAN devices (de guests als de host zijn nog bereikbaar van buiten mijn LAN) en doet zich enkel voor bij Wi-Fi devices tot nu toe.
Ik heb al een en ander uit gezocht, zo blijkt er een bug te zitten in de bridge-utils die gebruikt wordt op verschillende linux-distributies. De host maakt gebruik van Ubuntu 16.04.1 en is voorzien van een bridge op de main interface om elke guest van internet te voorzien. De interface die de bridge gebruikt zit rechtstreeks aangesloten op mijn LAN router. De host en de guests maken gebruik van een static IPv6 adres en zijn publiek (buiten LAN) en door al mijn LAN apparaten te pingen. De fix zou zijn om multicast (igmp_snooping) uit te zetten op de desbetreffende interface. Maar dit helpt niet en het probleem blijft zich voort doen.
Ik heb wat nader onderzoek gedaan, en wat blijkt is het volgende. Ik heb even een test scenario gemaakt. Hierin heb ik een Macbook Pro die gebruikt maakt van het LAN Wi-Fi netwerk via een AP. De AP, een Asus AC-66U in AP-modus, die met een ethernet-kabel verbonden is met mijn router. Dan de host, aangesloten via ethernet-kabel aan de router en maakt gebruikt van een static IPv6 adres.
De host pingen vanaf mijn Macbook Pro werkt zonder enige problemen. Echter, na enige tijd stopt dit plots met werken en merk ik op dat de neighbor discovery (incomplete) aangeeft als ik volgend commando uitvoer: ndp -an. Dit betekend dus dat de neighbor discovery faalt, wat dan ook veroorzaakt dat mijn Macbook Pro de host niet meer kan bereiken. Ik heb op alle drie mijn apparaten tcpdump -n icmp6 uitgevoerd, wat mij meer informatie geeft van wat elk apparaat doet en ziet. Hier merk ik op dat mijn Macbook Pro wel degelijk een neighbor solicitation uitvoert naar mijn host. Deze solicitation is ook te zien op de AP en op de host zelf. De host stuurt hierbij een neighbor advertisement terug, maar deze is niet meer te zien op de AP of de Macbook Pro.
Het is duidelijk dat er ergens iets mis gaat bij het terug sturen van zijn advertisement. Wat vreemd is, is dat dit pas gebeurd na enige tijd dat de server online is. Dit probleem lijkt zich tot nog toe niet voor te doen bij andere IPv6 LAN apparaten, die blijven gewoon pingable. Nog een vreemd iets, is dat als ik de host ping op zijn IPv4 adres, de neighbor advertisement plots terug aan komt op de Macbook Pro, en dan lijkt alles weer even te werken.
Ik ben ten einde raad, heb al tal van fora mijn probleem gepost, maar niemand kan mij helpen of weet genoeg over IPv6 in samenwerking met een bridge. Indien meer informatie nodig/gewenst dan laat je het maar weten.
Ik heb al een en ander uit gezocht, zo blijkt er een bug te zitten in de bridge-utils die gebruikt wordt op verschillende linux-distributies. De host maakt gebruik van Ubuntu 16.04.1 en is voorzien van een bridge op de main interface om elke guest van internet te voorzien. De interface die de bridge gebruikt zit rechtstreeks aangesloten op mijn LAN router. De host en de guests maken gebruik van een static IPv6 adres en zijn publiek (buiten LAN) en door al mijn LAN apparaten te pingen. De fix zou zijn om multicast (igmp_snooping) uit te zetten op de desbetreffende interface. Maar dit helpt niet en het probleem blijft zich voort doen.
Ik heb wat nader onderzoek gedaan, en wat blijkt is het volgende. Ik heb even een test scenario gemaakt. Hierin heb ik een Macbook Pro die gebruikt maakt van het LAN Wi-Fi netwerk via een AP. De AP, een Asus AC-66U in AP-modus, die met een ethernet-kabel verbonden is met mijn router. Dan de host, aangesloten via ethernet-kabel aan de router en maakt gebruikt van een static IPv6 adres.
De host pingen vanaf mijn Macbook Pro werkt zonder enige problemen. Echter, na enige tijd stopt dit plots met werken en merk ik op dat de neighbor discovery (incomplete) aangeeft als ik volgend commando uitvoer: ndp -an. Dit betekend dus dat de neighbor discovery faalt, wat dan ook veroorzaakt dat mijn Macbook Pro de host niet meer kan bereiken. Ik heb op alle drie mijn apparaten tcpdump -n icmp6 uitgevoerd, wat mij meer informatie geeft van wat elk apparaat doet en ziet. Hier merk ik op dat mijn Macbook Pro wel degelijk een neighbor solicitation uitvoert naar mijn host. Deze solicitation is ook te zien op de AP en op de host zelf. De host stuurt hierbij een neighbor advertisement terug, maar deze is niet meer te zien op de AP of de Macbook Pro.
Het is duidelijk dat er ergens iets mis gaat bij het terug sturen van zijn advertisement. Wat vreemd is, is dat dit pas gebeurd na enige tijd dat de server online is. Dit probleem lijkt zich tot nog toe niet voor te doen bij andere IPv6 LAN apparaten, die blijven gewoon pingable. Nog een vreemd iets, is dat als ik de host ping op zijn IPv4 adres, de neighbor advertisement plots terug aan komt op de Macbook Pro, en dan lijkt alles weer even te werken.
Ik ben ten einde raad, heb al tal van fora mijn probleem gepost, maar niemand kan mij helpen of weet genoeg over IPv6 in samenwerking met een bridge. Indien meer informatie nodig/gewenst dan laat je het maar weten.