Vraag Voorvoegsel Radvd passeert RA


Met Radvd op mijn router, krijgt mijn client-pc zoals iedereen zegt op het net "automagisch" een ipv6-adres. Is er een manier waarop ik hetzelfde voorvoegsel kan gebruiken dat wordt gepubliceerd door RADVD in de RA en dezelfde ubuntu-client fungeert als een router (door RADVD uit te voeren) met dit voorvoegsel op een andere interface? Zo ja, leg dan uit wat de beste manier is om dit te doen.


1
2018-04-13 04:52


oorsprong


Hoe is het gerelateerd aan Ubuntu? - Pilot6


antwoorden:


Nee, je kan het niet. Het is niet een tekort aan functies, maar een beperking van de IPv6-protocolspecificatie.

Dit is waarom:

Het "automagisch" waar je naar verwijst is StateLess EENdres EENjij ookConfiguration (SLAAC),. De specificatie voor SLAAC zegt dat het werkt met een 64-bits netmasker (wat betekent dat de eerste 64 bits (16 hex tekens) van het adres hetzelfde moeten zijn voor het adres dat in hetzelfde blok moet worden beschouwd en in dit netwerksegment moet worden gebruikt).

Per definitie is een router een machine die zich op minstens 2 verschillende netwerksegmenten bevindt. In feite krijgt een router de naam van het feit dat het verkeer tussen de twee segmenten routeert.

(Het "segment" waar ik het hier over heb, is een verzameling switch (es) die direct op elkaar zijn aangesloten (zonder tussenliggende routers) en de pc en andere "dead end" -apparaten die op die switches zijn aangesloten.)

Wanneer een genetwerkt apparaat (pc, server, enz.) Verkeer naar een adres wil verzenden, moet het beslissen of het adres dat het wil bereiken, direct bereikbaar is (op hetzelfde segment) of niet (niet in hetzelfde segment, en daarom moet het ga door een router om bij het juiste segment te komen). Om dit te doen, kijkt de computer naar het geconfigureerde netmasker. Een netmasker vertelt de computer simpelweg dat als het adres dat het wil bereiken dezelfde eerste X-bits gemeen hebben met het eigen adres van de computer, het adres zich in hetzelfde segment bevindt en de computer rechtstreeks contact moet opnemen met het adres (met behulp van ICMPv6-buurdetectie protocol). Als de eerste X-bits niet gemeenschappelijk zijn, is het adres onderdeel van een ander blok met adressen en op een ander segment, waardoor het verkeer door een router moet worden verzonden om bij het juiste segment te komen.

Met de SLAAC die op één interface van uw Ubuntu-machine gebeurt, wordt het netmasker gedefinieerd als zijnde 64 bits volgens de protocolspecificatie. Er is geen manier om een ​​kleiner deel van dat / 64 netmaskerblok te claimen en het op een andere interface te gebruiken en te segmenteren met SLAAC, om twee redenen. Ten eerste vereist SLAAC een 64-bits netmasker. Als u een kleiner blok uit een 64-bits netmaskblok zou snijden, zou het kleinere blok van nature geen 64-bits netmaskerblok zijn, omdat een groter netmasker een kleiner blok betekent. (Een 65-bits netmaskerblok is bijvoorbeeld half zo groot als een 64-bits netmaskerblok). Ten tweede verwachten alle andere machines op het netwerk die op dit moment het 64 bit netmaskerblok hebben geadverteerd met SLAAC de geheel blokkeren om direct in dat segment bereikbaar te zijn en verwacht niet dat je door je router moet gaan om een ​​deel van dat blok te bereiken.

Nu is er een manier om dit te omzeilen, maar niet door je Ubuntu-machine die als een router fungeert. U kunt poorten op een Ubuntu-machine configureren om als switch te fungeren en op transparante wijze verkeer tussen de poorten door te geven zonder deze te wijzigen. Daarbij krijgt uw machine een nieuwe interface die werkt alsof deze was verbonden met een derde poort op deze virtuele switch. Op die manier kunt u elke gewenste configuratie (inclusief SLAAC) naar uw Ubuntu-machine krijgen en netwerktoegang verlenen, terwijl het verkeer tussen de twee fysieke interfaces op uw machine ongemoeid blijft. Dit maakt het zo dat uw machine en de twee netwerken op zijn fysieke interface allemaal hetzelfde segment worden (omdat uw machine het werk van een switch doet).

Om dit te doen, wil je een brug opzetten. U wilt de bridge-utils pakket. U wilt vervolgens alle adressen / configuraties uit uw huidige fysieke interface verwijderen. Dan wil je doen:

brctl addbr br0
brctl addif br0 intefacename1
brctl addif br0 intefacename2
ifconfig br0 up
ifconfig intefacename1 up
ifconfig intefacename2 up

en voeg vervolgens elke gewenste configuratie op de fysieke interface toe aan de nieuwe interface br0. Misschien wil je eens een kijkje nemen https://wiki.debian.org/BridgeNetworkConnections en https://wiki.debian.org/NetworkConfiguration#Bridging voor meer details (vooral hoe de configuratie kan worden toegepast bij het opnieuw opstarten in / etc / network / interfaces).


0
2018-04-24 18:53