Itse en ole dnsmasqia käyttänyt IPv6:n kanssa, mutta netistä löytyi yhden norjalaisen toteutus:
Using dnsmasq for dhcpv6
Tuo dnsmasqin dhcp-range optio pitää vääntää huolella man-sivun kanssa näköjään.
Jutun juoni näyttäisi olevan se, että ensin haet itsellesi prefixin (keinolla/välineellä millä hyvänsä) ulkolinjan verkkoliitäntään, ja sitten voi määritellä DHCPv6:lla määriteltävän osoitesarjan sen perusteella käyttämällä constructor:<ulkolinjan_liitäntä> parametria dhcp-range optiossa. Tällöin dnsmasq katsoo itse ulkolinjan liitännän saaman osoitteen perusteella mikä prefixin pitää olla, ja muodostaa sen perusteella (oletuksena /64-prefixin) IPv6-segmentin. Tässä tapauksessa voi joko määrittää näin määräytyvän prefixin sisällä DHCPv6:lla jaettavan osoitesarjan alku- ja loppupäät:
Koodi:
dhcp-range=::1,::400,constructor:eth0
...tai sitten (vain SLAACia ja/tai tilatonta DHCPv6:ta käytettäessä) sallia kaikki osoitteet prefixin sisällä:
Koodi:
dhcp-range=::,constructor:eth0
Tuohon loppuun pitää vielä lisätä pilkku ja haluttu dnsmasqin IPv6-toimintatila. Koska tuskin haluat harrastaa mobile-IPv6:ta, kysymykseen tulevat lähinnä vaihtoehdot
ra-only, slaac, ra-names, ra-stateless.
"ra-only" tarkoittaisi että dnsmasq hoitaa vain radvd:n tehtävää tälle segmentille. DHCPv6 ei ole käytössä eikä anneta lupaa SLAACin käyttöön. Tämän kanssa pitäisi hoitaa itse osoitteitten jakelu jotenkin muuten, eli tämä jättää homman puolitiehen.
"slaac" antaa route advertisementeissa luvan SLAACin käyttöön, ja myös DHCPv6 on päällä. Tällöin IPv6-asiakaskone voi saada yhtä aikaa kaksi julkista IP-osoitetta: yhden SLAACin perusteella ja toisen DHCPv6:n kautta.
"ra-stateless" antaa osoitteen määrittyä SLAACilla, ja jakelee lisätietoja (kuten IPv6-DNS palvelimen osoite ja muut lisätiedot) DHCPv6:n "tilattomalla" versiolla, eli asiakaskoneitten julkiset IPv6-osoitteet ovat SLAACin mukaiset: osoitteen ensimmäiset 8 tavua prefixin mukaan ja viimeiset 8 verkkokortin MAC-osoitteesta hiukan muokattuna.
Näiden lisänä voi käyttää vielä "ra-names" lisäoptiota, joka heittäytyy ovelaksi: jos asiakaskone käyttää pelkkää SLAACia, sen ei tarvitse välttämättä asioida DHCPv6-palvelimen kanssa ollenkaan, jolloin dnsmasq ei välttämättä missään vaiheessa saa tietää koko asiakaskoneen olemassaolosta.
Mutta jos asiakaskone lisäksi hakee perinteisen IPv4-osoitteen perinteisellä DHCP:llä ja "ra-names" optio on käytössä, dnsmasq katsoo IPv4 DHCP-pyynnössä esitetyn MAC-osoitteen ja IPv6-pingaa sen pohjalta muodostettua SLAAC IPv6-osoitetta. Jos sieltä tulee vastaus, dnsmasq toteuttaa IPv4 DHCP:llä pyydetyn/määrätyn DNS-nimen myös SLAAC-osoitteelle IPv6-puolelle AAAA-tietueena kaupan päälle.
Jos asiakaskone käyttää IPv6 privacy extensionia (eli vaihtelee IPv6-osoitettaan annetun prefixin sisällä), ra-names ei tietenkään toimi. Ainakin Windows 10 toimii oletuksena näin: jos haluat sen pois päältä, tästä löytyy loitsut siihen:
Disable IPv6 Privacy Extension in Windows : BinaryLane
Toinen tapaus jossa "ra-names" ei toimi on se että dnsmasq-kone ei ole suoraan kytköksissä verkkosegmenttiin jonne IPv6-osoitteita pitäisi jaella, vaan välissä on DHCP-relay. IPv6-kykyiset asiakaskoneet eivät välttämättä käytä DHCP-asiakastunnisteena MAC-osoitetta, vaan niillä voi olla erillinen DHCP client ID, jolla ei tarvitse olla mitään tekemistä MAC-osoitteen kanssa. Tämä on mahdollista myös IPv4-puolella, joten DHCP-relayn kautta tulleessa pyynnössä ei välttämättä ole mukana MAC-osoitetta lainkaan. Tällöin dnsmasq ei voi tietää mille SLAAC-osoitteelle DNS AAAA-tietue pitäisi luoda. Suoraan kytketyssä verkossa dnsmasq voi aina katsoa alkuperäisen DHCP-paketin Ethernet-osoitetiedoista lähettäjän MAC-osoitteen.