eth0
물리적 이더넷 인터페이스와 OpenVPN 가상 인터페이스 사이에 브리지를 설정했습니다 tap0
. 브리지에는 IP 주소가 있으며 모든 인터페이스에서 해당 IP 주소로 시스템에 접속할 수 있습니다. 그러나 인터페이스 간 브리지에서 트래픽이 흐르도록 구성하는 방법을 모르겠습니다.
브리징을 설정해야 합니까 net.ipv4.ip_forward = 1
, 아니면 라우팅을 설정해야 합니까?
FORWARD
체인을 어떻게 구성해야 합니까 iptables
? 이상적으로는 컴퓨터가 네트워크 내에서 종료 지점으로 사용될 수 없도록 인터페이스 간의 트래픽만 전달되어야 합니다.
답변1
인터페이스가 다른 장치에 대한 NAT 역할을 하지 않는 한 이를 설정할 필요가 없습니다 ip_forward = 1
. 브리지로 설정한 경우에는 그렇지 않습니다.
예
이것은 브리지 장치, br0
물리적 이더넷 장치 eth0
및 KVM 게스트용 모든 인터페이스를 갖춘 내 KVM 서버 설정입니다.
$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.bcaec123c1e2 no eth0
vnet0
vnet1
vnet2
vnet3
vnet4
vnet5
virbr0 8000.52540003f256 yes virbr0-nic
그럼 무엇이 잘못됐나요?
설명에 따르면 한 인터페이스에서 다른 인터페이스로 패킷을 라우팅하는 라우팅 규칙이 없는 것 같습니다.
호스트 및 브리지$ ip route show
192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.200
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev br0 scope link metric 1008
default via 192.168.1.1 dev br0
브리지의 구성원인 NIC가 있는 호스트
$ ip route show
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.218
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.1 dev eth0
tap0
그러나 장치와 물리적 이더넷 장치를 eth0
브리지에 혼합하는 데 문제가 발생할 수 있습니다 .
교량의 탭 장비
TAP 장치를 사용하는 경우 tap0
이러한 패킷이 브리지에서 앞뒤로 흐르도록 방화벽을 구성해야 할 수도 있습니다.
이제 새로 생성된 tap0 및 br0 인터페이스에서 패킷이 자유롭게 흐르도록 Linux 방화벽을 설정합니다.
$ sudo iptables -A INPUT -i tap0 -j ACCEPT
$ sudo iptables -A INPUT -i br0 -j ACCEPT
$ sudo iptables -A FORWARD -i br0 -j ACCEPT