読者です 読者をやめる 読者になる 読者になる

渡米生活。(日記)

渡米生活。本家から切り離しました。あまり渡米生活に関係のないプログラムネタや音楽ネタなど。

ネットワークがこんな変な挙動をするときは、ハードウェアエラーを疑った方がいいかも、という話。

Dell PowerEdge T410にScientific Linux 6.3をインストール中に、ネットワークが信じられんような挙動を繰り返し、まさかハードウェアエラーとは思わず、1週間もはまりました……(汗)
結論は、オンボードのネットワークインターフェースが多分ダメ、という話。
しかも、なぜかScientific Linux 5.2のときはフツーに動いていたのに、システムをアップデートしたとたん駄目になった。なんかドライバとの相性が悪いんでしょうかね。
(全く同じマシン6台で、同じ構成でインストールして、1台だけがこうなったので、ハードの問題であることは間違いない)

以下、へんな動作の一覧。

  • ネットワークが不安定(pingを打っていると、いきなりレスポンスが返ってこなくなったり、もう一度打ち直すとDestination Unreachableとか言われる)
  • DMZ内のマシンから、DMZ外のマシンにはpingが通るのに、IPアドレスが1つ違いのDMZ内マシンには通らない。それどころか、ゲートウェイアドレス宛に打ってもDestination Unreachableが返って来る
  • /etc/rc.d/init.d/network restart をかけると、暫くは状況が改善するが、数十分たつとまたダメダメになる
  • ようやくpingがまともに通るようになったと思ったら、外部からsshが通らない(勿論iptablessshは許可している)
  • 何故か、SL6.3を積んだマシン側で、sshログインしたいユーザーがログインしていると、そのユーザ宛の外部からのsshは通る
  • しかし、そのユーザがログアウトすると、また通らなくなる
  • SL6.3を積んだマシン側で、rootでログインし、ネットワークのリスタートをかけると、そのマシン宛のsshが通るようになる
  • それじゃ、/etc/rc.d/rc.localに/etc/rc.d/init.d/network restartを書いておけば大丈夫なのか、と思ったら、それは効果なし

……もう、わけわからん、です。
誰かがサーバー側でログインしている間だけsshが通るって、そんなのアリなのか?!

最初3日は、ネットワークボードの故障とドライバの不具合を疑い、それから3日はiptablesの設定やSELinuxまわりを疑い、最後にIPv6の問題を疑ったけど、どうしてもsshの挙動がおかしい問題がクリアできず。

で、このままじゃ時間切れになる、と思って他のマシンも並列してアップデートかけはじめたら、他のマシンは全部デフォルト設定で何の問題もなく通信可能だった、という……(涙)

ほんと、中途半端に死ぬのやめてくれ。。(涙)

そういうわけで、当該マシンは別にネットワークカードを挿すことになりました。
どのネットワークカードが動作実績があるか分からなかったので、博打で買いましたが、大正解!
こいつをPCIe ポートに差して、システムをインストールしなおしてやったら勝手に認識しました。(システム再インストールなんてできないよ、という方は、がんばってドライバ探してください……)

INTEL(R) GIGABIT CT DESKTOP ADAPTER
X1 PCI EXPRESS COPPER ADAPTER
RUNS AT 10, 100, or 1000 MBPS
SUPPORTS WAKE ON LAN, 1 RJ45

だそうです。。。

ちなみに、以下は、苦戦中に調べたIPv6の殺し方。

1)IPv6を起動時に立ち上げないようにする

/etc/modprobe.d/disable_ipv6.conf というファイルを作成
  options ipv6 disable=1

2)今動いているip6tablesを停止

# service ip6tables stop
ip6tables: ファイアウォールルールを消去中: [ OK ]
ip6tables: チェインをポリシー ACCEPT に設定中: filter [ OK ]
ip6tables: モジュールを取り外し中: [ OK ]

起動時にip6tablesが走らないようにする
# chkconfig ip6tables off

3)NFS対策

/etc/sysconfig/network
  NETWORKING_IPV6=no

/etc/netconfig
  以下コメントアウト
  #udp6 tpi_clts v inet6 udp - -
  #tcp6 tpi_cots_ord v inet6 tcp - -