ping6.net
ベストプラクティス

Windows、macOS、Linux、ルーターでIPv6を有効にする方法

デバイスとネットワークでIPv6を動作させます。Windows、macOS、Linux、および人気のあるルーターブランドのステップバイステップの手順。

ping6.net2024年3月1日4 min read
IPv6設定WindowsmacOSLinuxルーターセットアップ

前提条件#

IPv6を有効にする前に、3つのことが必要です:

  1. ISPサポート - ISPに電話するか、ドキュメントを確認してください。IPv6を提供していない場合、他のことは重要ではありません。
  2. ルーターサポート - 過去5〜7年のルーターは動作するはずです。不明な場合は仕様書を確認してください。
  3. 最新のOS - Windows 7+、macOS 10.7+、または過去10年のLinuxにはすべてIPv6が含まれています。

ほとんどのISPは誰にも知らせずにIPv6を有効にしています。すでに持っているかもしれません。

TL;DR - 要点まとめ

重要ポイント:

  • ping6.netにアクセスするかping6 ipv6.google.comを実行してIPv6があるか確認
  • Windows/macOS/Linux:IPv6はデフォルトで有効 — ルーターを設定するだけ
  • ルーター:IPv6を有効化、接続タイプを「ネイティブ/自動」に設定、ルーターアドバタイズメントを有効化
  • セキュリティ:IPv4ポリシーに合わせてIPv6ファイアウォールルールを設定
  • プライバシー:MACアドレス追跡を防ぐためクライアントデバイスでプライバシー拡張を有効化

ジャンプ: Windows設定 | macOSセットアップ | Linuxガイド | ルーター設定

すでにIPv6を持っているか確認#

何かを設定する前に、現在の状態を確認してください。ping6.netにアクセスして、IPv6アドレスが自動的に検出されるかどうかを確認します。

コマンドラインから、IPv6のみのホストへのpingを試みます:

# Windows
ping -6 ipv6.google.com
 
# macOS/Linux
ping6 ipv6.google.com

返信が得られたら、完了です。そうでない場合は、読み続けてください。

Windows 10/11#

IPv6はWindowsでデフォルトで有効になっていますが、確認または再有効化する方法は次のとおりです。

GUIメソッド#

  1. Win + Rを押し、ncpa.cplと入力し、Enterを押します
  2. ネットワークアダプターを右クリック → プロパティ
  3. リストで**インターネットプロトコルバージョン6(TCP/IPv6)**を見つけます
  4. チェックボックスがチェックされていることを確認します
  5. それを選択し、プロパティをクリックします
  6. IPv6アドレスを自動的に取得を選択します
  7. DNSサーバーアドレスを自動的に取得を選択します
  8. OKをクリックします

PowerShellメソッド#

管理者としてPowerShellを開きます:

# IPv6ステータスを確認
Get-NetAdapterBinding -ComponentID ms_tcpip6
 
# 特定のアダプターでIPv6を有効化
Enable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
 
# すべてのアダプターで有効化
Get-NetAdapter | Enable-NetAdapterBinding -ComponentID ms_tcpip6
 
# 動作したことを確認
Get-NetIPAddress -AddressFamily IPv6
 
# 接続をテスト
Test-NetConnection -ComputerName ipv6.google.com

うまくいかない場合は、IPv6スタックをリセットします:

netsh int ipv6 reset
ipconfig /flushdns

その後、ネットワークアダプターを再起動するか、再起動します。

WindowsでIPv6を無効にしないでください

Microsoftは、使用していなくてもIPv6を有効のままにすることを明示的に推奨しています。無効にすると、DirectAccess、HomeGroupが壊れ、DNS解決の遅延が発生する可能性があります。

macOS#

IPv6はデフォルトで有効になっています。確認または設定する方法は次のとおりです。

システム設定#

  1. システム設定ネットワークを開きます
  2. 接続(Wi-FiまたはEthernet)を選択します
  3. 詳細をクリックします
  4. TCP/IPタブに移動します
  5. IPv6を設定で、次を選択します:
    • 自動 - SLAAC/DHCPv6用(推奨)
    • リンクローカルのみ - ローカルネットワークのみ
    • 手動 - 静的アドレス用

