- PR -

ifconfig で表示されるエラーの意味

投稿者投稿内容
オルメカ
会議室デビュー日: 2003/12/03
投稿数: 5
投稿日時: 2003-12-03 14:34
はじめまして。オルメカと言います。よろしくお願いします。

特に問題が発生しているわけではないのですが、WEB など調べても分からなかったので...

Redhat Linux 7.2 を使用しています。
良く使う ifconfig というコマンドがありますが、表示される情報の意味がいまいち良く分かりません。

下記、実機の ifconfig 情報です。

eth0 Link encap:Ethernet HWaddr 00:C0:9F:0C:FC:57
inet addr:10.40.220.11 Bcast:10.40.220.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:31232655 errors:0 dropped:0 overruns:0 frame:0
TX packets:15771457 errors:0 dropped:0 overruns:0 carrier:0
collisions:0
RX bytes:2038383778 (1943.9 Mb) TX bytes:365180519 (348.2 Mb)

RX/TX の情報で、
packets:送受信パケット数
errors :エラーパケット数
dropped:破棄したパケット数
overruns:オーバーラン(処理が間に合わなかった)パケット数
collisions:Ethernet レベルで検出した衝突

までは分かったのですが、その後の "frame" と "carrier" の意味が良く分かりません。
carrier の方は、多分搬送波がおかしいとかそんな感じ(適当ですいません)かと思うのですが、これもどんなときに発生するのかがわからず、frame の方も何を示しているのか、またどんなときに出るのかがわかりません。

どなたか分かる方、教えてください。

ちなみに、ifconfig のバージョンは

# ifconfig --version
net-tools 1.60
ifconfig 1.42 (2001-04-13)

です。
よろしくお願いします。
瀬戸っぷ
ベテラン
会議室デビュー日: 2003/11/28
投稿数: 56
投稿日時: 2003-12-04 00:59
引用:

までは分かったのですが、その後の "frame" と "carrier" の意味が良く分かりません。
carrier の方は、多分搬送波がおかしいとかそんな感じ(適当ですいません)かと思うのですが、これもどんなときに発生するのかがわからず、frame の方も何を示しているのか、またどんなときに出るのかがわかりません。



とりあえず、ググってみました。
debian-users Mailing List Archiveから"frame"の方が見つかりました。
http://lists.debian.or.jp/debian-users/200007/threads.html#00029

"carrier"の方は…ちょっと見つかりませんでした。
ifconfigの結果を貼っているページが多いためか、googleでも
"carrier"の解説をしているとおぼしきページはなかなか…
上記の"frame"で調べられた方のようにkernelソースを追いかければ
把握できるのでしょうが……
さすがにちょっと無理そうです
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2003-12-04 10:26
LANカードのチップがカニさんマークだったりしませんでしょうか。。
オルメカ
会議室デビュー日: 2003/12/03
投稿数: 5
投稿日時: 2003-12-04 12:47
引用:

瀬戸っぷさんの書き込み (2003-12-04 00:59) より:
引用:

までは分かったのですが、その後の "frame" と "carrier" の意味が良く分かりません。
carrier の方は、多分搬送波がおかしいとかそんな感じ(適当ですいません)かと思うのですが、これもどんなときに発生するのかがわからず、frame の方も何を示しているのか、またどんなときに出るのかがわかりません。



とりあえず、ググってみました。
debian-users Mailing List Archiveから"frame"の方が見つかりました。
http://lists.debian.or.jp/debian-users/200007/threads.html#00029

"carrier"の方は…ちょっと見つかりませんでした。
ifconfigの結果を貼っているページが多いためか、googleでも
"carrier"の解説をしているとおぼしきページはなかなか…
上記の"frame"で調べられた方のようにkernelソースを追いかければ
把握できるのでしょうが……
さすがにちょっと無理そうです



瀬戸っぷさん、ありがとうございます。
参考になりました。

で、押してていただいたページをもとにちょっとハックの真似事をしてみたところ、確かにありました。

