CentOS-6.5-x86_64-bin-DVD1.iso を VirtualBox にインストールして開発環境として使いたかったのです。
ネットワーク設定は、NATアダプターと、ホストオンリーアダプターです。
CentOS 5 のとき、たとえば 【VirtualBox】◆Mac◆★LAMP★ローカル開発環境構築【WordPress】 | oki2a24 のときはなにも問題ありませんでしたのに。。。
なんとか解決できまして、CentOS 5 のときと CentOS 6 のときでは設定するところが少し違いました。でも、根底にある理解すべき考え方はどちらも同じでした。しっかりと記憶に刻みつけるためにも、記録に残しておきますわ♪
DNS 名前解決できないエラーの解決のために理解しておくべきポイント
- IPV6 の有効無効は関係なかった。
- 仮想マシンのアダプターを理解すること
- NAT: ゲストOSとインターネットなどホストOSの外と通信するのに必要
- ホストオンリーアダプター: ゲストOSとホストOSとの間で通信するのに必要
- アダプターとゲストOS
- /etc/sysconfig/network-scripts/ifcfg-eth0 = NAT
- /etc/sysconfig/network-scripts/ifcfg-eth1 = ホストオンリーアダプター
- ifcfg-eth0 や ifcfg-eth1 の ONBOOT=yes にしておくと、network を start したときにそれぞれを起動できる。no の場合だと起動しないためアダプターは使えない。
DNS の名前解決ができていない yum での具体的なエラー
[root@localhost ~]# yum update Loaded plugins: fastestmirror Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again [root@localhost ~]#
エラーを解決し、yum update ができるようになるまでの試行錯誤記録
IPV6 を無効にしてみる。その1
このページを参考に試してみました。
新規ファイル作成
vi /etc/modprobe.d/ipv6.conf
次を書き込みます。
options ipv6 disable=1
IPV6 に対応するアプリの自動起動をオフにします。
chkconfig ip6tables off
そして ip6tables を停止いたしました。
service ip6tables stop
ダメでしたの><。IPV6 は無効にならず、DNS のエラーもそのままです><。
なお、確認するために、次のコマンドを使用しました。
service network restart ifconfig ping www.google.com
IPV6 を無効にしてみる。その2
ネットワークの共通設定で、IPV6を無効にいたしました。
vi /etc/sysconfig/network
次の行を追加いたしました。
NETWORKING_IPV6=no
場所は NETWORKING=yes の次の行です。
結果、、、IPV6 も DNS もダメでした><。
IPV6 を無効にしてみる。その3
各インターフェースの設定で無効にしてみました。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
でファイルを開き、
IPV6INIT=no
を最後に追加いたしました。
やはり変わらず IPV6 も DNS もダメでした><。
IPV6を無効にしてみる。その4
Kernel sysctl 設定ファイルを編集いたします。
vi /etc/sysctl.conf
最後に追加しました。
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
ifconfig で IPV6 が無効になったのは確認できました!。
しかしながら、DNS のエラーが解決ができません><。ここでようやく、少なくとも今回の DNS の名前解決エラーでは IPV6 が関係ないことがわかりました。
DNS に Google Public DNSを指定してみる
ですので、DNS の名前解決がされるように DNS 関係の設定を修正してみよう、そう考えましたの。
こちらのページを参考にいたしました。
DNS サーバ設定を追記していきます。
vi /etc/sysconfig/network-scripts/ifcfg-eth1
次の行を最後に追記いたしました。
DNS2=8.8.8.8
ダメでした。。。
なんの、諦めません!
を参考に、よりしっかり(!?)と Google Public DNS 設定を行います。先ひどの部分を次のように変えましたの。
DNS1=8.8.8.8 DNS2=8.8.4.4
どうかしら?。。。。。ダメでした><。
NAT のネットワーク設定の起動時の挙動を設定したら解決しました!
vi /etc/sysconfig/network-scripts/ifcfg-eth0
で ONBOOT=no から次のように yes に修正しました。
ONBOOT=yes
すると、DNS の問題が解決しました!yum update ができるようになりました!
ifcfg-eth0 は NAT でゲスト OS からインターネットなど外部につなぎに行く。これが ON になっていないため、DNS の名前解決ができなかったと結論づけられます。
今まで、ゲスト OS から外の世界(インターネットなど)への接続は確立されているものの、設定がおかしなためにうまく外の情報がとれていないのだと思い込んでおりました。
しかし、実際はゲスト OS から外の世界への接続自体が失敗していた、それどころか接続しようとすらされていなかった、という状況でしたの><。
わかってしまえば、アタリマエのことでしたわね。。。
おわりに
どうにも解決できませんでしたので、一度頭の中をリセットして CentOS 6 を VirtualBox に入れて LAMP を構築してみようと決心いたしました。
そのときに参考にさせていただいたページです。
これらはどちらも同じサイトのページで最初のページから次のページへのリンクが張られております。2番目のページに忠実に作業することで、yum update ができるようになりました♪
さらに、問題の原因となっていた、ONBOOT=yes も特定出来ました♪さらにさらに、1番目のページのアダプターの整理図のお陰で、理解しなければならない点についても、はっきりと認識することができましたの!
大きな助けとなりました。ありがとう存じます♪
また、直接解決にはつながらなくとも、IPV6 の無効化についてのページの筆者の皆様にも御礼申し上げます。
以上です。
「【CentOS 6】yum が DNS 名前解決できないエラーで使えない問題を解決【OSインストール後】」への2件の返信
この記事で解決に至りました。ありがとうございます。
解決しました。ありがとうこざいます。