Linux 브리징 및 ipv6 이웃 검색

Linux 브리징 및 ipv6 이웃 검색

각각 가상 TAP 인터페이스와 사용자 공간 Ipv6 스택을 사용하는 클라이언트 및 서버 ipv6 애플리케이션이 있습니다. 두 개의 Tap 인터페이스를 브리지로 연결하고 ipv6 전달을 활성화했지만 브리지(또는 Linux)가 IPv6 헤더의 홉 수(홉 사용자 공간 스택 수)를 줄이기 때문에 클라이언트와 서버 간에 이웃 검색이 작동하지 않는 것으로 나타났습니다. 255로 예상됩니다.

브리지 없이 탭 인터페이스를 연결하는 방법이 있습니까? 아니면 이웃이 패킷이 수정되지 않은 채 통과하는 것을 발견하도록 할 수 있습니까?

고쳐 쓰다...

IP 전달로 인해 홉 수가 감소한다고 생각하는 이유는 이를 비활성화해야 하고 실제로 브리지는 레이어 2에서 전달을 처리해야 한다고 생각하기 때문입니다. 어떤 이유로 브리지는 유니캐스트 ICMP6 메시지를 전달하기를 원하지 않습니다.

저는 Debian 9를 사용하고 있으며 기본 설정은 다음과 같습니다.

ip tuntap add dev tap0 mode tap user YOUR-USER-NAME
ip a a dev tap0 192.168.0.1/24
ip tuntap add dev tap1 mode tap user YOUR-USER-NAME
ip a a dev tap1 192.168.0.2/24
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 tap1

나는 tap0에 연결된 서버 애플리케이션과 tap1에 연결된 클라이언트 애플리케이션을 가지고 있으며, 사용자 공간 IP6 스택을 테스트하기 위해 이러한 애플리케이션이 통신하기를 원합니다. "brctl showmacs br0" 명령을 실행하면 다음과 같은 결과가 나타납니다.

port no mac addr    is local?   ageing timer 
1   2e:5f:ae:db:71:b1   yes 0.00
1   2e:5f:ae:db:71:b1   yes 0.00
2   92:9f:e7:8f:8d:a4   yes 0.00
2   92:9f:e7:8f:8d:a4   yes 0.00

이는 클라이언트 및 서버 MAC 주소에 대해 올바른 것으로 보입니다. 인터페이스 br0에서 볼 때 Wireshark의 유니캐스트 패킷도 볼 수 있지만 어떤 이유로든 다른 쪽 끝에 도달하지 못합니다.

관련 정보