Eén TAP-server of meerdere? OpenVPN-clients op een bridge
TAP-clients delen één bridge en één serverproces, en dat betekent ook één broadcastdomein. Vergelijk gebrugd Ethernet met gerouteerde TUN voordat u kiest.
Meerdere TAP-clients vereisen niet elk een serverproces, een UDP-poort en een TAP-apparaat op de host. Eén OpenVPN-server in Ethernet-modus kan veel geauthenticeerde clients toelaten en aan één bridge koppelen, en dat is de gedocumenteerde manier om een laag-2-segment uit te breiden. Het ontwerp met één proces is wat de handleiding documenteert, en het is meestal de juiste standaard.
De echte vraag is of die clients dat segment moeten delen. Het aantal processen beantwoordt dat niet, omdat de isolatie-eigenschappen uit de topologie komen en niet uit hoeveel daemons er draaien. De rest van deze vergelijking gaat over de twee topologieën en over wat elk daarvan gemakkelijk maakt.
Twee architecturen, geen twee instellingen
Een gerouteerde TUN-implementatie geeft elke client een point-to-point-verbinding in het routeringsdomein van de server. Broadcasts stoppen bij de server, clients kunnen elkaars frames niet zien, en verkeer tussen clients moet, als het er is, expliciet worden gerouteerd en gefilterd.
Een gebrugde TAP-implementatie maakt clients lid van één Ethernet-segment. Ze zien broadcasts, kunnen elkaar met ARP vinden en zijn voor scheiding afhankelijk van bridge- en firewallbeleid in plaats van routering. Dat is nuttig wanneer de clients moeten lijken alsof ze op dezelfde switch zijn aangesloten.
De vergelijking gaat dus over wat de clients moeten bereiken, niet over prestaties. Kies eerst de laag en bepaal dan hoeveel processen die bedienen.
Wat de server-bridge-helper doet
De helper server-bridge configureert de Ethernet-modus voor meerdere clients. De adrespoelvorm ervan neemt de gateway, het netmasker en een toegewezen bereik binnen het gebrugde subnet, bijvoorbeeld een gateway op 192.168.50.1 met een poel van 192.168.50.160 tot 192.168.50.199.
Houd dat bereik buiten elke andere DHCP- of statische toewijzing. De helper deelt er adressen uit, maar coördineert niet met een andere uitdeler op hetzelfde segment, en twee overlappende poelen leveren dubbele adressen op die op willekeurige verbindingsfouten lijken. Schrijf het gereserveerde bereik in het adresplan van de locatie zodat de volgende persoon het niet hergebruikt. Een opmerking in de serverconfiguratie is een slechte vervanging voor die registratie.
Er bestaat een DHCP-proxyvorm voor implementaties waarbij een externe server adressen uitgeeft. Die heeft eigen voorwaarden, en het mengen van beide vormen levert precies het conflict op waarvoor de documentatie waarschuwt. Kies één uitdeler voor het gebrugde subnet.
Isolatie komt niet uit het aantal processen
Acht OpenVPN-processen op dezelfde onbeperkte bridge delen nog steeds één broadcastdomein. Clients kunnen over de bridge ARP voor elkaar versturen, en het aantal luisteraars veranderde daar niets aan.
Als de eis is dat groepen clients elkaar op laag 2 niet zien, heeft het ontwerp afzonderlijke bridges of VLAN-koppelingen nodig, met de toegangsregels die daarbij horen. Dat is een netwerkontwerpbeslissing, en het is dezelfde beslissing of er één serverproces of acht bij betrokken zijn. Bridge-filtering kan verkeer beperken, maar creëert geen afzonderlijke broadcastdomeinen. Behandel het als aanvulling op segmentatie, niet als vervanging.
Als de eis alleen is dat clients bepaalde IP-diensten bereiken, is een gerouteerd TUN-ontwerp meestal eenvoudiger dan bruggen plus filteren. Elke client krijgt zijn eigen verbinding, en het beleid leeft in routerings- en firewallregels in plaats van in de bridge.
Wanneer meerdere processen toch juist zijn
Afzonderlijke processen kunnen worden gerechtvaardigd door operationele behoeften: verschillende authenticatiebackends, verschillende certificaatautoriteiten, afzonderlijke upgradeprocessen of onverenigbare optiesets. Dat zijn echte redenen en ze staan los van het aantal clients.
Gebruikt u er meerdere, geef elk dan een eigen listener en apparaateigendom en stem de adresbereiken af. Twee servers die beide menen dezelfde poel op dezelfde bridge te bezitten, delen uiteindelijk hetzelfde adres uit.
Verifieer het ontwerp daarna met meerdere clients tegelijk. Controleer dat adressen uniek zijn, dat het bedoelde verkeer tussen clients werkt en dat een paar dat niet mag communiceren dat niet kan. Een geslaagde ping van één client test niets van het ontwerp voor meerdere clients.
Lees de bridge en de servermodus van de draaiende host voordat u het diagram vertrouwt. De configuratie die ertoe doet, is degene die de kernel en de daemon werkelijk hebben geladen, en dat is ook degene die een reviewer kan controleren.