브리징 모드에서 OpenVPN을 사용하여 ARP 응답이 br0에서 tap0으로 사라짐


9

OpenVPN 서버 역할을하는 Linux 상자 (esxi5)를 설정했습니다. 서버는 클라이언트에 대한 브리징을 사용하도록 구성되며 기본적으로 작동하지만 한 가지 예외가 있습니다.

클라이언트가 서버 자체가 아닌 네트워크의 일부 시스템을 ping하면 작동하지 않습니다. 내가 아는 모든 것을 (iptables 등) 배제하고 tcpdump를 실행하면 다음과 같은 것들이 생겼습니다.

  • tap0 및 br0에 ARP 요청이 표시됩니다.
  • br0에 ARP 회신이 표시됩니다.
  • tap0에 ARP 회신이 표시되지 않습니다

질문 : br0 장치가 ARP 응답을 tap0 장치로 전달하지 않는 이유는 무엇입니까?


1
알았어-한 걸음 더 나아 갔어 brctl showmacs를 사용하여 브리지의 mac 테이블을 볼 때 tap0 쪽에서 내 VPN 클라이언트의 mac 주소가 표시됩니다. 이제 VPN 클라이언트에서 서브넷으로 핑을 시작하면 mac 주소가 오버 브리지 포트로 이동하여 서브넷의 arp 응답을 차단합니다. 핑이 멈 추면 Mac이 거의 즉시 다시 전환됩니다. 그래서 내가 모르는 것은 왜 맥 주소가 잘못된 스위치 포트로 전환되는지입니다. 모든 검색 결과는 지금까지 아무런 결과도 얻지 못했습니다.
fen December

다른 포트로 "이동"할 경우, MAC 주소가 네트워크에 두 번 이상 존재하거나 네트워크 루프 (활성 브리지로 연결된 동일한 브리지의 두 포트)의 영향을보고 있다는 확실한 단서가됩니다. 통로). 둘 다 수정해야 할 구성 문제입니다.
the-wabbit

1
클라이언트에서 먼저 정적 ARP 항목을 사용하여 문제를 격리하십시오. 이후 Ping이 제대로 작동하면 ARP 문제 해결로 넘어갈 수 있습니다. 작동하지 않으면 ARP보다 더 큰 네트워킹 문제가 있습니다.
Ricardo

우리는 당신의 네트워크가 어떻게 생겼는지에 대해 아무것도 알 수 없습니다 . 장거리 슛; 당신은 할 client-to-client서버의 OpenVPN의 설정 파일에? openvpn을 클라이언트로 사용하여 서버가 VPN 네트워크에 연결되어 있으면 문장이 사실 일 수 있습니다. 추신. 어떤 종류의 배포판을 사용하고 있습니까?
Michal Sokolowski

답변:


1

더 많은 정보가 없으면 추측하고 있지만 시도해 보겠습니다.

먼저 eth0과 tap0이 모두 무차별 모드인지 확인하십시오. br0은 무차별 모드에 있지 않아야합니다.

다음으로 arptables 및 방해 할 수있는 iptables 규칙이 있는지 확인하십시오.

이미 ARP 응답을받을 때, 당신은 아마이없는 있지만, 어쨌든 그것을 확인.

마지막으로 rp_filter 설정을 확인하고 설정 한 추가 sysctl 매개 변수도 확인하십시오.


1
... ESXi이므로 가상 스위치에서 무차별 모드가 활성화되어 있는지 확인하십시오.
Gerald Combs

^ ^ ^ ^ ESXi를 실행중인 경우 vSwitch에서 무차별 모드를 활성화 해야합니다. 정말.
roaima

1

ESXi 호스트에 네트워크에 대한 중복 연결이있는 경우 기본 설정 인 Net.ReversePathFwdCheckPromisc로 인해 나타날 수있는 다양한 ARP 문제가 있습니다. CARP를 사용하는 pfSense 사용자는 이것을 가장 빨리 디버깅 한 것으로 나타 났으며 https://doc.pfsense.org/index.php/CARP_Configuration_Troubleshooting에 설명되어 있습니다.

비슷한 환경에서 FreeBSD에 OpenVPN 브리징을 설정하고 vlan의 추가 합병증도 있습니다. Net.ReversePathFwdCheckPromisc가 1로 설정되지 않고 네트워크에 대한 여러 개의 업 링크가 존재하는 호스트에서는 탭 장치에 대한 인바운드 트래픽에서 대규모 패킷 손실 (95 % +)이 발생합니다. 1로 설정하면 잘 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.