VLAN 브리지 사이를 어떻게 매스커레이드할 수 있나요?

VLAN 브리지 사이를 어떻게 매스커레이드할 수 있나요?

단일 물리적 인터페이스가 있는 openwrt 기반 시스템에 두 개의 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)

우분투 시스템에서 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에 "스마트 스위치" 칩에 내부적으로 연결된 단일 이더넷 인터페이스가 있습니다. 스위치의 다른 포트는 외부에서 잭으로 사용할 수 있으며, 하나는 일반적으로 "WAN"으로 표시되고 다른 포트는 "LAN"으로 표시됩니다. 스위치는 다음과 같은 방식으로 구성됩니다. CPU 스위치 링크는 트렁크(모든 VLAN에 태그가 지정됨)이고, 한 포트("WAN")는 하나의 VLAN에 태그가 지정되지 않고 나머지 포트("LAN")는 다른 VLAN에 태그가 지정되지 않습니다. 이는 기본적으로 스위치가 포트 수가 적은 라우터를 위한 간단한 포트 확장기로 작동하는 표준 "스틱형 라우터" 설정입니다.

나머지는 단일 이더넷 인터페이스를 가진 Linux 컴퓨터의 경우와 똑같습니다. 스위치 설정을 보완하기 위해 VLAN 하위 인터페이스로 분할되었습니다. 그런 다음 해당 하위 인터페이스는 해당 기능에 따라 구성됩니다. LAN은 WLAN 인터페이스가 있는 브리지에 배치되고 WAN은 브리지 없이 구성됩니다.

이 설정은 다음과 같습니다(eth0은 라우터의 유일한 인터페이스입니다).

  • eth0에는 두 개의 VLAN 하위 인터페이스(.1 및 .2)가 있습니다.
  • eth0.1과 wlan0, wlan1을 IP 주소가 할당된 br-lan으로 합쳐서 LAN zone에 넣습니다.
  • 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 하위 인터페이스가 생성되고 eth02개의 브리지가 생성 br-vlan20됩니다 br-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 인터페이스 이름은 구성 파일에 한 번만 표시되고 다른 곳에는 표시되지 않습니다. 그러나 와 옵션은 의 옵션 에 해당합니다 .networkinterfacenetworknetworkforwardingsrcdstzonename

관련 정보