인기있는 자습서를 사용하여 IPv6을 지원하는 응용 프로그램을 포팅했습니다. 두 프로토콜 모두에 하나의 소켓 수신기 만 사용하기로 결정했습니다. 이제 IPV6_V6ONLY
을 제대로 설정해야한다는 것을 깨달았습니다. (이는 내 x86 리눅스에서만 작동하지만 내 ARM에서는 작동하지 않습니다.)IPv6 및 IPv4 용 소켓 리스너
정말이 방법이 맞습니까? 일부는 IPV6_V6ONLY
이 사용되어서는 안된다고 말합니다. (분명히 유선을 통한 IPv4 매핑 때문에 구식입니다.) 두 프로토콜 모두에 대해 하나의 소켓을 사용하는 것이 좋습니다.
그래서 혼란 스럽습니다. 이 문제에 대한 현재 상태는 무엇입니까? 나는 그 문제를 오해 했습니까?
설명 비트 : V6ONLY는 소프트웨어가 패킷을 처리하는 방법에 영향을 미칩니다. 그것은 전선의 비트에 영향을 미치지 않습니다. 소프트웨어 측면에서는 모든 것이 IPv6 패킷처럼 보입니다. 유선상에서 실제로 IPv4 패킷 인 경우 소프트웨어 측은 IPv6 패킷처럼 보이게하고 IPv4 주소를':: ffff :'뒤에 오는 IPv6 주소와 32 비트의 IPv4 주소로 매핑합니다. V6ONLY는 소프트웨어에서만 이것을 변경합니다. 유선에서는 정상적인 IPv4 및 IPv6 패킷입니다. ':: ffff :'주소는 절대로 전선에 표시되지 않습니다. –
아, 설명을 위해 thx. 그래서 유선상에서만 사용이 중단되고'IPV6_V6ONLY '를 사용할 수 있습니다. 그것이 지원되는지 아닌지를 다루는 방법은 다른 토론이다 :) – duedl0r