브리지에 인터페이스를 추가할 수 없는 이유는 무엇입니까?

브리지에 인터페이스를 추가할 수 없는 이유는 무엇입니까?

Linux 브리지에 대한 내 정신 모델이 잘못되었습니다.

저는 항상 브리지를 단순한 비관리형 스위치와 유사하다고 생각했습니다. 이더넷 케이블을 연결하고 해당 포트에서 통신하는 MAC 주소를 기반으로 한 포트에서 다른 포트로 데이터를 복사하는 것입니다. 특히: 스위치 자체아니요IP 주소가 있습니다.

그래서 나는 간단히 할 수 있다고 생각했습니다.

brctl addbr mybr
brctl addif mybr eth0

eth0에는 IP 주소가 있습니다.

하지만 작동시킬 수는 없습니다. eth0과 관련된 모든 IP 주소는 무시되는 것 같습니다.

대신에 나는 이렇게 할 수 있습니다:

    default_interface=$(ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)')
    dif=$default_interface
    gw=$(ip -4 route ls | grep default | grep -Po '(?<=via )(\S+)')
    dif_ip=$(ip -4 route ls | grep default | grep -Po '(?<=src )(\S+)')
    echo Add bridge
    sudo brctl addbr mybr
    # $dif must be up, but with no ip addr
    sudo ip addr flush dev $dif
    sudo brctl addif mybr $dif
    sudo ifconfig mybr $dif_ip
    sudo route add -net 0.0.0.0 gw $gw

이렇게 하면 IP 주소와 경로가 eth0에서 브리지로 이동됩니다.

알겠어요저것나는 단순히 할 수 없습니다: brctl addif eth0내가 이해하지 못하는 것은.

관련 정보