ターミナル#

# 現在のIPv6設定を確認
networksetup -getinfo "Wi-Fi"
 
# 自動IPv6を有効化
networksetup -setv6automatic "Wi-Fi"
 
# すべてのIPv6アドレスを表示
ifconfig | grep inet6
 
# 接続をテスト
ping6 ipv6.google.com

静的設定の場合:

# 静的アドレスを設定
sudo networksetup -setv6manual "Wi-Fi" 2001:db8::10 64 2001:db8::1

Linux#

設定方法は、ディストリビューションとネットワークマネージャーによって異なります。

NetworkManager(Ubuntu、Fedora、RHEL)#

GUI:

  1. 設定ネットワーク
  2. 接続の横にある歯車アイコンをクリックします
  3. IPv6タブに移動します
  4. メソッドを次に設定します:
    • 自動 - ルーターアドバタイズメントを使用したSLAAC(デフォルト)
    • 自動、DHCPのみ - DHCPv6のみ
    • 手動 - 静的設定
  5. 適用をクリックします

nmcliを使用したコマンドライン:

# 現在の設定を確認
nmcli connection show "Wired connection 1" | grep ipv6
 
# SLAACを有効化
nmcli connection modify "Wired connection 1" ipv6.method auto
 
# DHCPv6を有効化
nmcli connection modify "Wired connection 1" ipv6.method dhcp
 
# 静的設定
nmcli connection modify "Wired connection 1" \
  ipv6.method manual \
  ipv6.addresses "2001:db8::10/64" \
  ipv6.gateway "2001:db8::1"
 
# 変更を適用
nmcli connection up "Wired connection 1"

systemd-networkd(Arch、Debianサーバーインストール)#

/etc/systemd/network/20-wired.networkを編集:

[Match]
Name=eth0
 
[Network]
DHCP=yes
IPv6AcceptRA=yes
 
# または静的の場合:
# Address=2001:db8::10/64
# Gateway=2001:db8::1

サービスを再起動:

sudo systemctl restart systemd-networkd

ipコマンドを使用した手動設定#

一時的な設定またはトラブルシューティング用:

# 現在のIPv6アドレスを表示
ip -6 addr show
 
# IPv6アドレスを追加
sudo ip -6 addr add 2001:db8::10/64 dev eth0
 
# デフォルトルートを追加
sudo ip -6 route add default via 2001:db8::1 dev eth0
 
# ルーティングテーブルを確認
ip -6 route show

この設定は再起動後に残りません。永続的な変更には、NetworkManagerまたはsystemd-networkdを使用してください。

Linuxでのテスト#

# IPv6アドレスにping
ping6 2001:4860:4860::8888
 
# IPv6経由でホスト名にping
ping -6 google.com
 
# Traceroute
traceroute6 google.com
 
# ルーティングテーブルを確認
ip -6 route show
 
# 近隣探索キャッシュを表示
ip -6 neigh show

ルーター設定#

ルーターは、ISPからIPv6を要求し、LANにプレフィックスをアドバタイズする必要があります。設定はブランドによって異なります。

