Ik denk dat er toch nog een aantal zaken door elkaar lopen.
eth0 vif 6 wordt gekoppeld aan ppp0. vif 6 zelf gebruik je zelf nooit. Je stuurt naar ppp0 en de router doet dan de rest.
wat de router doet met eth0.4 eth0.6 en eth0.7 is NIET trunking (vlan) maar IP. De VLAN houdt op in je vif, het wordt niet gebundeld (trunking).
Misschien een kort voorbeeld:
je hebt 3 apparaten op eth2 op VLAN 100,500,1000. je hebt ook 3 apparaten op VLAN 100,500,1000 op eth3.
Omdat het een router is, stroomt er nu geen verkeer. Je hebt een aantal opties die je hier toe kan passen helemaal afhankelijk van wat je wil.
Je kan eth2 en eth3 in een bridge zetten. Dat heeft hetzelfde effect alsof je eth2 en eth3 via een switch aan elkaar koppelt. vlan 2.100 kan praten met vlan3.100 etc. De router blijft blind voor deze interacties en kan ook geen enkele invloed hier op uitoefenen. Geen van de VLAN's heeft internet of kan de router bereiken.
Idealiter, als de bridge VLAN filtering heeft, maak je nu bijvoorbeeld BR0.100 aan. Nu heeft de router een interface waar het dingen mee kan. de router kan nu ip adressen, DHCP, DNS etc. aan VLAN 100 geven en eventueel ook routeren naar het internet. ondertussen gebeurt er niets met VLAN 500 en 1000!
stel je geeft 192.168.100.1/24 aan interface br0.100. Alles wat gestuurd word aan 192.168.100.x (afgezien van 1 en 255 natuurlijk) komt nu automatisch uit op VLAN 100 en wordt ook getagged als VLAN 100. De router interface (BR0.100) is echter IP. Het heeft geen concept van VLAN oid.
wat de "ip link" opdracht doet is ook exact dat:
code:
1
| ip link add link eth3 name eth3.100 type vlan id 100 |
trek pakketjes van poort 3 met vlan tag 100 de router in als IP, met als interface naam eth3.100.
Als je dit doet in bovenstaand voorbeeld (zonder verdere aanpassingen) zul je zien dat VLAN 100 niet meer werkt. je trekt namelijk vlan 100 paketten van poort 3 de router in. Die kan er vervolgens niets mee en gooit het weg. Wat je wel kan doen is ook 2.100 aanmaken en zowel 2.100 als 3.100 toevoegen aan de bridge.
Dat laatste is echter niet dezelfde oplossing als br0.100. Wat je namelijk zou zien wanneer je 500 en 1000 toevoegt is dat je op vlan 100 informatie krijgt over de machines op vlan 500 en 1000 en dat gebeurt niet als je br0.100, br 0.500 en br0.1000 hebt. (een en ander wel afhankelijk van de implementatie, linux versie, bsd versie, hardware etc.etc.)
Wat jij wil kan, afhankelijk van of ik het goed begrijp, zo eenvoudig zijn als (ik neem even aan dat vlan 777 alleen binnenkomt op eth3):
ip link 3.777 --- trek vlan 777 uit poort 3
ip 3.777 192.168.7.1/24 --- geef het iprange 192.168.7.x
iptable forward 3.777 allow ppp0 --- laat verkeer door naar internet
route 3.777 next hop ppp0 --- forceer verkeer naar internet (kan ook met filter regels)
nat postrouting, masquerade --- pas nat toe op verkeer
en dan zit vlan 777 van poort 3 direct op internet zonder dat je ergens anders heen kan. Verkeer dat terug komt (eventueel na aanpassing van je firewall natuurlijk) gaat vlan777 op via poort3.
Sorry, lang verhaal, maar ik hoop dat ik wat verwarring kan wegnemen. de kpn vlan 4,6,7 worden dus 3 ip stromen in je router. Er is geen trunk. je hangt multicast aan de vlan4 stroom, pppoe aan de vlan6 stroom en eventueel een tunnel voor telefonie aan vlan 7. Maar dat is allemaal IP, geen VLAN meer, het wordt pas weer VLAN als het je router de andere kant weer uit stroomt. Specifiek voor internet doet de ppp0 virtuele interface al het werk voor je. in principe hoef je dus nooit iets meet vlan6 van kpn te doen.
PS
Helaas is "bridge" niet beschikbaar in de Merlin image vd RT-AX88U-Pro
brctl is de voorloper van bridge, dus in sommige gevallen kun je bridge vervangen door brctl
[
Voor 2% gewijzigd door
Belgar op 15-04-2024 14:04
. Reden: PS ]