반응형

[리눅스 기반 브릿지] 3. 브리지 및 라우터로 사용되는  machine

참조 : https://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section3

 

ebtables/iptables interaction on a Linux-based bridge

ebtables/iptables interaction on a Linux-based bridge 1. Introduction This document describes how iptables and ebtables filtering tables interact on a Linux-based bridge. Getting a bridging firewall on a 2.4.x kernel consists of patching the kernel source

ebtables.netfilter.org

IP 코드가 통과되는 부분입니다.

그림 3a. IP 코드 관문

다음은 iptables 패킷 탐색 방식입니다.

그림 3b. 라우팅 테이블(iptables) 탐색 프로세스

iptables NAT OUTPUT 체인은 라우팅 결정 후에 위치합니다. 이 부분은  DNAT에 대해 너무 늦습니다. IP 패킷이 DNAT된 경우 경로를 다시 지정하여 해결됩니다. 이것은 Linux 커널의 표준 동작입니다.

 

그림 3a와 3b는 iptables 체인이 IP 후크에 연결된 위치를 명확하게 보여줍니다. 브릿지 코드와 netfilter가 커널에서 활성화되면 iptables 체인도 브리징 코드의 후크에 연결됩니다. 그러나 이것이 더 이상 표준 IP 코드 후크에 연결되지 않는다는 의미는 아닙니다. 브리징 코드와 접촉하는 IP 패킷의 경우 br-nf 코드는 iptables 체인이 통과할 네트워크 코드의 위치를 ​​결정합니다. 분명히 동일한 패킷이 체인을 두 번 통과하지 않는다는 것이 보장됩니다. 브리지 코드와 접촉하지 않는 모든 패킷은 그림 3b와 같이 표준 방식으로 iptables 체인을 통과합니다.

단일 IP 패킷/프레임이 NAT PREROUTING, FILTER INPUT, NAT OUTPUT, FILTER OUTPUT 및 NAT POSTROUTING ebtables 체인을 통과하는 것을 볼 수 있습니다.

 

이것은 브리지가 라우터로도 사용될 때 발생할 수 있습니다. 해당 IP 패킷을 포함하는 이더넷 프레임은 브리지의 대상 MAC 주소를 가지지만 목적지 IP 주소는 브리지의 주소가 아닙니다. iptables 체인을 포함하여 다음은 IP 패킷이 브리지/라우터를 통해 실행되는 방식입니다.

 

그림 3. 브리지/라우터는 패킷을 브리지 인터페이스로 라우팅함

이것은 라우팅 결정이 패킷을 브리지 인터페이스로 보낸다고 가정합니다. 라우팅 결정이 패킷을 브릿지가 아닌 인터페이스로 보내는 경우 다음과 같은 현상이 발생합니다.

그림 3d. 브리지/라우터는 패킷을 브리지가 아닌 인터페이스로 라우팅

그림 3c와 3d는 IP 패킷이 브리지 포트에 도착했다고 가정합니다. 여기에서 분명히 "비대칭"인 것은 iptables PREROUTING 체인이 ebtables INPUT 체인보다 먼저 탐색되지만 기능을 희생하지 않고는 도움이 될 수 없다는 것입니다. 

반응형

+ Recent posts