브리지 인터페이스 오류

브리지 인터페이스 오류

Debian을 VirtualBox Guest로 실행하는 데 문제가 있습니다. 브리지를 설정할 수는 있지만 로그에 수많은 오류가 넘쳐 시스템을 사용할 수 없게 됩니다. 오류 예:

11월 12일 16:30:55 jessie-gnome 커널: [737.277528] br0: 자체 주소가 eth0의 소스 주소인 패킷을 수신했습니다.

11월 12일 16:31:00 jessie-gnome 커널: [742.280085] net_ratelimit: 47185 콜백 억제

11월 12일 16:31:00 jessie-gnome 커널: [742.280088] br0: 자신의 주소를 소스 주소로 사용하여 eth1에서 패킷을 받았습니다.

11월 12일 16:31:00 jessie-gnome 커널: [742.280178] br0: 자신의 주소를 소스 주소로 사용하여 eth1에서 패킷을 수신했습니다.

11월 12일 16:31:00 jessie-gnome 커널: [742.280282] br0: 자신의 주소를 소스 주소로 사용하여 eth1에서 패킷을 수신했습니다.

내 인터페이스 파일은 다음과 같습니다

auto lo
iface lo inet loopback



iface eth0 inet manual

iface eth1 inet manual

auto br0
iface br0 inet static
    address 192.168.80.5
    netmask 255.255.255.0
    network 192.168.80.0
    gateway 192.168.80.1
     bridge_stp off       # disable Spanning Tree Protocol
     bridge_fd 0          # no forwarding delay
     bridge_ports eth0 eth1
     up iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

더 많은 CPU 시간을 소비하는 프로세스는 다음과 같습니다.

  580 avahi     20   0   32224   2756   2492 R 16,2  0,2   1:30.48 avahi-daemon                                                                     
    3 root      20   0       0      0      0 R 15,5  0,0   1:43.27 ksoftirqd/0                                                                      
  923 root      20   0  215988  34140  18968 S 15,2  2,2   0:34.59 Xorg                                                                             
 1261 sergio    20   0 1330672 202952  68820 R 12,9 13,2   0:32.71 gnome-shell                                                                      
    7 root      20   0       0      0      0 S 12,6  0,0   1:22.70 rcu_sched  

운영체제는 데비안 8이다.

이러한 오류를 어떻게 수정할 수 있나요?

답변1

Linux 브리지가 특정 브리지 포트로부터 새로운 소스 MAC 주소가 포함된 패킷을 수신하면 MAC 학습 테이블에 포트 번호와 함께 MAC 주소를 저장합니다. 테이블의 각 항목은 타이머와 연결되어 있으므로 그 전에 새로 고치지 않으면 특정 시간(소위 "에이징 시간")이 지나면 항목이 만료됩니다. 기본적으로 Linux 브리지 에이징 시간은 300초로 설정됩니다.

이 문제를 해결하려면 Linux 브리지에서 MAC 주소 학습을 비활성화해야 합니다. 이를 위해 다음 명령을 사용하여 "Age Time"을 0으로 설정합니다.

sudo brctl setageing br0 0

인용하다:https://medium.com/@tienbm90/resolved-br0-received-packet-on-xx-with-own-address-as-source-address-fad895d410a4

답변2

오래된 게시물에 답글을 달아 죄송합니다. 또한 RPI4에서 raspbian(Debian 10 Buster)을 사용하고 이것을 보니 브리지 eth0.1과 wlan0이 있습니다. iftop을 실행하면 이런 현상이 발생하는 것 같습니다.

프로세스가 브리지에서 필터링/수신을 활성화하면 wlan0 및 eth0.1이 이 메시지에서 mac 결과를 생성하고 wlan0도 비활성화될 것으로 생각됩니다. 이 문제를 해결했습니다.

#!/bin/bash
dmesg -T -x --follow |
while read LINE
do
   if [[ "$LINE" == *"received packet on wlan0 with own address"* ]]; then
      sleep 1
      echo "RESTART hostapd: $LINE" >> /var/log/wlan0.log
      systemctl restart hostapd
   fi
done

답변3

이러한 메시지가 계속 나타나면 브리지가 스패닝 트리 프로토콜을 사용하지 않도록 구성되었을 수 있습니다. 또한 소프트 브리지에 연결된 일부 외부 네트워크는 두 브리지 포트 사이의 루프를 닫을 수 있습니다.

이 문제를 해결하려면 다음을 시도해 보십시오 brctl stp br0 on.

분명히 기본값은 STP=off일 수도 있습니다. 이것은 initrd 부팅 프로세스 초기에 상당히 베어 커널 5.2.7에서 내 상황이었습니다. "ipconfig"가 작업을 수행하기 전에 디스크 없는 클라이언트를 PXE 부팅하고 Linux 사용자 공간에 소프트 브리지를 설정하려고 합니다. :-)

참고 사항: 브리지가 생성되면 br0 인터페이스는 추가된 첫 번째 물리적 인터페이스의 MAC 주소를 사용합니다. 이것은 여기서 논의된 "문제"와 아무 관련이 없을 수도 있지만... PXE 부팅 시에는 나에게 중요합니다. 디스크가 없는 단일 클라이언트에서 두 개 이상의 임대를 낭비하고 싶지 않습니다.

관련 정보