웹 서버에서 IPv6 만 사용하거나 IPv4와 IPv6을 모두 사용해야합니까?


39

내 웹 서버 (Ubuntu, Nginx)에는 호스트에서 할당 한 IPv4 및 IPv6 주소가 모두 있습니다. 내 웹 사이트의 경우 IPv6 주소에만 바인딩해야합니까? 표준 권장 방법입니까? 아니면 IPv4 및 IPv6 주소를 모두 사용해야합니까?


13
잘못된 사람에게 잘못된 질문을하고 있습니다- "IPv4 클라이언트, IPv6 클라이언트 또는 둘 다에서이 사이트에 액세스 할 수 있어야합니까?" 이에 대한 답변은 웹 서버가 수신 대기해야하는 주소에 대한 답변이기도합니다.
voretaq7

6
일반적으로, 나는 "당신의 스펙을 먼저 얻습니다"라는 대답에 전적으로 동의하지만,이 경우에는, 나는 그렇지 않습니다. 마이클에 동의합니다. "v6 전용"은 여전히 ​​슬프게도, 사라질 필요는 없을 것입니다 (그렇더라도이 설명은 전적으로 잘못된 것입니다). 그렇지 않은 경우 "mixed stack"및 "v4 only"로 표시됩니다. 사용자가 모두 "v4 전용"이라고 말하더라도이 시점에서는 잘못되었습니다. 혼합 스택은 현재 사용자 커뮤니티의 의견에 상관없이 미래를 대비하는 방법입니다.
MadHatter는 Monica를

@MadHatter 이제 "v4 전용"을 안전하게 제거 할 수 있습니다. 대규모 NAT의 고유 한계로 인해 웹 사이트 운영자 나 다른 인터넷 서비스에서는 v4 만 사용할 수 없습니다. 업데이트 된 답변에 대한 자세한 내용.
Michael Hampton

@MichaelHampton은 여전히 ​​귀하와 동의합니다.
MadHatter는 Monica

답변:


56

IPv4와 IPv6 모두 사용

IPv4 및 IPv6 주소를 모두 사용해야합니다.

인터넷상의 거의 모든 사람이 현재 IPv4 주소를 가지고 있거나 NAT 뒤에 있으며 IPv4 리소스에 액세스 할 수 있습니다.

그러나 글을 쓰는 시점에서 인터넷의 0.7 % 2.3 % 3.8 % 6.5 % 9 % 12 % 19 % 22 % 26 %만이 IPv6를 지원 하지만 IPv6가 전 세계적으로 출시되기 시작함에 따라 그 수는 꾸준히 증가하고 있습니다.

소수의 장소에서 ISP는 주거 고객 에게 주로 IPv6 또는 IPv6 제공하고 있으며 대규모 NAT, NAT64 또는 기타 IPv4 연결 솔루션을 사용하고 있습니다. IPv4 주소 공간이 마침내 소진됨에 따라이 숫자는 증가 할 것으로 예상됩니다. 이러한 사용자는 일반적으로 IPv6보다 성능이 향상됩니다.

ISP가 IPv4 고갈을 해결하기 위해 대규모 NAT를 배치 한 경우, 사용자는 대규모 NAT 게이트웨이에 내재 된 연결 제한으로 인해 모든 인터넷 연결의 안정성이 저하됩니다. 예를 들어, 웹 페이지는 일부 리소스로드 할 수 있지만 이미지가 있어야하는 위치에 깨진 아이콘이 남거나 스타일 및 스크립트가 누락되는 등의 문제가 발생할 수 있습니다 . 이는 홈 라우터의 연결 제한 소진과 비슷하지만 모든 사용자에게 영향을 미칩니다. ISP가 간헐적으로 그리고 임의로 보이는 것처럼 보입니다. 이러한 사용자가 사이트를 안정적으로 사용하려면 IPv6을 통해 사이트를 제공해야하며 ISP가 IPv6을 배포해야합니다.

IPv6은 인터넷이가는 곳이기 때문에 이제 웹 사이트 IPv6을 사용하도록 설정하면 게임보다 앞서 나가고 문제가 심각해지기 전에 문제를 해결할 수 있습니다.

nginx 구성

기본적으로 Linux 및 nginx에서는 지시문 을 다음과 같이 변경하여listen IPv4와 IPv6에 동시에 바인딩 할 수 있습니다 .

listen [::]:80;
listen 80;

또는 SSL 사이트의 경우 :

listen [::]:443 ssl;
listen 443 ssl;

알았어 고마워 ... 질문 하나 더 .. 이제 서버를 설정했습니다 ... DNS 재귀에서 두 개의 레코드 A와 AAAA (호스트 이름이 @ 인)를 배치하고 관련 IP를 가리켜 야합니까?
THpubs

3
예, A레코드는 IPv4 주소 용이며 AAAA레코드는 IPv6 주소 용입니다.
Michael Hampton

완전한. 설명을 주셔서 감사합니다 :) ipv6 물건에 새로운 메신저
THpubs

내가 Nginx에 익숙하지 해요,하지만은 안 listen 443;또한이 ssl단지 등을 listen [::]:443 ssl;? 그래서 listen 443 ssl;대신 listen 443;.
CVn

@aCVn 그렇습니다. 찾아 주셔서 감사합니다. 반 자고있는 동안 물건을 편집하도록 가르쳐 줄 것입니다.
마이클 햄튼

3

둘 다에 바인딩!

클라이언트가 사용한 DNS 이름을 사용하여 코드가 자체적으로 내부 참조를 수행 한 IIS 웹 사이트가있었습니다. 이 프로세스는 항상 실패합니다.

또 다른 증상은 서버에서 로컬로 실행되는 브라우저가 서버 이름으로 만 IPv4 주소로만 웹 사이트를 찾을 수 없다는 것입니다. 즉, http://192.168.55.139작동하지만 http://myhost실패합니다. ping myhost기본적으로 사용 하면 IPv6 주소 ping myhost -4가 반환됩니다 (IPv4 주소가 반환 됨).

수정 사항은 IIS를 열고 IPv4 주소뿐만 아니라 IPv6 주소에 바인딩하도록 웹 사이트의 바인딩을 변경하는 것이 었습니다.

여기에 이미지 설명을 입력하십시오


6
개인 주소를 난독 처리 할 필요는 없습니다. 그러나 IPv6을 통해 외부로 사이트에 접근 할 수 있도록 글로벌 IPv6 주소에 바인딩해야합니다.
Michael Hampton

언급 된 코드는 Winnovative HTML to PDF Converter입니다.
Glen Little

2
NAT를 사용하지 않으면 내부 및 외부에서 서비스에 액세스 할 수 있습니다. IPv6을 사용하는 경우 NAT를 피하는 것이 더 쉽습니다. 그러나 클라이언트가 제공 한 호스트 이름에 맹목적으로 연결하는 것은 디자인 결함처럼 들립니다. 클라이언트가 귀하에게 Host속하지 않은 도메인 이름을 가진 헤더 를 보낼 수 있습니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.