linux/net/core/dev.c
1668 static int sprintf_stats(char *buffer, struct net_device *dev)
1669 {
1670 struct net_device_stats *stats = (dev->get_stats ? dev->get_stats(dev): NULL);
1671 int size;
1672
1673 if (stats)
1674 size = sprintf(buffer, "%6s:%8lu %7lu %4lu %4lu %4lu %5lu %10lu %9lu %8lu %7lu %4lu %4lu %4lu
%5lu %7lu %10lu\n",
1675 dev->name,
1676 stats->rx_bytes,
1677 stats->rx_packets, stats->rx_errors,
1678 stats->rx_dropped + stats->rx_missed_errors,
1679 stats->rx_fifo_errors,
1680 stats->rx_length_errors + stats->rx_over_errors
1681 + stats->rx_crc_errors + stats->rx_frame_errors,
1682 stats->rx_compressed, stats->multicast,
1683 stats->tx_bytes,
1684 stats->tx_packets, stats->tx_errors, stats->tx_dropped,
1685 stats->tx_fifo_errors, stats->collisions,
1686 stats->tx_carrier_errors + stats->tx_aborted_errors
1687 + stats->tx_window_errors + stats->tx_heartbeat_errors,
1688 stats->tx_compressed);
1689 else
1690 size = sprintf(buffer, "%6s: No statistics available.\n", dev->name);
1691
1692 return size;
1693 }

ちょっと、分かりにくいですが...
frame の方は
stats->rx_length_errors + stats->rx_over_errors
+ stats->rx_crc_errors + stats->rx_frame_errors

carrier の方は
stats->tx_carrier_errors + stats->tx_aborted_errors
+ stats->tx_window_errors + stats->tx_heartbeat_errors

となっていますね。
frame はネットワークのエラーで規格外に大きい Ether フレームを受信した時に出るらしいですが、carrier の方はキャリア(搬送波)とかハートビートとか出てきてるので、やはりかなり物理層に近いところのエラーなんでしょうね。
実際にこれらの統計情報を集計するのはドライバモジュールの仕事らしいので、「どんな時にでるの?」という疑問を解決するには、ドライバのソースをハックして、しかも実験してみないと実際のところは分からなさそうです...

教えていただいたスレッドを読んだ感じでは、ばかハブをスイッチに換えたら発生しなくなったとか言う話も出ているので、ハブやケーブルとの相性とかそんな感じなんでしょうかね。

ソースを追っかける頭も気力もないので、今回はこのくらいにしておきます。
ありがとうございました。
オルメカ
会議室デビュー日: 2003/12/03
投稿数: 5
投稿日時: 2003-12-04 12:54
引用:

okumuraさんの書き込み (2003-12-04 10:26) より:
LANカードのチップがカニさんマークだったりしませんでしょうか。。



okumura さん、ありがとうございます。

特に問題が出ているというわけでもないので、チップは特定していません。
また、もと記事に貼り付けた ifconfig のマシンは運用中のサーバなので、ふたを開けるわけにも行かず...
まぁそもそもこのマシンではエラー出てないんですが。

カニマークだとエラーが出やすいんでしょうか?

ちなみに、上記のマシンのデバイス情報はこんな感じ↓です。

00:02.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 08)
Subsystem: Dell Computer Corporation: Unknown device 010b
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (2000ns min, 14000ns max), cache line size 08
Interrupt: pin A routed to IRQ 11
Region 0: Memory at fe102000 (32-bit, non-prefetchable) [size=4K]
Region 1: I/O ports at ecc0 [size=64]
Region 2: Memory at fe000000 (32-bit, non-prefetchable) [size=1M]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable+ DSel=0 DScale=2 PME-
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2003-12-04 21:42
引用:

オルメカさんの書き込み (2003-12-04 12:54) より:
カニマークだとエラーが出やすいんでしょうか?


ネットワークオタクの間では「史上最悪のネットワークインタフェース
コントローラ」として有名です。
# ウチではカニを追放したが、今度は VIA-Rhine がエラーを...
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2003-12-05 00:16
"carrier" は 10BASE-2 や 10BASE-5 のような CSMA/CD(Carrier Sense, Multiple Access with Collision Detection) を使う物理層固有のエラーではないでしょうか。
オルメカ
会議室デビュー日: 2003/12/03
投稿数: 5
投稿日時: 2003-12-05 00:34
ぽんすさん、こんばんわ。ありがとうございます。

引用:

ぽんすさんの書き込み (2003-12-04 21:42) より:
ネットワークオタクの間では「史上最悪のネットワークインタフェース
コントローラ」として有名です。
# ウチではカニを追放したが、今度は VIA-Rhine がエラーを...



史上最悪とは穏やかじゃないですね...(^^;

具体的には何をしてくれちゃうのでしょうか?
カニマークのチップはたびたび見かけたことはありますが、自分で選んで使ったこともないのでその感覚がよくわからないですが、どんな風に最悪なんでしょうか?
デバイス自身にバグがあるとかなんですか?
何かネットワーク全体に影響するような、ただならぬ挙動を示すんでしょうか...

うーん、ちょっと想像付きません。

使用を避けた方が良いというような問題があるのでしたら教えていただけますでしょうか。
よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)