CentOS ではデフォルトの eth0 インターフェースがデフォルトでダウンしているのはなぜですか?

CentOS ではデフォルトの eth0 インターフェースがデフォルトでダウンしているのはなぜですか?

私はすでに Debian や Ubuntu (非常に似ています) などの Linux ディストリビューションに少しは精通していますが、Red Hat ベースの CentOS 6.2 を試してみたかったのです。VirtualBox の Windows 7 ホストにインストールして、少し試してみました。

ちょっとした問題に遭遇しました。つまり、デフォルトのeth0インターフェースがデフォルトでダウンしているということです。NAT のオプションを使用します (仮想マシンはホストの「背後」にあります)。 でインターフェースを起動してもifconfig eth0 up、すぐには機能しません。インターフェースを起動すると、次のメッセージが表示されます。

eth0      Link encap:Ethernet  HWaddr 08:00:27:0F:00:8A
          inet6 addr: fe80::a00:27ff:fe0f:8a/64 Scope:Link
          UP BROADCAST RUNNNING MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carriers:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
          Interrupt:19 Base address:0xd020

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:75:C2:9B
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
[root@centos ~]# _

CentOS マシンでネットワークを構成するには、さらに何を行う必要がありますか?

答え1

編集します/etc/sysconfig/network-scripts/ifcfg-$IFNAMEONBOOT行の値を に変更しますyes

$IFNAMEeth0多くのEL6ボックスにはありますが、一貫したネットワークデバイスの命名スキームの場合、 のような他のスキームになることもありますen3p1。このスキームは EL6 ではオプションですが、EL7 以降ではデフォルトです。 コマンドを使用して、ip link現在ダウンしているものも含め、ネットワーク インターフェイスの一覧を取得します。

今後のインストールでは、より注意を払ってください。ネットワーク構成セクションのオプションを無視して、起動時にインターフェイスを起動するように指示しました。この起動時のオプションは、EL6 以降ではデフォルトでオフになっていますが、以前のバージョンではデフォルトでオンになっていました。

インストール時の初回起動時にネットワーク インターフェイスが起動するようにするには、ネットワーク構成画面のConfigureGeneralタブに移動し、 というラベルの付いたボックスをオンにしますAutomatically connect to the network when available

に関してなぜセキュリティ上の理由から、この設定が変更されたのでしょう。これにより、初めてネットワーク インターフェイスを起動してボックスを外部に公開する前に、デフォルトの設定を少し厳しくすることができます。

答え2

ネットワークに DHCP サーバーがない場合は、静的 IP アドレスを設定する必要があります。次の例を検討してください。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=none
DEVICE=eth0
IPADDR=192.168.1.10 # your IP address
NETMASK=255.255.255.0 # your netmask
NETWORK=192.168.1.0 
ONBOOT=yes

ファイルに GATEWAY を追加します/etc/sysconfig/network:

NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hostname.domainname
GATEWAY=192.168.1.1 # your gateway

起動時にネットワークを開始するには、次のコマンドを実行します。

chkconfig network on

ネットワーク サービスを再起動します。

service network restart

ネットワークインターフェースを見てみましょう

ifconfig

答え3

使用している CentOS のバージョンについては触れていません。私が間違っていなければ、6.x ではデフォルトで NetworkManager が使用されます。

私はサーバーに X ウィンドウをインストールすることはめったにないので、NetworkManager は私にとっては面倒です。これを無効にして、標準の「ネットワーク」サービスを有効にします。

chkconfig NetworkManager オフ
chkconfig ネットワーク オン

サービス NetworkManager 停止
サービス ネットワーク 開始

インターフェースでDHCPを有効にするには、を実行しsystem-config-network、適切なデバイスを編集して保存し、ネットワークサービスを再起動します。または、編集し/etc/sysconfig/network-scripts/ifcfg-eth0て追加することもできます。

ONBOOT=yes
BOOTPROTO=dhcp

変更を保存し、ネットワーク サービスを再起動します。

答え4

実験と読書から得た情報から判断すると、Network Manager はデフォルトで読み込まれるようですが、ネットワーク サービスは読み込まれないという点については、私も uther の意見に同意します。

最近、VM ホストが起動しても ifconfig 出力に eth0 が表示されませんでしたが、これは Network Manager が実行されていて、ネットワークが実行されておらず、ファイルNM_CONTROLLED=no内に/etc/sysconfig/network-scripts/ifcfg-eth0.

を実行するとすぐにservice network restart、ifconfig の出力に eth0 が表示されました。ただし、再起動すると再び消えてしまいました。

私の場合の解決策は、 を設定し、起動時にネットワーク サービスをオンにすることのようですNM_CONTROLLED=no( /etc/sysconfig/network-scripts/ifcfg-eth0utherchkconfig network onと alexnorthsoul が指摘しているように)。NetworkManager をデフォルトでオフにすることもできます (オフにすべきでしょうか?) が、私の環境では今のところ正常に動作しており、他の部分に触れるのは不安です。

ちなみに、私の目標は、システムが選択した静的 IP を尊重するようにすることでした。NetworkManager を実行したまま設定NM_CONTROLLED=yes(または省略) すると、ifconfig に eth0 が表示されましたが、そのアドレスは静的 IP ではなく DHCP アドレスでした。そのため、NetworkManager をオフにすると DHCP が不要になり、ネットワークをオンにすると静的 IP を含む設定が読み込まれました。

私はシステム管理者ではなく、むしろ開発者なので、これは CentOS の専門家の言葉ではなく、必要な VM の構成を生き延びた者としての言葉です。

関連情報