Wie kann ich zwischen VLAN-Brücken MASQUERADE

Wie kann ich zwischen VLAN-Brücken MASQUERADE

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 eth0und zwei Brücken erstellt, br-vlan20und 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 eth0Verbindung 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 zonevon networkin der Firewall interfaceden Namen von in der networkKonfigurationsdatei entsprechen. Linux-Schnittstellennamen erscheinen nur einmal in der networkKonfigurationsdatei und nirgendwo sonst. forwardingDie srcOptionen von dstund entsprechen jedoch den Optionen zonevon name.

verwandte Informationen