로컬 네트워크와 인터넷 사이에 작동하는 연결을 설정하려고 합니다. 먼저 eth0(LAN)과 eth1(인터넷) 사이에 브리지(br0, 다른 인터페이스에는 없는 IP 주소가 있음)를 설정하고 LAN에서 로컬 IP의 소스 IP를 가장하기 위해 iptables에 nat 규칙을 만들었습니다. . 모든 것이 잘 작동하며 서브넷 192.168.1.0에서 인터넷에 액세스할 수 있습니다.
이제 100과 200이라는 두 개의 VLAN을 생성하고 싶습니다. vconfig를 사용하여 eth0.100과 eth0.200을 생성하려고 시도했지만 인터넷에 연결하는 방법을 알 수 없습니다. 내 로컬 LAN의 패킷은 VLAN ID 100/200 태그가 지정되어 도착했고 트래픽은 eth1을 통과합니다. 하지만 패킷이 올바른 eth0.x로 돌아가도록 하려면 어떻게 해야 합니까?
VLAN 100용과 200용으로 하나씩 두 개의 브리지를 만들어 eth1에 연결하는 방법을 생각했습니다. 하지만 인터넷에서 수신한 패킷을 올바른 브리지에 도착하도록 어떻게 라우팅합니까?
현재 설정:
eth0 <--> br0 <--> eth1
제안:
1.
eth0.100 <--> br100 <--> eth1
eth0.200 <--> br200 <--> eth1
2.
eth0.100 & eth0.200 <--> br0 <--> eth1
답변1
LAN에서 WAN으로 트래픽을 라우팅해야 합니다.
이는 브리지가 아닌 라우터에 의해 수행되므로 다음과 같아야 합니다.
eth0 (192.168.1.0/24) <==> eth1 (공용 인터넷)
VLAN 100 및 200의 경우 트래픽을 올바른 VLAN으로 라우팅하는 방법은 무엇입니까? 각 VLAN에 대해 서로 다른 서브넷을 생성하면 호스트가 어떤 VLAN이 올바른 출력 인터페이스인지 알 수 있으므로 이제 다음과 같이 표시됩니다.
eth0.100 (192.168.100.0/24) <==> eth1 (공용 인터넷)
eth0.200 (192.168.200.0/24) <==> eth1 (공용 인터넷)
두 경우 모두 NAT를 기억하세요.
iptables -I POSTROUTING -t nat -o eth1 -j MASQUERADE