コンシューマールーターの一般的な手順#

  1. ルーターにログイン(通常は192.168.1.1または192.168.0.1
  2. IPv6設定を見つける(詳細インターネット、またはWANの下)
  3. IPv6を有効化
  4. ISPに基づいて接続タイプを選択:
    • ネイティブ/自動 - 最も一般的、最初にこれを使用
    • DHCPv6 - ISPがDHCPv6プレフィックス委任を使用
    • PPPoE - IPv4にPPPoEを使用している場合
    • 6rdまたは6to4 - レガシートンネリング(まれ)
  5. LANのルーターアドバタイズメントを有効化
  6. LANクライアントのSLAACまたはDHCPv6(または両方)を有効化
  7. 保存し、必要に応じて再起動

再起動後30〜60秒待ってから、デバイスでIPv6アドレスを確認してください。

ASUSルーター#

  1. 詳細設定IPv6
  2. 接続タイプ:ネイティブまたは自動
  3. インターフェイス:WANタイプに一致(PPPoEの場合はPPP、DHCPの場合はEthernet)
  4. DHCP-PD:有効化
  5. ルーターアドバタイズメント:有効化
  6. 適用

ASUSルーターは通常、正しい設定を自動検出します。「自動」が機能しない場合は、「ネイティブ」を試してください。

TP-Linkルーター#

  1. 詳細IPv6
  2. IPv6を有効化:オン
  3. インターネット接続タイプ:動的IP(SLAAC/DHCPv6)
  4. 保存

TP-Linkファームウェアはモデルによって大きく異なります。一部の古いモデルは、代わりに「自動設定」または「自動検出」が必要です。

Netgearルーター#

  1. 詳細詳細設定IPv6
  2. インターネット接続タイプ:自動検出(または自動設定)
  3. 適用

Netgearの自動検出は、ほとんどのISPでうまく機能します。失敗した場合は、手動で「DHCPv6」を試してください。

UniFi(Ubiquiti)#

  1. 設定インターネット
  2. WANネットワークを選択
  3. IPv6接続:DHCPv6
  4. プレフィックス委任サイズ:/60(またはISPが提供する場合は/56)
  5. IPv6 RA:有効化
  6. DHCPv6/RDNSS DNS制御:自動
  7. 変更を適用

UniFiは設定に厳しいです。正しいプレフィックス委任サイズについては、ISPのドキュメントを確認してください。

pfSense / OPNsense#

WANインターフェイス:

  1. インターフェイスWAN
  2. IPv6設定タイプ:DHCPv6
  3. DHCPv6プレフィックス委任サイズ:60または56(ISPに確認)
  4. IPv6プレフィックスのみを要求:チェックなし(WANアドレスとプレフィックスの両方が必要)
  5. IPv6プレフィックスヒントを送信:ISPが必要とする場合はチェック
  6. 保存適用

LANインターフェイス:

  1. インターフェイスLAN
  2. IPv6設定タイプ:インターフェイスを追跡
  3. IPv6インターフェイス:WAN
  4. IPv6プレフィックスID:0(追加のVLANのために増分)
  5. 保存適用

ルーターアドバタイズメント:

  1. サービスDHCPv6サーバーとRA
  2. LANインターフェイスを選択
  3. ルーターモード:アシスト(SLAAC + DHCPv6を有効化)
  4. ルーター優先度:通常
  5. 保存

pfSenseとOPNsenseは最も制御を提供しますが、ISPのIPv6展開方法を理解する必要があります。ほとんどのケーブルISPは/60プレフィックスでDHCPv6-PDを使用します。

DNS設定#

デバイスは、ルーターアドバタイズメントまたはDHCPv6経由でDNSサーバーを受信しますが、パブリックIPv6 DNSサーバーでオーバーライドできます。

パブリックIPv6 DNSサーバー#

プロバイダープライマリセカンダリ機能
Google Public DNS2001:4860:4860::88882001:4860:4860::8844高速、フィルタリングなし
Cloudflare2606:4700:4700::11112606:4700:4700::1001プライバシー重視、高速
Quad92620:fe::fe2620:fe::9マルウェアブロッキング
OpenDNS2620:119:35::352620:119:53::53コンテンツフィルタリング利用可能

DNSサーバーの設定#

Windows(PowerShell):

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" `
  -ServerAddresses "2001:4860:4860::8888","2001:4860:4860::8844"

macOS:

networksetup -setdnsservers "Wi-Fi" 2001:4860:4860::8888 2001:4860:4860::8844

Linux(systemd-resolved):

/etc/systemd/resolved.confを編集:

[Resolve]
DNS=2001:4860:4860::8888 2001:4860:4860::8844

その後再起動:

sudo systemctl restart systemd-resolved

Linux(NetworkManager):

nmcli connection modify "Wired connection 1" \
  ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
nmcli connection up "Wired connection 1"

プライバシー拡張#

プライバシー拡張がないと、IPv6アドレスにMACアドレスが含まれます。これはネットワーク間で追跡可能です。

プライバシー拡張(RFC 4941)は、定期的にローテーションする一時アドレスを生成します。最新のシステムはこれをデフォルトで有効にしますが、確認してください。

Windows:

# ステータスを確認
netsh interface ipv6 show privacy
 
# 必要に応じて有効化
netsh interface ipv6 set privacy state=enabled

macOS:

# ステータスを確認(1を返すはず)
sysctl net.inet6.ip6.use_tempaddr

プライバシー拡張はmacOSでデフォルトで有効になっています。0を返す場合、システム設定に問題があります。

Linux:

# ステータスを確認(2 = 一時アドレスを優先)
sysctl net.ipv6.conf.all.use_tempaddr
 
# 一時的に有効化
sudo sysctl -w net.ipv6.conf.all.use_tempaddr=2
 
# 永続的に有効化
echo "net.ipv6.conf.all.use_tempaddr = 2" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

詳細については、IPv6プライバシー拡張に関する記事を参照してください。

検証#

IPv6を設定した後、すべてが機能することを確認します:

  1. アドレスを確認:ipconfig /all(Windows)、ifconfig(macOS/Linux)、またはip -6 addr(Linux)を使用
  2. 接続を確認:ping6.netにアクセスするか、接続テストを使用
  3. DNSをテスト:IPv6 DNSルックアップツールを使用
  4. ルーティングを確認:Tracerouteツールを使用して2001:4860:4860::8888へのパスをトレース

IPv6アドレス(fe80ではなく2または3で始まる)とIPv6ホストへの成功した接続の両方が表示されるはずです。

fe80アドレスについて

fe80::で始まるリンクローカルアドレスは正常で、すべてのIPv6インターフェイスに存在します。ローカルネットワーク通信にのみ使用され、インターネット接続には使用されません。IPv6インターネットに到達するには、グローバルにルーティング可能なアドレス(2または3で始まる)が必要です。

トラブルシューティング#

IPv6アドレスなし#

順番に確認:

  1. ISPはIPv6をサポートしていますか?電話するか、ウェブサイトを確認してください。
  2. ルーターでIPv6が有効になっていますか?ログインして確認してください。
  3. ルーターでルーターアドバタイズメントが有効になっていますか?RAメッセージをブロードキャストする必要があります。
  4. ファイアウォールがICMPv6をブロックしていますか?ICMPv6はIPv4のICMPとは異なり、IPv6に必須です。

**クイックテスト:**ルーターをバイパスして、デバイスをモデムに直接接続します。IPv6アドレスを取得した場合、問題はルーター設定にあります。

アドレスはあるが接続なし#

順番に確認:

  1. デフォルトルートがありますか?ip -6 route(Linux)またはnetstat -rn -f inet6(macOS)を実行し、defaultエントリを探します。
  2. ゲートウェイにpingできますか?ip -6 routeでゲートウェイを見つけ、ping6 <gateway>でpingします。
  3. 外部IPv6ホストにpingできますか?ping6 2001:4860:4860::8888を試してください。
  4. DNSは機能していますか?nslookup google.com 2001:4860:4860::8888を試してください。

ほとんどの「接続なし」の問題は、デフォルトルートの欠落またはIPv6トラフィックをブロックするファイアウォールルールのいずれかです。

遅いまたは不安定なIPv6#

これは通常、壊れたパスMTU検出(PMTUD)を示します。一部のISPまたはルーターがICMPv6「パケットが大きすぎる」メッセージをブロックし、PMTUDを壊します。

テスト:

# 大きなパケットサイズでping
ping6 -s 1400 ipv6.google.com

これが失敗するが小さなpingが機能する場合、PMTUD問題があります。ISPに連絡するか、ルーターのWANインターフェイスのMTUを1480に削減してください。

詳細なトラブルシューティングについては、IPv6接続のトラブルシューティングに関するガイドを参照してください。

関連記事#

実際に試してみましょう

IPv6 PingおよびDNSクエリツールを使用してIPv6接続をテストします。