![브리지에 인터페이스를 추가할 수 없는 이유는 무엇입니까?](https://linux55.com/image/201771/%EB%B8%8C%EB%A6%AC%EC%A7%80%EC%97%90%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%A0%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
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
내가 이해하지 못하는 것은왜.