
Ich habe zwei VLAN-Brücken in einem OpenWRT-basierten System erstellt, das über eine einzelne physische Schnittstelle verfügt.
*) eth0->lan->br-lan
*) br-lan->br-lan.2(VLAN INTF)->br-vlan2(BRIDGE INTF)
*) br-lan->br-lan.20(VLAN INTF)->br-vlan20(BRIDGE INTF)
Ich betreibe einen DHCP-Server auf meiner Ubuntu-Maschine.
Ich versuche, zwischen den VLANs zu routen, um die Inter-VLAN-Kommunikation zu öffnen. Aber es gelingt mir nicht.
was ich getan habe ist
iptables -t nat -I POSTROUTING -o br-vlan2 -j MASQUERADE
iptables -A FORWARD -i br-vlan2 -o br-vlan20 -mstate --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i br-vlan20 -o br-vlan2 -j
ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Und ich habe versucht, /etc/config/firewall mit Weiterleitungsregeln zu aktualisieren
config zone
option name 'vlan2'
list network 'br-lan.2'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'vlan20'
list network 'br-lan.20'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config forwarding
option src 'br-lan.2'
option dest 'br-lan.20'
config forwarding
option src 'br-lan.20'
option dest 'br-lan.2'
Was ist hier falsch? Und ich bin ein Anfänger in Sachen Router-Konzepte.
Bearbeiten:
So sieht mein Setup aus
IP: 192.168.2.10 192.168.20.10
GW: 192.168.2.1 192.168.20.1
|client 1| |client 2|
^ ^
____|______________|________
| br-vlan2 | br-vlan20 |
_____________ |192.168.2.2 | 192.168.20.2 |
| | |_____________|______________|
| 192.168.1.1 | | |br-lan IP: 192.168.1.2|
| router |---->|eth0| GW: 192.168.1.1 |
|_____________| |____|_______________________|
| x86 machine as AP |
|____________________________|
Antwort1
Der normale OpenWRT-Router hat normalerweise eine einzelne Ethernet-Schnittstelle in der CPU, die intern mit einem „Smart Switch“-Chip verbunden ist. Andere Ports des Switches werden extern als Buchsen bereitgestellt, einer ist normalerweise als „WAN“ und der andere als „LAN“ gekennzeichnet. Der Switch ist folgendermaßen konfiguriert: Die CPU-Switch-Verbindung ist Trunk (alle VLANs sind markiert), ein Port („WAN“) wird zu einem VLAN ohne Markierung gemacht und die restlichen Ports („LAN“) werden zu anderen VLANs ohne Markierung gemacht. Dies ist im Wesentlichen ein Standard-„Router-on-a-Stick“-Setup, bei dem der Switch als einfacher Port-Extender für einen Router mit geringer Portanzahl fungiert.
Der Rest sieht genauso aus wie in Ihrem Fall, dem Linux-Computer, der über eine einzelne Ethernet-Schnittstelle verfügt. Als Ergänzung zum Switch-Setup wird es in VLAN-Subschnittstellen aufgeteilt. Anschließend werden diese Subschnittstellen entsprechend ihrer Funktion konfiguriert: Das LAN wird in eine Bridge mit WLAN-Schnittstelle(n) eingefügt, während das WAN ohne Bridges konfiguriert wird.
Dieses Setup sieht wie folgt aus (eth0 ist die einzige Schnittstelle des Routers):
- eth0 hat zwei VLAN-Subschnittstellen, .1 und .2
- eth0.1 und wlan0 und wlan1 werden zu br-lan kombiniert, dem eine IP-Adresse zugewiesen und es in die LAN-Zone eingefügt wird
- eth0.2 hat ebenfalls eine Adresse zugewiesen.
Falls Sie unbedingt Brücken benötigen, gehen Sie folgendermaßen vor:
config interface 'vlan20'
option ifname 'eth0.20'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.20.1'
config interface 'vlan2'
option ifname 'eth0.2'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.2.1'
Dies würde folgendermaßen übersetzt werden: Es werden zwei VLAN-Subschnittstellen aus erstellt eth0
und zwei Brücken erstellt, br-vlan20
und br-vlan2
. Jede VLAN-Subschnittstelle nimmt an ihrer eigenen Brücke teil. Den Brücken werden dann IPs zugewiesen.
Wenn Sie keine Brücke benötigen (z. B. wenn Sie nicht planen, weitere Schnittstellen hinzuzufügen), entfernen Sie einfach option type 'bridge'
die Zeile aus der Definition.
Achtung, das Gerät auf der anderen Seite der eth0
Verbindung muss in diesem Fall auf die Verarbeitung getaggter Frames vorbereitet sein!
Das Firewall-Setup für diesen Fall könnte folgendermaßen aussehen:
config zone
option name 'zone20'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network 'vlan20'
config zone
option name 'zone2'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option masq '1'
option network 'vlan2'
config forwarding
option src 'zone20'
option dest 'zone2'
config forwarding
option src 'zone2'
option dest 'zone20'
Beachten Sie, dass die Optionen zone
von network
in der Firewall interface
den Namen von in der network
Konfigurationsdatei entsprechen. Linux-Schnittstellennamen erscheinen nur einmal in der network
Konfigurationsdatei und nirgendwo sonst. forwarding
Die src
Optionen von dst
und entsprechen jedoch den Optionen zone
von name
.