VXLAN을 사용하여 오버레이 네트워크를 작동시키려고 합니다. 전체적으로 매우 간단한 설정이지만 이상한 이유로 시작 시 제대로 작동하지 않습니다.
호스트 A와 B가 두 개(실제로는 6개이지만 여기서는 중요하지 않음) 있습니다. 둘의 구성은 비슷합니다.
ip -6 link add vx1 type vxlan id 99 dstport 4789 local <local-ipv6-address>
bridge fdb append 00:00:00:00:00:00 dev vx1 dst <remote-ipv6-address>
ip link set up dev vx1
ip -6 addr add <random-ula>::10/64 dev vx1
분명히 로컬/원격 교환과 마지막 단계에서 다른 주소를 사용하는 것은 제외됩니다.
A에서 B로 ping6을 실행했고 인터페이스가 작동하고 실행되면 호스트 B의 트래픽을 볼 수 있었습니다( tcpdump
). 하지만 B는 A에게 답장을 하지 않았다. 상황은 비슷했다.Linux가 VxLAN의 ICMP 요청에 응답하지 않는 이유는 무엇입니까?그러나 이것은 도움이 되지 않습니다. 수동으로 또는 /etc/network/interfaces
.
나는 라우팅, iptables, fdb 및 내가 생각할 수 있는 모든 것을 확인했습니다. 단순히 인터페이스를 불러온 것과 첫 번째 "수정 핑"을 보내는 것 사이에는 어떤 구성에서도 변경된 것이 없는 것 같습니다. 내 문제는 물론 다시 시작하는 것입니다. 이 문제를 올바르게 해결하기 위해 확인하고 수행할 수 있는 것이 있습니까? 한 가지 옵션은 오버레이의 다른 모든 호스트에 ping 메시지를 보내는 것입니다. 그러나 이것은 기껏해야 서투른 것처럼 보이고 거의 신뢰할 수 있는 솔루션이 아닙니다. 특히 더 큰 오버레이를 구축할 때 그렇습니다.
답변1
귀하의 경우는 확실하지 않지만 제 경우에는 vxlan 측의 구성이 잘못되었습니다. 한 노드의 (A) 전달 데이터베이스( bridge fdb
를 사용하여 볼 수 있음
잘못된 전달 규칙을 사용하고 제거하면 올바른 값을 추가하여 bridge fdb append 00:00:00:00:00:00 dev <VXLAN INTERFACE> dst <IP ADDRESS>
작동하게 됩니다.
ping은 피어가 MAC 브로드캐스트를 중계하지 않고도 IP <-> MAC 주소 매핑을 검색할 수 있도록 허용한다는 점에서 "올바른" 동작을 트리거합니다.