CentOS 7のネットワーク管理基礎(後編)

2015年1月8日(木)
古賀 政純

ネットワークインタフェース名を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キーを押します。

図7:nmtuiを使ってネットワークインタフェースを設定する

現在認識されているNICのインタフェース名がeno1、eno2、eno3、eno4として表示されています。現在のインタフェースeno1、eno2、eno3、eno4全てを削除します。削除は、にカーソルを合わせ、Enterキーを押すと、「Are you sure you want to delete the connection 'eno'?」と表示されますので、「Delete」を選択し、インタフェースを削除します。eno2からeth4まで同様の操作を繰り返します。カーソルの移動は上下左右の矢印キーで操作可能です。

図8:現在のインタフェースeno1、eno2、eno3、eno4が表示されている。これら全てを削除する

図9:インタフェースeno1、eno2、eno3、eno4をすべて削除した状態

次に、新しいインタフェース名eth0、eth1、eth2、eth3を作成します。新しくインタフェースを作成するには上図のを選択します。すると、「Select the type of connection you wish to create.」と表示され、インタフェースの接続タイプを選択するメッセージが表示されますので、「Ethernet」を選択し、「Create」にカーソルを合わせ、Enterキーを押します。

図10:接続タイプとしてEthernetを選択し、インタフェースを作成する様子

「Edit connection」の画面に遷移し、「Profile name」に「eth0」を入力します。Device名にも、「eth0」を入力します。nmtuiは、「Device」欄に入力されたeth0で現在のインタフェースとMACアドレスを紐づけて管理していますので、「Device」欄は必ず入力します。IPアドレスの設定は、「IPv4 CONFIGURATION 」で設定できます。にカーソルを合わせ、Enterキーで選択すると、プルダウンメニュー「Manual」が表示されますので、その後、「IPv4 CONFIGURATION 」の画面右端にあるを選択すると、手動で固定IPアドレスを割り振ることができます。

図11:デフォルトは、IPアドレスが自動的に割り当てられうように設定されているため「Automatic」になっている

図12:固定IPアドレスを割り振るため、「Manual」を選択する

固定IPアドレスは、「Addresses」、デフォルトゲートウェイのIPアドレスは「Gateway」、DNSサーバーのIPアドレスは、「DNS servers」、検索ドメイン名は、「Search domains」に入力します。必要事項を入力したら、下キーでカーソルを画面下部にスクロールさせ、「OK」を選択し、設定を確定させます。

図13:固定IPアドレスをeth0に対して設定している様子

再度、編集画面に移ると、「Device」欄にeth0に対応したMACアドレスが自動的に表示されているはずですので、確認しておきます。

図14:nmtuiが認識したポートのMACアドレスを「Device」欄で確認しておく

eth0と同様に、eth1、eth2、eth3についても、適切に設定を行います。全てのインタフェースが適切に登録されていることを確認したら、「Quit」を選択し、nmtuiを終了します。

図15:全てのインタフェース名がethXで登録されていることを確認

/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実践ガイド

古賀 政純 著
価格:3,000円+税
発売日:2015年2月25日発売
ISBN:978-4-8443-3753-9
発行:インプレスジャパン

CentOS 7実践ガイド

本書は、CentOS 7を取り巻く市場動向、CentOS 7が利用されるサーバーシステムの選定、CentOS 7の基礎、システム設計、OS管理やCentOS 7に対応したアプリケーションサーバーの構築手順などの勘所をご紹介します。連載では書ききれなかった本の内容、見どころが満載!

  • セキュリティ管理
  • チューニング
  • 自動インストール
  • Hadoop構築
  • GlusterFS
  • Ceph

Amazon詳細ページへImpress詳細ページへ

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています