VLANブリッジ間でマスカレードするにはどうすればいいですか

VLANブリッジ間でマスカレードするにはどうすればいいですか

単一の物理インターフェースを持つ openwrt ベースのシステムに 2 つの VLAN ブリッジを作成しました。

*) 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)

私は Ubuntu マシンで DHCP サーバーを実行しています。

VLAN 間の通信を開くために、VLAN 間でルーティングを試みていますが、成功しませんでした。

私がやったことは

 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

そして、転送ルールで/etc/config/firewallを更新してみました

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'

ここで何が間違っているのでしょうか? ルーターの概念については初心者です。

編集:

私のセットアップはこんな感じです

             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       |
                    |____________________________|

答え1

通常の OpenWRT ルーターは、CPU にイーサネット インターフェイスを 1 つ備えており、内部で「スマート スイッチ」チップに接続されています。スイッチの他のポートはジャックとして外部で使用可能で、1 つは通常「WAN」、その他は「LAN」とラベル付けされています。スイッチは次のように構成されています。CPU スイッチ リンクはトランク (すべての VLAN にタグが付けられています) で、1 つのポート (「WAN」) は 1 つの VLAN のタグなしになり、残りのポート (「LAN」) は他の VLAN のタグなしになります。これは基本的に標準的な「ルーター オン ア スティック」設定であり、スイッチはポート数の少ないルーターの単純なポート エクステンダーとして機能します。

残りは、単一のイーサネット インターフェイスを持つ Linux コンピュータの場合とまったく同じです。スイッチ設定を補完するために、VLAN サブインターフェイスに分割されます。次に、これらのサブインターフェイスは機能に応じて構成されます。LAN は WLAN インターフェイスを使用してブリッジされ、WAN はブリッジなしで構成されます。

この設定は次のようになります (eth0 はルーターの唯一のインターフェースです)。

  • eth0には2つのVLANサブインターフェース、.1と.2があります。
  • eth0.1とwlan0とwlan1はbr-lanに結合され、IPアドレスが割り当てられ、LANゾーンに配置されます。
  • eth0.2にもアドレスが割り当てられています。

本当にブリッジが必要な場合は、次の方法を試してください。

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'

これは次のように変換されます: から 2 つの VLAN サブインターフェースが作成されeth0、2 つのブリッジが作成されますbr-vlan20br-vlan2各 VLAN サブインターフェースは、独自のブリッジに参加します。その後、ブリッジに IP が割り当てられます。

ブリッジが必要ない場合 (他のインターフェースを追加する予定がない場合など) は、option type 'bridge'定義から行を削除するだけです。

eth0注意してください。この場合、リンクの反対側のデバイスは、タグ付けされたフレームを処理できるように準備する必要があります。

この場合のファイアウォールの設定は次のようになります。

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'

ファイアウォールの のオプションが、構成ファイルの の名前に対応しているzoneことに注意してください。Linux インターフェイス名は、構成ファイルに 1 回だけ表示され、他の場所には表示されません。ただし、とのオプションは、のオプションに対応します。networkinterfacenetworknetworkforwardingsrcdstzonename

関連情報