web-dev-qa-db-ja.com

WebサーバーでIPv6のみを使用するか、IPv4とIPv6の両方を使用する必要がありますか?

私のWebサーバー(Ubuntu、Nginx)には、ホストによってIPv4アドレスとIPv6アドレスの両方が割り当てられています。私のウェブサイトでは、IPv6アドレスのみにバインドする必要がありますか?標準的な推奨方法ですか?または、IPv4アドレスとIPv6アドレスの両方を使用する必要がありますか?

40
THpubs

IPv4とIPv6の両方を使用する

IPv4アドレスとIPv6アドレスの両方を使用する必要があります。

現在、インターネット上のほぼ全員がIPv4アドレスを持っているか、NATの背後にあり、IPv4リソースにアクセスできます。

ただし、執筆時点では 約 0.7%2.3%3.8%6.5%9%12%19%22% インターネットの26%はIPv6対応 ですが、IPv6が世界中に普及し始めているため、その数は着実に増加しています。

ごく少数の場所で、ISPは主にIPv6またはonlyIPv6を提供しています住宅の顧客に、大規模なNAT、NAT64、またはIPv4接続用のその他のそのようなソリューションを使用します。この数は、IPv4アドレススペースが最終的に使い果たされると増加すると予想されます。これらのユーザーは通常、IPv6よりもパフォーマンスが優れています。

ISPが大規模に展開している場合NAT IPv4の枯渇を解決するために、これで立ち往生しているユーザーは、大規模に固有の接続制限により、すべてのインターネット接続の信頼性が低下しますNATゲートウェイ。たとえば、Webページは そのリソースのすべてではなく一部のみをロードする のみで、画像があるべき場所に壊れたアイコンが残っている、スタイルやスクリプトが欠けている、などです。これは接続に似ています。ホームルーターの枯渇を制限しますが、ISPのすべてのユーザーに断続的かつランダムに影響します。これらのユーザーに対してサイトの信頼性を確保するには、IPv6を介してサービスを提供する必要があります(ISPはIPv6を展開している必要があります)。

IPv6がインターネットに向かっているので、WebサイトのIPv6を有効にすると、ゲームの先を行くことができ、深刻になる前に問題を解決できます。

Nginxを設定する

Linuxおよびnginxでは、デフォルトで listenディレクティブ を次のように変更して、IPv4とIPv6の両方に同時にバインドできます。

listen [::]:80;
listen 80;

または、SSLサイトの場合:

listen [::]:443 ssl;
listen 443 ssl;
57
Michael Hampton

両方にバインド!

クライアントが使用していたDNS名を使用して、コードがそれ自体を内部参照するIIS Webサイトがありました。このプロセスは常に失敗します。

もう1つの症状は、サーバー上でローカルに実行されているブラウザーが、IPv4アドレスだけではサーバーの名前でWebサイトを見つけられないことでした。つまり、http://192.168.55.139は機能しますが、http://myhostは失敗します。 ping myhostを使用すると、デフォルトでIPv6アドレスが返されます(ping myhost -4はIPv4アドレスを返します)。

修正は、IISを開き、IPv6アドレスとIPv4アドレスにバインドするようにWebサイトのバインディングを変更することでした。

enter image description here

3
Glen Little