동일한 시스템의 두 프로세스 간에 40Gbps 이상의 속도로 몇 시간의 웹 소켓 트래픽을 전송하는 애플리케이션이 있습니다. 서버는 시스템에 있는 물리적 인터페이스의 IP 주소에 바인딩됩니다. 몇 시간 후 수신측이 충분히 오랫동안 SYN에 응답하지 못해 웹 소켓이 닫혔습니다.
이처럼 로컬 트래픽일 때 패킷 흐름은 어떻게 되나요? 물리적 NIC 드라이버에 도달하고 트래픽이 루프백 인터페이스를 헤어핀합니까(주소가 지정되지 않았지만 여전히 로컬임에도 불구하고).
이 트래픽이 queue, bpf, iptables에 도달합니까?
답변1
내가 아는 한, 어떤 로컬 할당 IP 주소가 사용되는지에 관계없이 모든 로컬 트래픽은 해당 lo
인터페이스를 통과하며 물리적 인터페이스에 닿지 않습니다. 을 사용하여 테스트할 수 있습니다 ip route get 1.2.3.4
. 1.2.3.4
로컬 주소는 어디에 표시되며 표시되어야 합니다 dev lo
.
나는 일반적인 커널 bpf 및 iptables 경로가 lo
적용된다고 가정하고 있지만 이를 직접 확인하지는 않았습니다. 이는 테스트하기도 쉽습니다(직접 수행할 수 있음). 적절한 iptables 규칙이나 bpf 프로그램을 만들고 손상되었는지 확인하세요.