L2를 통과하지만 L3을 통과하지 않는 브리지 관련 문제 트래픽

L2를 통과하지만 L3을 통과하지 않는 브리지 관련 문제 트래픽

안녕하세요 여러분, 여기 누군가가 저를 도와줄 수 있기를 바랍니다.

KVM 내부에서 실행 중인 VM에 연결하기 위해 Ubuntu 시스템에 브리지를 설정했습니다. 브리지는 ARP 요청과 응답을 보낼 수 있으므로 양방향 트래픽이 있지만 IP 트래픽은 통과할 수 없습니다.

네트워킹은 다음과 같습니다: vnet0 -> 브리지 -> eth1 -> 핑하려는 호스트가 있는 VLAN

eth1을 통과하려고 할 때 Ping이 모두 실패합니다. vnet0, bridge 및 eth1 인터페이스에서 TCPDUMP를 수행했습니다. 문제는 vnet0에서 전송될 때 eth1을 떠나는 IP 패킷이 없다는 것인데, 브리지 인터페이스를 잘 통과하는 것처럼 보입니다. 또한 이 연결에는 USB 3.0 기가비트 어댑터를 사용하고 있습니다.

지금까지의 문제 해결:

  1. 어떻게든 문제가 될 수 있다고 생각하여 sysctl.conf를 통해 IPv6를 비활성화했습니다.
  2. USB 어댑터를 다른 USB 포트로 옮겼습니다.
  3. 브릿지를 여러 번 삭제하고 생성했습니다.
  4. 재부팅

난처한 상황. 왜 L2만 통과할 수 있는지 아시나요? 내 VM은 arp를 통해 eth1을 통해 시스템의 MAC 주소를 학습하지만 IP 패킷을 보낼 수 없습니다.

감사해요

답변1

한 시간쯤 책상에 머리를 부딪힌 끝에 나는 그 사실을 알아냈다. 14.04를 실행하는 다른 컴퓨터에서 작업한 내용을 바탕으로 /etc/network/interfaces 구성을 기반으로 했습니다. 관련 비트만 표시하는 손상된 인터페이스 파일:

자동 eth1
iface eth1 inet 수동
up ifconfig eth1 up

자동 E-MGMT-Bridge
iface E-MGMT-Bridge inet 수동
bridge_stp off
bridge_fd 0
bridge_ports eth1

16.04에서는 ARP, CDP 및 STP 프레임과 같은 레이어 2 트래픽을 계속 허용하면서 어떻게든 레이어 3을 중단합니다. 아주 이상한. 16.04에서 작동하게 하려면 eth1 스탠자를 제거하고 브리지만 정의해야 하며 브리지가 참조하는 물리적 인터페이스는 정의하지 않아야 합니다.

자동 E-MGMT-Bridge
iface E-MGMT-Bridge inet 수동
bridge_stp off
bridge_fd 0
bridge_ports eth1

재부팅해야 했고 VM에서 브리지를 건너 스위치에 연결된 실제 네트워크로 ping을 보낼 수 있었습니다. 다른 사람이 이 문제를 겪은 것인지 아니면 나만 그런 것인지 확실하지 않습니다.운이 좋은.

답변2

ARP만 표시되고 "실제" 트래픽이 없다면 iptables가 문제일 수 있습니다. iptables의 FORWARDING 정책이 ACCEPT로 설정되어 있는지 확인하세요. 대신 DROP 정책을 사용하려면 KVM 트래픽을 허용하기 위한 전달 규칙이 추가되었는지 확인하세요.

관련 정보