「ネットワーク設定/イーサネット」の版間の差分
細 (→デバイスモジュールのロード: リンクを修正) |
(同期) |
||
3行目: | 3行目: | ||
[[pt:Network configuration (Português)/Ethernet]] |
[[pt:Network configuration (Português)/Ethernet]] |
||
[[ru:Network configuration (Русский)/Ethernet]] |
[[ru:Network configuration (Русский)/Ethernet]] |
||
− | [[zh-hans:Network configuration |
+ | [[zh-hans:Network configuration/Ethernet]] |
この記事では[[Wikipedia:ja:イーサネット|イーサネット]]固有の情報について説明しています。一般的なネットワーク設定は[[ネットワーク設定]]でカバーされています。 |
この記事では[[Wikipedia:ja:イーサネット|イーサネット]]固有の情報について説明しています。一般的なネットワーク設定は[[ネットワーク設定]]でカバーされています。 |
||
30行目: | 30行目: | ||
=== デバイスモジュールのロード === |
=== デバイスモジュールのロード === |
||
− | チップセットに必要なモジュール |
+ | チップセットに必要なモジュール/ドライバをインターネットで検索してください。Realtek のチップセットを使っているカードには {{ic|8139too}} が、SiS のチップセットを使っているカードには {{ic|sis900}} が一般的に使われるモジュールです。どのモジュールを使うべきかがわかったら、[[カーネルモジュール#手動でモジュールを扱う|手動でモジュールをロード]]してみてください。モジュールが見つからないというエラーが表示される場合、まず、最近カーネルをアップグレードしたかどうかを確認してください ([[一般的なトラブルシューティング#カーネルのアップグレード後に一部の周辺機器が使用できない]] を参照)。または、Arch カーネルにドライバーが含まれていないのかもしれません。モジュールの名前で [[Arch User Repository|AUR]] を検索できます。 |
− | 起動時に udev が自動で正しいモジュールを検知・ロードしない場合、[[カーネルモジュール#モジュールの自動ロード |
+ | 起動時に udev が自動で正しいモジュールを検知・ロードしない場合、明示的に[[カーネルモジュール#モジュールの自動ロード|起動時にモジュールをロードさせる]]ことができます。 |
== ヒントとテクニック == |
== ヒントとテクニック == |
||
56行目: | 56行目: | ||
=== Explicit Congestion Notification === |
=== Explicit Congestion Notification === |
||
− | 古い/悪いルータで [[Wikipedia:Explicit Congestion Notification|Explicit Congestion Notification]] (ECN) がトラフィックの問題を引き起こす場合があります [https://bbs.archlinux.org/viewtopic.php?id=239892]。[https://github.com/systemd/systemd/ |
+ | 古い/悪いルータで [[Wikipedia:Explicit Congestion Notification|Explicit Congestion Notification]] (ECN) がトラフィックの問題を引き起こす場合があります [https://bbs.archlinux.org/viewtopic.php?id=239892]。[https://github.com/systemd/systemd/pull/20535 systemd 240] より、これをリクエストする着信接続に対して有効化されています (カーネルのデフォルト)。 |
+ | ECN を着信接続と発信接続の両方に対して有効化するには: |
||
− | 受信の接続により要求された時に限り ECN を有効化するには(適度に安全な、カーネルのデフォルトです): |
||
+ | |||
+ | # sysctl net.ipv4.tcp_ecn=1 |
||
+ | |||
+ | 受信の接続により要求された時に限り ECN を有効化するには (適度に安全な、カーネルのデフォルトです): |
||
# sysctl net.ipv4.tcp_ecn=2 |
# sysctl net.ipv4.tcp_ecn=2 |
||
66行目: | 70行目: | ||
# sysctl net.ipv4.tcp_ecn=0 |
# sysctl net.ipv4.tcp_ecn=0 |
||
− | [https:// |
+ | [https://docs.kernel.org/networking/ip-sysctl.html カーネルのドキュメント]も参照してください。 |
+ | |||
+ | === Broadcom BCM57780 === |
||
+ | |||
+ | この Broadcom チップセットは、ロードするモジュールの順番を指定しないと、うまく動作しないことがあります。モジュールは {{ic|broadcom}} と {{ic|tg3}} です。前者を先にロードする必要があります。 |
||
+ | |||
+ | コンピュータにこのチップセットが存在する場合、以下のステップでうまく行くはずです: |
||
+ | |||
+ | * ''lspci'' の出力から NIC を見つける: |
||
+ | |||
+ | {{hc|$ lspci {{!}} grep Ethernet| |
||
+ | 02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01) |
||
+ | }} |
||
+ | |||
+ | * 有線ネットワークが何らかの形で機能していない場合、ケーブルを抜き、以下の手順を行う: |
||
+ | |||
+ | # modprobe -r tg3 |
||
+ | # modprobe broadcom |
||
+ | # modprobe tg3 |
||
+ | |||
+ | * ネットワークケーブルを再び差して、モジュールが成功したか確認する: |
||
+ | |||
+ | # dmesg | grep tg3 |
||
+ | |||
+ | * この手順で問題が解決した場合、{{ic|broadcom}} と {{ic|tg3}} を (この順番で) {{ic|MODULES}} 配列に追加することで、これを永続化することができます: |
||
+ | |||
+ | {{hc|/etc/mkinitcpio.conf|2=MODULES=(.. broadcom tg3 ..)}} |
||
+ | |||
+ | * [[Initramfs を再生成する]] |
||
+ | * あるいは、{{ic|/etc/modprobe.d/broadcom.conf}} を作成することもできます: |
||
+ | |||
+ | softdep tg3 pre: broadcom |
||
+ | |||
+ | {{Note|これらの方法は他のチップセットでもうまく行く場合があります (例えば、BCM57760)。}} |
||
=== Realtek が使えない / WOL の問題 === |
=== Realtek が使えない / WOL の問題 === |
||
81行目: | 118行目: | ||
==== Windows ドライバで WOL を有効にする ==== |
==== Windows ドライバで WOL を有効にする ==== |
||
+ | |||
+ | {{Out of date|Windows XP は非常に古く、これは Windows 10/11 で変更されている可能性があります。要確認。}} |
||
一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。 |
一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。 |
||
104行目: | 143行目: | ||
==== USB AutoSuspend を無効にする ==== |
==== USB AutoSuspend を無効にする ==== |
||
+ | 省電力機能を使用している場合 (特に、USB autosuspend)、デバイスが正しくロードされず、''NO-CARRIER'' 状態になって、リンクが確立されない可能性があります (RT8156B でテスト済み)。 |
||
− | {{Style|Not everybody uses [[TLP]].}} |
||
− | |||
− | 少電力機能(特に TLP の USB Auto Suspend)を使用している際に、デバイスが正しくロードできずに ''NO-CARRIER'' 状態に陥り(RT8156B で検証済み)、リンクを確立できないことがあります。 |
||
− | |||
− | これを解決するには、デバイス ID を TLP 設定の USB Denylist に追加して、デバイスを再接続してください。 |
||
− | |||
− | === Broadcom BCM57780 === |
||
− | |||
− | この Broadcom チップセットはモジュールをロードする順番を指定しないと上手く動作しないことが時々あります。モジュールは {{ic|broadcom}} と {{ic|tg3}} であり、前者を最初にロードする必要があります。 |
||
− | |||
− | コンピューターにこのチップセットが載っている場合、以下の手順に従ってください: |
||
− | |||
− | * ''lspci'' の出力で NIC を確認: |
||
− | |||
− | {{hc|$ lspci {{!}} grep Ethernet| |
||
− | 02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01) |
||
− | }} |
||
− | |||
− | * 有線ネットワークが機能しない場合、ケーブルを切断して以下を (root で) 実行: |
||
− | |||
− | # modprobe -r tg3 |
||
− | # modprobe broadcom |
||
− | # modprobe tg3 |
||
− | |||
− | * ネットワークケーブルを接続。これで問題が解決する場合 {{ic|broadcom}} と {{ic|tg3}} を (この順番で) {{ic|/etc/mkinitcpio.conf}} の {{ic|MODULES}} 行に追加することで設定を永続化できます: |
||
− | MODULES=".. broadcom tg3 .." |
||
− | |||
− | * [[initramfs#イメージ作成とアクティベーション|initramfs を再生成]]: |
||
− | * もしくは、{{ic|/etc/modprobe.d/broadcom.conf}} を作成: |
||
− | |||
− | softdep tg3 pre: broadcom |
||
+ | これを解決するには、USB autosuspend を有効化しないデバイスを手動で設定する方法について [[電源管理#USB の自動サスペンド]] を参照してください。または、[[TLP]] を使用している場合は、[https://linrunner.de/tlp/settings/usb.html USB デバイスに関する TLP のドキュメント]を参照してください。その後、デバイスを再接続してください。 |
||
− | {{Note|以上の方法は、BCM57760 など、他のチップセットでも使えることがあります。}} |
||
=== Realtek RTL8111/8168B === |
=== Realtek RTL8111/8168B === |
||
144行目: | 153行目: | ||
}} |
}} |
||
− | このアダプタは {{ic|r8169}} モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、{{Pkg|r8168}} を使うことで安定した接続をすることができます。{{ic|r8169}} を[[ブラックリスト]]に入れて、{{Pkg|r8168}} が [[udev]] によって自動でロードされない場合、[[カーネルモジュール#ロード |
+ | このアダプタは {{ic|r8169}} モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、{{Pkg|r8168}} を使うことで安定した接続をすることができます。{{ic|r8169}} を[[ブラックリスト]]に入れて、{{Pkg|r8168}} が [[udev]] によって自動でロードされない場合、明示的に[[カーネルモジュール#モジュールの自動ロード|起動時にモジュールをロードさせる]]ことができます。 |
{{Accuracy|"some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers}} |
{{Accuracy|"some revisions", no proof the driver is the cause, and not e.g poorly configured DNS servers}} |
||
− | このアダプタの |
+ | このアダプタの一部のリビジョンのドライバにおけるもう1つの欠陥は IPv6 サポートが貧弱であることです。Web ページがハングしたり、回線が遅くなったりした場合は、[[IPv6#機能を無効にする]] が参考になります。 |
=== Gigabyte マザーボードと Realtek 8111/8168/8411 === |
=== Gigabyte マザーボードと Realtek 8111/8168/8411 === |
||
− | Gigabyte GA-990FXA-UD3 などのマザーボードでは [[ |
+ | Gigabyte GA-990FXA-UD3 などのマザーボードでは [[IOMMU]] をオフにして (デフォルトでオフになっていることもあります) 起動を行うと、ネットワークインターフェイスが不安定になって、接続が出来なかったり、通信速度が遅くなったりします。オンボードの NIC だけでなく、コンピュータに接続した他の PCI NIC でも起こりえます。IOMMU の設定はマザーボードに接続された全てのネットワークインターフェイスに影響を与えるからです。IOMMU を有効にしてインストールメディアで起動すると AMD I-10/xhci のページフォールトが数秒だけ表示されますが、その後通常通り起動して、オンボードの NIC が (r8169 モジュールを使用する場合でも) 完全に機能するようになるはずです。 |
インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるために[[カーネルパラメータ]]に {{ic|1=iommu=soft}} を追加してください。 |
インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるために[[カーネルパラメータ]]に {{ic|1=iommu=soft}} を追加してください。 |
||
170行目: | 179行目: | ||
# ip link set dev enp34s0 up |
# ip link set dev enp34s0 up |
||
− | {{TranslationStatus|Network configuration/Ethernet| |
+ | {{TranslationStatus|Network configuration/Ethernet|2023-07-10|782365}} |
2023年7月10日 (月) 11:18時点における版
この記事ではイーサネット固有の情報について説明しています。一般的なネットワーク設定はネットワーク設定でカバーされています。
目次
デバイスドライバ
ドライバの状態の確認
udev があなたのネットワークインターフェイスコントローラ (NIC)を検知し、必要なカーネルモジュールを起動時に自動でロードします。lspci -v
のアウトプットから "Ethernet controller" エントリ(かそれに類似したもの)をチェックしてください。どのカーネルモジュールがネットワークデバイスのためのドライバを含んでいるかわかります。例:
$ lspci -v
02:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapter (rev b0) ... Kernel driver in use: atl1 Kernel modules: atl1
次に、dmesg | grep module_name
を root として実行してドライバがロードされたかチェックします。例:
# dmesg | grep atl1
... atl1 0000:02:00.0: eth0 link is up 100 Mbps full duplex
ドライバがきちんとロードされている場合は次のセクションはスキップしてください。そうでないならば、あなたの使っているモデルのために必要なモジュールを知る必要があります。
デバイスモジュールのロード
チップセットに必要なモジュール/ドライバをインターネットで検索してください。Realtek のチップセットを使っているカードには 8139too
が、SiS のチップセットを使っているカードには sis900
が一般的に使われるモジュールです。どのモジュールを使うべきかがわかったら、手動でモジュールをロードしてみてください。モジュールが見つからないというエラーが表示される場合、まず、最近カーネルをアップグレードしたかどうかを確認してください (一般的なトラブルシューティング#カーネルのアップグレード後に一部の周辺機器が使用できない を参照)。または、Arch カーネルにドライバーが含まれていないのかもしれません。モジュールの名前で AUR を検索できます。
起動時に udev が自動で正しいモジュールを検知・ロードしない場合、明示的に起動時にモジュールをロードさせることができます。
ヒントとテクニック
ラップトップのための ifplugd
ifplugd は、ケーブルが接続された時にイーサネットデバイスを自動で設定し、ケーブルが抜かれた時に自動で設定を解除するデーモンを提供します。これはオンボードのネットワークアダプタを持っているラップトップで役に立ちます。なぜならケーブルが実際に接続されているときだけインターフェースを設定するからです。他にも、ネットワークをリスタートしたいがコンピュータの再起動をしたりシェルを使いたくないときに役に立ちます。
デフォルトでは ifplugd は eth0
デバイスで動作するように設定されています。デバイスや遅延時間などは /etc/ifplugd/ifplugd.conf
で設定することができます。
トラブルシューティング
ケーブルモデムのコンピュータを交換
一部のケーブル ISP (Vidéotron など) はネットワークインターフェイスの MAC アドレスを使って、認識するクライアント PC を一つだけに絞るようにケーブルモデムを設定しています。ケーブルモデムが初めて PC (やケーブルモデムに接続された機器) の MAC アドレスを認識すると、それ以外の MAC アドレスには頑として返答しなくなります。その PC を別の PC (またはルーター) に交換すると、新しい PC (やルーター) ではケーブルモデムを使うことができません。新しい PC (やルーター) の MAC アドレスは昔の PC の MAC アドレスと異なるからです。新しい PC を認識させるためにケーブルモデムをリセットするには、ケーブルモデムの電源を一度切ってから再度入れる必要があります。ケーブルモデムが再起動してオンラインになったら (通知ランプがおとなしくなるのでわかります)、新しく接続した PC を再起動して DHCP のリクエストを行ったり、手動で新しい DHCP リースをリクエストしてください。
この方法が上手くいかない場合、元のマシンの MAC アドレスをクローンする必要があります。MAC アドレス偽装を参照。
Explicit Congestion Notification
古い/悪いルータで Explicit Congestion Notification (ECN) がトラフィックの問題を引き起こす場合があります [1]。systemd 240 より、これをリクエストする着信接続に対して有効化されています (カーネルのデフォルト)。
ECN を着信接続と発信接続の両方に対して有効化するには:
# sysctl net.ipv4.tcp_ecn=1
受信の接続により要求された時に限り ECN を有効化するには (適度に安全な、カーネルのデフォルトです):
# sysctl net.ipv4.tcp_ecn=2
ECN を完全に無効化するには(例えば、ECN が問題を引き起こしているのか確認したい場合):
# sysctl net.ipv4.tcp_ecn=0
カーネルのドキュメントも参照してください。
Broadcom BCM57780
この Broadcom チップセットは、ロードするモジュールの順番を指定しないと、うまく動作しないことがあります。モジュールは broadcom
と tg3
です。前者を先にロードする必要があります。
コンピュータにこのチップセットが存在する場合、以下のステップでうまく行くはずです:
- lspci の出力から NIC を見つける:
$ lspci | grep Ethernet
02:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)
- 有線ネットワークが何らかの形で機能していない場合、ケーブルを抜き、以下の手順を行う:
# modprobe -r tg3 # modprobe broadcom # modprobe tg3
- ネットワークケーブルを再び差して、モジュールが成功したか確認する:
# dmesg | grep tg3
- この手順で問題が解決した場合、
broadcom
とtg3
を (この順番で)MODULES
配列に追加することで、これを永続化することができます:
/etc/mkinitcpio.conf
MODULES=(.. broadcom tg3 ..)
- Initramfs を再生成する
- あるいは、
/etc/modprobe.d/broadcom.conf
を作成することもできます:
softdep tg3 pre: broadcom
Realtek が使えない / WOL の問題
Realtek 8168 8169 8101 8111(C) が搭載されている NIC (カード/オンボード) を使っている場合、起動時に NIC が無効化され、接続ランプが付かないという問題が発生することがあります。この問題は基本的に Windows をインストールしていると起こります (デュアルブート環境)。Windows における公式の Realtek ドライバー (2007年5月以降) の使用が問題の原因です。新しいドライバーでは Windows のシャットダウン時に NIC を無効化することによって Wake-On-LAN 機能を無効化しているのですが、これはつまり、Windows を起動するまでは NIC が無効のままになってしまうということです。Windows が起動するときに接続ランプが付いて、シャットダウン時に消えるようであれば、ずばりです。通常、システムの電源が入っていれば、(POST の間でも) 接続ランプは点きっぱなしになっています。この問題は新しいドライバーが入っていない他のオペレーティングシステムでも顔を出します (例: Live CD)。問題の解決方法は以下の通りです:
Linux で NIC を直接有効にする
ネットワーク設定#ネットワークインターフェイスを有効化/無効化に従ってインターフェイスを有効化してください。
Windows ドライバをロールバック/変更する
Windows の NIC ドライバーを Microsoft が提供しているドライバーに戻したり、2007年5月以前の Realtek 公式ドライバーに戻すことができます (ハードウェアに付属している CD を使用)。
Windows ドライバで WOL を有効にする
一番簡単な方法はおそらく Windows ドライバーで WOL の設定を変更することです。この方法はシステム全体で適用され、Arch 以外でも問題が解決します (例: ライブ CD や他のオペレーティングシステム)。Windows で、デバイスマネージャを開いて、Realtek ネットワークアダプタを探してダブルクリックしてください。"Advanced" タブ下、"Wake-on-LAN after shutdown" を "Enable" に変更してください。
Windows XP の場合 マイコンピュータを右クリックして"プロパティ"を選択 --> Hardware tab --> Device Manager --> Network Adapters --> "double click" Realtek ... --> Advanced tab --> Wake-On-Lan After Shutdown --> Enable
BIOS/CMOS で LAN Boot ROM を有効にする
BIOS/CMOS で Integrated Peripherals --> Onboard LAN Boot ROM --> Enabled を設定することで、Windows のドライバーが OS のシャットダウン時に無効化するのとは関係なく、システムの起動時に Realtek の LAN チップが有効化されます。
USB AutoSuspend を無効にする
省電力機能を使用している場合 (特に、USB autosuspend)、デバイスが正しくロードされず、NO-CARRIER 状態になって、リンクが確立されない可能性があります (RT8156B でテスト済み)。
これを解決するには、USB autosuspend を有効化しないデバイスを手動で設定する方法について 電源管理#USB の自動サスペンド を参照してください。または、TLP を使用している場合は、USB デバイスに関する TLP のドキュメントを参照してください。その後、デバイスを再接続してください。
Realtek RTL8111/8168B
# lspci | grep Ethernet
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
このアダプタは r8169
モジュールによって認識されます。しかしながら、使われているチップによって、接続が出来たりできなかったりすることがあります。そのような場合は、r8168 を使うことで安定した接続をすることができます。r8169
をブラックリストに入れて、r8168 が udev によって自動でロードされない場合、明示的に起動時にモジュールをロードさせることができます。
このアダプタの一部のリビジョンのドライバにおけるもう1つの欠陥は IPv6 サポートが貧弱であることです。Web ページがハングしたり、回線が遅くなったりした場合は、IPv6#機能を無効にする が参考になります。
Gigabyte マザーボードと Realtek 8111/8168/8411
Gigabyte GA-990FXA-UD3 などのマザーボードでは IOMMU をオフにして (デフォルトでオフになっていることもあります) 起動を行うと、ネットワークインターフェイスが不安定になって、接続が出来なかったり、通信速度が遅くなったりします。オンボードの NIC だけでなく、コンピュータに接続した他の PCI NIC でも起こりえます。IOMMU の設定はマザーボードに接続された全てのネットワークインターフェイスに影響を与えるからです。IOMMU を有効にしてインストールメディアで起動すると AMD I-10/xhci のページフォールトが数秒だけ表示されますが、その後通常通り起動して、オンボードの NIC が (r8169 モジュールを使用する場合でも) 完全に機能するようになるはずです。
インストール時にブートプロセスを設定する場合、起動時のエラーメッセージを排除して USB 3.0 を機能させるためにカーネルパラメータに iommu=soft
を追加してください。
MicroStar Motherboard と Realtek 8111/8168/8411
"MicroStar B450M MORTAR TITANIUM" のようなマザーボードでは、イーサネットケーブルを抜き差ししたり、ルータの DHCP サーバを再起動したりすると r8169
がダウンシフト状態に入り、1000 Mbit/s のイーサネット速度が 100 Mbit/s にまで落ちます。その際、以下のようなカーネルログが表示されます:
# dmesg | grep r8169
Generic FE-GE Realtek PHY r8169-2200:00: Downshift occurred from negotiated speed 1Gbps to actual speed 100Mbps, check cabling! r8169 0000:22:00.0 enp34s0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx
この場合、アダプタを再起動してください(down にセットし up にセットしてください)。例えば:
# ip link set dev enp34s0 down # ip link set dev enp34s0 up