리눅스 브릿지

hi2li·2026년 4월 12일

개념


브릿지 : 여러 네트워크 인터페이스를 하나의 L2네트워크로 묶는 장치 및 소프트웨어

리눅스 브릿지 : 커널에 소프트웨어적으로 내장된 L2 스위치 (브릿지를 리눅스에서 구현한 것)

br0같은 가상의 인터페이스를 만들어서 여러개의 네트워크 인터페이스를 하나의 L2 도메인으로 연결

→ LAN을 구성하는 것 처럼 여러개의 인터페이스를 하나의 L2 네트워크로(브로드캐스트 도메인으로) 연결하는 것이다.

결국 브릿지는 스위치와 동일한 역할을 하게 된다.



동작원리

브릿지는 MAC주소 테이블 (FDB)를 유지한다

패킷이 들어오면 출발지 MAC주소를 학습하고, 목적지 MAC주소를 기준으로 어느 인터페이스로 전달할지 결정한다.
즉, 동작 방식 자체가 스위치와 거의 동일하다.




왜 L2 스위치인가 ?

중요한 것은 bridge는 MAC기준이다(L2) → 아이피 기준이 아님. .

브릿지는 IP 주소를 보지 않는다.
패킷 내부의 IP주소가 아니라 ethernet Header의 MAC주소를 기준으로 동작한다.

따라서 브릿지는 L2 장비이며 라우팅 기능은 수행하지 않는다.


브로드캐스트 도메인

브릿지를 통해 연결되면 스위치가 하는 역할과 동일하게 같은 브로드캐스트 도메인을 가지게 한다.

브로드캐스트 프레임은 브릿지에 연결된 모든 포트로 전달된다. 따라서 브릿지에 연결된 인터페이스들은 동일한 브로드캐스트 도메인에 속하게 된다.

이말은 즉슨 ARP가 가능해져, mac주소를 알아낼 수 있어서 직접 통신이 가능하다.




NAT과의 차이

한편, 같은 호스트 내부에서의 컨테이너들은 기본적으로 커널을 통해서 통신을 할 수 있게 되는데,

다른 네트워크에 있는 컨테이너들과는 외부 네트워크로 나가야 통신이 가능해진다.

물론 NAT을 사용하면 브릿지가 없어도 외부 통신이 가능하긴 하지만 실제로 LAN에 독립적인 물리장비처럼 붙는 것은 불가능하다.


구조

[ VM1 ] ─ veth ─┐
                ├─ br0 ─ eth0 ─ 외부 네트워크
[ VM2 ] ─ veth ─┘



Docker와 리눅스 브릿지

Docker의 기본 bridge 네트워크 docker0도 Linux Bridge를 기반으로 동작한다.

컨테이너는 Veth를 통해 docker0에 연결되며, docker0 은 가상 스위치 역할을 수행한다.



결론

인터페이스를 묶어서 하나의 L2 네트워크를 만드는 기술

리눅스에서  br0 = 브릿지 자체를 나타내는 “인터페이스 객체” 이다.

profile
Easy come , Easy go

0개의 댓글