netstat - IPv4 데몬이 -A inet6에 나열된 포트에서만 수신 대기하는 이유는 무엇입니까?

netstat - IPv4 데몬이 -A inet6에 나열된 포트에서만 수신 대기하는 이유는 무엇입니까?

나는 컴퓨터가있다:

Linux superhost 3.2.0-4-amd64 #1 SMP Debian 3.2.60-1+deb7u3 x86_64 GNU/Linux

모든 인터페이스의 포트 80에서 Apache를 실행하고 있으며 에는 나타나지 않지만 netstat -planA inet놀랍게도 다음에서 찾을 수 있습니다 netstat -planA inet6.

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::5672                 :::*                    LISTEN      2402/beam.smp   
tcp6       0      0 :::111                  :::*                    LISTEN      1825/rpcbind    
tcp6       0      0 :::9200                 :::*                    LISTEN      2235/java       
tcp6       0      0 :::80                   :::*                    LISTEN      2533/apache2    
tcp6       0      0 :::34611                :::*                    LISTEN      1856/rpc.statd  
tcp6       0      0 :::9300                 :::*                    LISTEN      2235/java       
...
tcp6       0      0 10.0.176.93:80          10.0.76.98:53704        TIME_WAIT   -               
tcp6       0      0 10.0.176.93:80          10.0.76.98:53700        TIME_WAIT   -               

위에 표시된 대로 TCP4를 통해 정상적으로 도달할 수 있습니다. 그러나 이러한 연결도 아래에 나열되어 있습니다 tcp6. 왜?

답변1

기본적으로 Apache 매개변수에 주소를 지정하지 않으면 Listenipv6 주소에 대한 주소 처리기를 사용합니다 IPv4-mapped IPv6. 당신은 볼 수 있습니다아파치 IPv6

출력은 netstatApache가 IPv4 주소를 수신하지 않는다는 의미는 아닙니다. 이것은 IPv4-mapped IPv6주소입니다.

답변2

그 이유는 모든 IPv4 주소가 IPv6 주소이기도 하기 때문입니다. IPv4 주소의 일대일 매핑을 위해 소수의 IPv6 주소가 예약되어 있습니다. 예를 들어 192.0.2.128IPv4 주소는 IPv6 주소를 통해 액세스할 수 있습니다 ::ffff:192.0.2.128. 이는 IPv6 전용 애플리케이션이 여전히 IPv4 주소를 수신할 수 있도록 하기 위한 것입니다. IPv4는 IPv6 주소로 무엇을 해야할지 모르기 때문에(NAT 또는 다른 솔루션을 사용할 수 있지만) 다른 항목을 포함하지 않고 IPv6 주소(매핑되지 않음)에 대해 IPv4 주소와 통신하는 데 사용할 수 없습니다.

모든 IPv4 주소는 IPv6으로 표시되므로 netstatIPv6를 사용하는 애플리케이션을 나열하라는 메시지가 표시되면 IPv4도 표시됩니다. 이는 IPv4 주소 로
표시될 수도 있지만 애플리케이션 개발자는 이를 일반적인 점 표기법으로 표시하도록 선택합니다.10.0.176.93::ffff:10.0.176.93::ffff:a00:b05d

관련 정보