저는 Linux 오버레이 네트워킹을 이해하려고 노력하고 있습니다. 제가 아는 한, 브리지는 L2 스위치와 L3 라우터의 기능을 결합한 것입니다. ARP 테이블을 사용하여IP -> MAC 매핑및 FDBMAC -> iface 매핑. 그러나 이 테이블은 정확히 어디에 기록되며 누가 "소유/관리"합니까?
예를 들어 Linux를 만든다고 가정해 보겠습니다.다리안에네트워크 네임스페이스2개를 첨부하고Veth 인터페이스그것에.
- 각 veth 인터페이스는 자체 ARP 및 FDB 테이블을 유지합니까?
- 아니면 브리지가 모든 인터페이스에 대한 테이블을 유지 관리합니까?
- 아니면 관리되는 테이블의 네임스페이스인가요?
답변1
아니요, (Linux 커널) 브리지는 L2 스위치와 L3 라우터의 기능을 결합하지 않습니다.
브리지는 스위치와 마찬가지로 레이어 2에서만 작동하며 특정 MAC 주소가 특정 포트 뒤에 있다는 것이 알려진 경우 해당 MAC 주소에 대한 L2 대상이 있는 패킷은 해당 포트를 통해서만 나가도록 최적화되어 있습니다. 모든 포트로 전송되는 대신. 이것이 바로 FDB의 목적입니다. 그러나 많은 하드웨어 스위치는 동일한 최적화를 사용합니다.
Linux 브리지는 두 가지 측면에서 하드웨어 스위치와 다릅니다. 브리지에는 다른 네트워크 인터페이스(일반적으로 물리적 이더넷 인터페이스)를 사용하여 포트가 할당됩니다. 이 경우 L3 기능이 손실되고 할당된 모든 IP 주소가 무시됩니다. 또한 br0
물리적 인터페이스를 통해 컴퓨터에 직접 연결되는 하드웨어 스위치의 포트 역할을 하는 특수 네트워크 인터페이스(브릿지 자체의 인터페이스 등)가 있습니다 .
ARP 테이블은 이와 아무 관련이 없습니다.
네임스페이스는 네트워킹과 관련된 모든 것을 격리하므로 각 네임스페이스에는 자체 ARP 테이블, 자체 네트워크 인터페이스 목록, 잠재적인 브리지 등이 있습니다.
(브릿지가 선택한 패킷을 L3으로 보내고 iptables
브리지와 라우터의 조합인 "브리지"를 형성하는 방법이 있지만 이 기능을 활성화해야 하며 브리지 자체가 제대로 작동하는 기능은 없습니다.)