2개의 TAP 인터페이스 사이의 브리지에 IP 주소가 필요합니까?

2개의 TAP 인터페이스 사이의 브리지에 IP 주소가 필요합니까?

2개의 서로 다른 탭 인터페이스(tap0 및 tap1)와 해당 인터페이스를 연결하는 브리지를 갖도록 컴퓨터에 openvpn을 설정하려고 합니다. openvpn은 각 TAP 인터페이스에 대한 서버-브리지 구성으로 설정됩니다. 아이디어는 tap0의 클라이언트가 tap1의 클라이언트와 대화할 수 있고 그 반대의 경우도 가능하다는 것입니다.

브리지에는 물리적 NIC가 포함되지 않으며 브리지 인터페이스는 IP/넷마스크/브로드캐스트 없이 설정됩니다. 방금 "ifconfig brX up"이라는 단일 메시지가 나왔습니다.

두 클라이언트가 모두 openvpn 서버에 연결되어 있고 각각 위에서 언급한 자체 탭 인터페이스에 연결되어 있을 때 두 클라이언트 간에 ping을 수행할 수 있지만 브리지 인터페이스를 tcpdump하려고 할 때 트래픽이 표시되지 않습니다.

나는 몇 가지 사항에 대해 약간 혼란스러워합니다.

  1. 브리지 인터페이스에 IP를 구성해야 합니까? 가상 인터페이스가 서로 대화하도록 만드는 것이 전부이기 때문에 그 이유를 잘 모르겠습니다.

  2. 브리지 인터페이스에 할당된 IP/넷마스크/브로드캐스트가 없다는 사실이 해당 인터페이스를 tcpdumping할 때 브리지 인터페이스에서 ping 트래픽을 볼 수 없는 이유입니까?

  3. 2번에 대한 대답이 '예'라면 iptables를 사용하여 해당 인터페이스에서 트래픽을 차단/허용하는 것이 불가능하다고 가정합니다. 맞습니까? 그렇다면 그러한 인터페이스에서 iptables로 수행할 작업을 수행할 수 있는 다른 방법이 있습니까?

답변1

브리지 인터페이스에 IP를 구성해야 합니까? 가상 인터페이스가 서로 대화하도록 만드는 것이 전부이기 때문에 그 이유를 잘 모르겠습니다.

아니요, 순수 브리지는 이더넷 수준에서만 작동하며 IP 헤더도 확인하지 않습니다. br0에 IP 주소를 할당하면 실제로 해당 브리지에 연결된 호스트 OS에 IP 주소가 할당됩니다.

tap그러나 실제로 인터페이스를 다음과 같이 추가하는 것에 대해서는 아무 말도하지 않았습니다.브리지 포트. 관리하는 포트를 브리지에 명시적으로 알려야 합니다.

  • brctl addif br0 tap0

  • ip link set tap0 master br0

브리지 인터페이스에 할당된 IP/넷마스크/브로드캐스트가 없다는 사실이 해당 인터페이스를 tcpdumping할 때 브리지 인터페이스에서 ping 트래픽을 볼 수 없는 이유입니까?

아니요.

그러나 브리지가 여전히 "학습" 모드에 있을 가능성이 있습니다. 여전히 기본값은 30초입니다. 를 사용하여 확인하세요 brctl showstp br0. 포트가 브리지에 추가되지 않았을 수도 있습니다(위 참조). 포트 인터페이스 자체가 여전히 다운되어 있을 수 있습니다.

(그리고 신이시여.사람들은 왜 브로드캐스트 주소를 설정해야 한다고 생각하는 걸까요?실제로 OS는 이미 IP | ~넷마스크. 브로드캐스트 주소를 수동으로 구성하는 것은 거의 유용하지 않습니다. 단지 실수로 주소를 얻는 것이 더 쉬워질 뿐입니다.잘못된.)

2번에 대한 대답이 '예'라면 iptables를 사용하여 해당 인터페이스에서 트래픽을 차단/허용하는 것이 불가능하다고 가정합니다. 맞습니까? 그렇다면 그러한 인터페이스에서 iptables로 수행할 작업을 수행할 수 있는 다른 방법이 있습니까?

예, ebtables트래픽을 필터링해야 합니다. IP 방화벽을 통과하지 않습니다.

(그러나 항상 그런 것은 아닌 것 같습니다. 예를 들어 Untangle 방화벽은 크로스 브리드 라우터/브리지 모드에서 작동하는 것 같아서 다소 혼란스럽습니다.)

관련 정보