CentOS 7のネットワーク管理基礎(後編)
ネットワークインタフェース名をethXに設定する
従来のCentOS 6系では、一般的に、OSが認識するNICのインタフェース名がeth0やeth1等で表記されていましたが、CentOS 7から、デフォルトでは、システムによって名前が自動的に割り当てられるようになりました。例えば、HP ProLiant DL385p Gen8サーバーの場合は、デフォルトでenoXというインタフェース名で登録されます。
# nmcli device DEVICE TYPE STATE CONNECTION eno1 ethernet connected eno1 eno2 ethernet connected eno2 eno3 ethernet unavailable -- eno4 ethernet unavailable -- lo loopback unmanaged --
CentOS 7において、従来のethXというインタフェース名でNICを管理するには、GRUBのパラメータを追加し、整合性のとれたifcfg-ethXを作成する必要があります。以下では、HP ProLiant DL385p Gen8サーバーに搭載されているオンボードの4ポートの物理NICに自動的に割り当てられたインタフェース名eno1、eno2、eno3、eno4を従来のeth0、eth1、eth2、eth3に割り当てる手順を紹介します。まず、/etc/default/grubファイルを編集します。/etc/default/grubファイルの「GRUB_CMDLINE_LINUX=...」の行がブートパラメータを記述する箇所です。GRUB_CMDLINE_LINUXに渡すパラメータに「net.ifnames=0 biosdevname=0」を追加します。
# cp /etc/default/grub /etc/default/grub.org # vi /etc/default/grub ... GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet net.ifnames=0 biosdevname=0" ←「net.ifnames=0 biosdevname=0」を追加 ...
上記、/etc/default/grubファイルの変更をGRUBの設定ファイル/boot/grub2/grub.cfgファイルに反映します。
# grub2-mkconfig -o /boot/grub2/grub.cfg
まだ、適切なifcfg-ethXは生成していませんが、この状態でOSを再起動します。
# reboot
CentOS 7が自動的に割り当てたNICの設定ファイルであるifcfg-enoXを破棄して、ethX用の設定ファイルを生成します。ifcfg-ethXファイルを生成するには、nmcliコマンドまたは、GUIベースの設定ツールであるnmtuiを使用します。ここでは、nmtuiを使って設定してみましょう。全てのネットワークインタフェース全てを編集しますので、SSH接続やVNC接続等での遠隔からの接続が切断されてしまいます。そこで、ネットワークインタフェースとは独立して稼働する遠隔管理専用のネットワークポート(HP ProLiantサーバーの場合はオンボードに搭載されたiLO4チップ等)が提供する仮想端末機能を使った遠隔管理か、ローカル接続のディスプレイとキーボード等を使った操作に切り替えて下さい。ハードウェアレベルでの遠隔操作環境あるいはローカル接続での操作環境が整ったら、コマンドラインからnmtuiを入力し、nmtuiを起動します。
# nmtui
現在の接続を編集するため、「Edit a connection」を選択します。選択は、Enterキーを押します。
現在認識されているNICのインタフェース名がeno1、eno2、eno3、eno4として表示されています。現在のインタフェースeno1、eno2、eno3、eno4全てを削除します。削除は、
次に、新しいインタフェース名eth0、eth1、eth2、eth3を作成します。新しくインタフェースを作成するには上図の
「Edit connection」の画面に遷移し、「Profile name」に「eth0」を入力します。Device名にも、「eth0」を入力します。nmtuiは、「Device」欄に入力されたeth0で現在のインタフェースとMACアドレスを紐づけて管理していますので、「Device」欄は必ず入力します。IPアドレスの設定は、「IPv4 CONFIGURATION 」で設定できます。
固定IPアドレスは、「Addresses」、デフォルトゲートウェイのIPアドレスは「Gateway」、DNSサーバーのIPアドレスは、「DNS servers」、検索ドメイン名は、「Search domains」に入力します。必要事項を入力したら、下キーでカーソルを画面下部にスクロールさせ、「OK」を選択し、設定を確定させます。
再度、編集画面に移ると、「Device」欄にeth0に対応したMACアドレスが自動的に表示されているはずですので、確認しておきます。
eth0と同様に、eth1、eth2、eth3についても、適切に設定を行います。全てのインタフェースが適切に登録されていることを確認したら、「Quit」を選択し、nmtuiを終了します。
/etc/sysconfig/network-scripts/ifcfg-ethXが正しく生成されているかを確認します。
# cd /etc/sysconfig/network-scripts/ # cat ifcfg-eth0 ... # cat ifcfg-eth1 ...
OSを再起動します。
# reboot
ipコマンド等で、eth0、eth1、eth2、eth3にIPアドレスが正しく設定され、通信できるかを確認してください。
NetworkManagerを使わずにNICを管理する
CentOS 7において、NICの設定を行うには、nmcliコマンドまたは、GUIベースの設定ツールのnmtuiを使用しますが、何らかの理由でnmcliやnmtuiが利用できない場合は、CentOS 6系と同様に、ifcfg-ethXを直接編集する方法でNICの設定を行うことができます。ただし、あくまでこれは、現時点で従来型の編集方法を可能とする後方互換性による回避策としての手順です。今後は、この方法がサポートされない可能性もありますのでご注意下さい。以下では、ファイルを直接編集する方法を掲載します。最近のx86サーバーは、物理NICポートを複数持っていますが、今回は、その複数のポートのうちの1つを設定することにします。まず、/etc/sysconfig/network-scripts/ディレクトリにあるオリジナルの設定ファイルを別のファイル名でコピーしておきます。
# cd /etc/sysconfig/network-scripts/ # mv ifcfg-eno1 org.ifcfg-eno1 # mv ifcfg-eno2 org.ifcfg-eno2 # mv ifcfg-eno3 org.ifcfg-eno3 # mv ifcfg-eno4 org.ifcfg-eno4 # cp org.ifcfg-eno1 ifcfg-eth0 # cp org.ifcfg-eno2 ifcfg-eth1 # cp org.ifcfg-eno3 ifcfg-eth2 # cp org.ifcfg-eno4 ifcfg-eth3
ifcfg-ethXファイルの中身を編集します。ifcfg-eth0ファイルでは、「DEVICE=eno1」と「NAME=eno1」となっている箇所を「DEVICE=eth0」及び「NAME=eth0」に変更します。さらに、NM_CONTROLLED=noを記述します。適宜、HWADDR=にMACアドレスを記述して下さい。
# vi ifcfg-eth0 ... DEVICE=eth0 ... NAME=eth0 ... NM_CONTROLLED=no ...
設定変更を反映させるため、OSを再起動します。
# reboot
OS再起動後、nmcliコマンドにより、上記のインタフェースが「unmanaged」になっていることを確認します。
# nmcli device show GENERAL.DEVICE: eth0 GENERAL.TYPE: ethernet GENERAL.HWADDR: 52:54:00:D0:CF:87 GENERAL.MTU: 1500 GENERAL.STATE: 10 (unmanaged) ←「unmanaged」になっていることを確認 GENERAL.CONNECTION: -- GENERAL.CON-PATH: -- WIRED-PROPERTIES.CARRIER: on ...
以上で、CentOS 7におけるネットワーク管理の基本をご紹介しました。ネットワークの運用管理手順が従来のCentOS 5やCentOS 6と大きく変更されているため、最初は戸惑うことが多いかと思います。ネットワーク関連の管理コマンドやオプションは膨大に存在するため、習得に時間がかかりますが、まずは、従来のコマンドでよく利用するものをピックアップし、CentOS 7でも同様に利用できるかを試してみて下さい。今回は、比較的よく利用すると思われる管理手順やコマンドを掲載しておきましたので、システムの構築や日常の運用管理に活用してみて下さい。
<編集部より>一部の曖昧な表現を修正しました(2015/1/29)
この連載が書籍になりました! | |
---|---|
古賀 政純 著 |
CentOS 7実践ガイド本書は、CentOS 7を取り巻く市場動向、CentOS 7が利用されるサーバーシステムの選定、CentOS 7の基礎、システム設計、OS管理やCentOS 7に対応したアプリケーションサーバーの構築手順などの勘所をご紹介します。連載では書ききれなかった本の内容、見どころが満載!
|