前回の記事
半導体不足でラズパイ品薄状態の中、何とかRaspberry Pi 4のスターターキットを購入し、初期セットアップも完了しました。いよいよAIカメラ作成に取り掛かろうと意気込んでいましたが、有線LANで接続しているにもかかわらず、ブラウザが開かない。
一方、大学の研究室の有線を使用していて、WindowsのノートPCは問題なく優先でネットにアクセスできていました。ラズパイもネットに接続できない理由はないと信じて、1週間かけて解決策を探し続けました。
1. IPアドレスの確認
まず、Raspberry Pi のターミナルにて
ip addr
ifconfig
でIPアドレスを確認しました。出力結果において、Wi-Fiならwlan0、イーサネット(有線)ならeth0の箇所を確認したところ、169.254. …といったIPアドレスが割り当てられていることが分かりました。
IPアドレスは通常192.*.*.* , 172.*.*.*, 10.*.*.*のいづれかで割り当てられるはずですが、私の場合は169から始まっています。169.254.*.*, 0.0.0.0といったIPアドレスが割り当てられていることは、IPアドレスの自動取得が正常に動作していない可能性が高いことを示唆しています。
169から始まるIPアドレスが割り当てられる理由:
169.*.*.*というIPアドレスは、DHCPからのアドレス割り当てが正常に動作していないとき、端末側(PCやラズパイ)が勝手にIPアドレスを自称しているものです。この状態では、当然、インターネットに接続することはできませんが、同じネットワーク内の他の端末とはやり取りができるとか…(未だ確認していないのでわかりません)
2. WindowsPCのIPアドレスの確認
私がラズパイで接続しているネットワークは、WindowsPCと同じものでした。同じ部屋で使用しているので当然ではありますが、同じネットワークの有線を使用していて、WindowsPCしかネットにつながらないのは不自然です。そこで、ネットに接続できているWindowsPCのIPアドレスを確認しました。それが分かれば、ラズパイ側で最終的に割り当てられるべきIPアドレスを知ることができます。
WindowsPCを有線接続した状態で
コントロールパネル⇒インターネットとネットワーク⇒ネットワークと共有センター⇒イーサネット⇒詳細
のようにたどったところ、WindowsPCに割り当てられていたIPアドレス(IPv4アドレス)は133.*.*.*でした。133から始まるIPアドレスは、インターネットが登場して間もない頃、大学や企業に対して割り当てられたIPアドレスです。今回、大学でネットに接続しているため、192や172で始まるIPアドレスではないことは問題ではないと判断しました。
3. ラズパイのIPアドレスを正常にするには?
ここまでで、WindowsPCには正常にIPアドレスが割り当てられており、ネットにも問題なく接続できることが分かりました。同じネットワークを使用しているのですから、ネットワークの設定さえ正しく行えば、ラズパイもネットに接続できるはずです。ここで、解決策として考えた手段は2つです。
1.DHPCからのIPアドレスが割り当てを正常に動作させる。
2.固定IPアドレスを設定する。
4. DHPCからのIPアドレスが割り当てを正常に動作させたい
まず、Raspberry Piのターミナルにて、以下のコマンドを実行します。これによって、DHCPクライアントを動作させ、IPアドレスを自動的に取得することが可能です。
sudo dhclient eth0
WindowsPCと同じような(133で始まる)IPアドレスを取得できていればOKです。
ifconfig
で、IPアドレスを確認します。Wi-Fiならwlan0、イーサネット(有線)ならeth0の箇所です。この時点でIPアドレスが反映されるかはわかりませんが、基本的には再起動する必要があります。
reboot
rebootコマンド、またはシャットダウンボタンの隣にある再起動ボタンを押して、再起動します。
5. デフォルトゲートウェイの確認
4. をやってもIPアドレスが正しく割り当てられない場合の対処法です。私は、4.よりも先にやってしまいましたが、4より後でも先でも、ネットに接続できない場合、デフォルトゲートウェイの確認は重要です。デフォルトゲートウェイが複数存在するとき、metric(メトリック)という値が小さいほうが優先的に採用されるようです。今回の場合、169.で始まるデフォルトゲートウエイが優先されていたので、以下のコマンドを実行することで、169.のデフォルトゲートウエイを削除しました。
デフォルトゲートウエイの確認
ip route
不適切なデフォルトゲートウエイ169.*.*.*が最優先になっている場合、それを削除する。
sudo ip route def default
デフォルトゲートウエイを再確認。一番上が目的の192.*.*.*などに変わっていれば成功。
sudo ip route
ここまでの対処法で、(大学のネットワークの)133.で始まるIPアドレスを取得し、デフォルトゲートウエイの問題も解決しました。しかし、未だブラウザを開くことができませんでした。
6. 固定IPアドレスを設定
次の対処法として、IPアドレスの自動割り振りが上手くいっていない可能性があると考えて、固定IPアドレスの設定をしてみました。まずは、4.と同じくIPアドレスの自動取得を行います。
sudo dhclient eth0
自動取得できているかの確認も4.と同様です。
ifconfig
以下のコマンドで時々刻々とテスト結果が出力されれば、接続できています。
ping ここに固定IPアドレス
ちなみに、pingコマンドではW-iFiやイーサネットの接続確認をすることができます。
私の場合、pingコマンドによって、ネットワークに接続できていることが確認できたにも関わらず、結局ブラウザでWebページを開くことはできませんでした。こうなっては、もうお手上げ状態です。次に、最後の解決策を紹介します。
7. 結論:大学のネットワークとラズパイの相性が悪い
私は学生寮に住んでいたため、大学のネットワークは一旦諦めて、寮の有線・Wi-Fiともにラズパイでの接続を試みました。確認したかったことは以下の2点です。
1. そもそもラズパイの不具合なのではないか?
2. 大学のネットワークを使用していることが問題なのではないか?
結論としては、寮では有線・Wi-Fiともに、問題なく接続でき、ブラウザも無事に開くことができました。よって、ラズパイに不具合が生じているわけではなかったようです。また、133.で始まるIPアドレスは怪しいなと感じていたものの、WindowsPCではネットに接続できたため、問題ないだろうと思っていました。しかし、寮のネットワーク接続時のIPアドレスは一般的な192.で始まる値でしたし、何か関係はありそうです。もやもやしていた所、
このような記事を発見しました。ラズパイを用いて、企業や大学のネットワーク経由でインターネットに接続する際は、少し面倒な認証が必要だそうです。
最後に
結局、大学のネットワークとラズパイの相性が悪かったのが、今回の問題の原因でした。
ラズパイを購入し、早々に面倒な壁にぶつかりましたが、色々とネットワーク関連の勉強になりました。失敗や難題から学ぶことは多い、という気づきを得られました。
コメント