Overview
CentOS 6 における各種ネットワークの設定例です。
/etc/sysconfig/network
/etc/sysconfig/network は、ネットワーク設定の中心となる設定ファイルです。
[root@centos-6 ~]# cp /etc/sysconfig/network /etc/sysconfig/network.orig
[root@centos-6 ~]# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
NOZEROCONF=yes
VLAN=yes
HOSTNAME=centos-6
GATEWAY=10.0.0.1
NETWORKING=yes
: ネットワークの設定が有効であることを示しています。この設定が yes になっている場合、システム起動時にネットワークサービスが起動します。NETWORKING_IPV6=no
: IPv6 ネットワーキングを無効化しています。NOZEROCONF=yes:
Zeroconf (Zero Configuration Networking) を無効にする設定です。Zeroconf は、特定のネットワーク設定なしにネットワークデバイスを自動的に設定する技術です。yes と設定されているため、Zeroconf は無効になっています。具体的な効果としては、ルーティングテーブルに自動的に設定される 169.254.0.0 を無効化することができます。VLAN=yes
: VLAN のサポートが有効にしています。VLAN を使用する場合は必須ですが、使用しない場合は、no を指定するか、設定を削除します。HOSTNAME=centos-6
: ホスト名の設定です。GATEWAY=10.0.0.1
: デフォルトゲートウェイの設定です。DHCP を使用するホストは設定不要です。
IPv6 モジュール無効化
IPv6 を完全に無効化するには以下の設定が必要です。
[root@centos-6 ~]# echo "options ipv6 disable=1" > /etc/modprobe.d/disable-ipv6.conf
[root@centos-6 ~]# reboot
IP アドレス設定
固定 IP アドレス
固定 IP アドレスの設定は以下のとおりです。
[root@centos-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.orig
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.10
NETMASK=255.255.255.0
ARPCHECK=no
DEVICE=eth0
: ネットワークインターフェースのデバイス名を eth0 としています。このデバイス名は udev で制御されており、具体的には MAC アドレスとデバイス名が紐づけられています。ONBOOT=yes
: システムの起動時にこのネットワークインターフェースを自動的にアクティブにする設定です。yes に設定されているため、システム起動時に eth0 インターフェースが自動的に起動します。BOOTPROTO=none
: ブートプロトコルの設定です。none に設定されているため、DHCP を使用せずに静的 IP アドレスを手動で設定しています。IPADDR=10.0.0.10
: eth0 インターフェースに設定する IP アドレスを 10.0.0.10 としています。NETMASK=255.255.255.0
: サブネットマスクの設定です。ARPCHECK=no
: ARP (Address Resolution Protocol) チェックを無効にする設定です。no に設定されているため、ARP チェックが無効になっています。CentOS 6 では、ARP チェックが有効である場合、ネットワークの起動が非常に遅くなるため、それの回避策として無効化しています。ただし、通常は ARP チェックを有効にすべきであり、環境に応じた適切な設定が必要です。
動的 IP アドレス (DHCP)
動的 IP アドレス (DHCP) の設定は以下のとおりです。
[root@centos-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.orig
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
PEERDNS=no
BOOTPROTO=dhcp
: ブートプロトコルの設定です。dhcp に設定されているため、DHCP (Dynamic Host Configuration Protocol) を使用して IP アドレス、サブネットマスク、ゲートウェイなどのネットワーク設定を自動的に取得します。PEERDNS=no
: PEERDNS は、ネットワークインターフェースが起動した際に、/etc/resolv.conf ファイルを更新するかどうかを制御するオプションです。この例では no に設定されているため、eth0 インターフェースの起動時に /etc/resolv.conf を更新しません。一般的に、DHCP でネットワーク情報を取得する場合、DNS の情報も更新しますが、特定の環境では別の DNS を指定したいケースがあるため、あえて標準の設定項目としています。yes にすると、eth0 インターフェースの起動時に /etc/resolv.conf を更新します。
仮想マシン用ブリッジインターフェイス①
この設定例は、KVM ホストの仮想マシン用のシンプルなネットワーク設定となります。KVM ホストにブリッジインターフェイスを作成し、仮想マシンから利用可能にします。
通常のインターフェイス
通常のインターフェイスを設定します。BRIDGE=br0
はこのインターフェイスが所属するブリッジインターフェイスを指定します。
[root@centos-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.orig
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
ブリッジインターフェイス
ブリッジインターフェイスを作成します。TYPE=Bridge
でブリッジインターフェイスであることを指定しています。このブリッジインターフェイスに IP アドレスを設定することも可能ですが、ハイパーバイザーとゲスト OS はネットワーク的にも分離させた方が良いため、推奨しません。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
仮想マシン用ブリッジインターフェイス②
この設定例は、KVM ホストの仮想マシン用の高度なネットワーク設定となります。KVM ホストにボンディングインターフェイス、VLAN インターフェイス、ブリッジインターフェイスを作成し、仮想マシンから利用可能にします。ネットワーク設定が多層構造になるため、設定が複雑になります。
通常のインターフェイス
通常のインターフェイスを設定します。MASTER=bond0
でインターフェイスが所属するボンディングインターフェイスを指定し、SLAVE=yes
でこのインターフェイスがボンディングインターフェイスのスレーブであることを指定しています。本稿では、eth0, eth1 の 2 つのインターフェイスをボンディングします。
[root@centos-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.orig
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
[root@centos-6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1.orig
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ボンディングインターフェイス
ボンディングインターフェイスを作成します。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=4 miimon=100"
BONDING_OPTS=
: ボンディングのオプションを設定するための行です。
mode=4
: ボンディングモードを設定します。mode=4 は IEEE 802.3ad (LACP) モードを指定しています。このモードでは、複数の物理インターフェースが 1 つの論理的なインターフェースとして動作し、帯域幅の増加と冗長性を提供します。対向スイッチも IEEE 802.3ad に対応している必要があります。miimon=100
: miimonオプションは、ミリ秒単位でモニターリングインターバルを設定します。この設定例では、100 ミリ秒ごとに物理インターフェースのリンク状態を確認します。ボンディングインターフェースの冗長性を維持するために、この値が低い方が好ましいとされます。
VLAN インターフェイス
ボンディングインターフェイスから VLAN インターフェイスを作成します。この例では VLAN1000, 1001 を作成しています。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.1000
DEVICE=bond0.1000
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br1000
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0.1001
DEVICE=bond0.1001
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br1001
- VLAN インターフェイスのデバイス名は bond0.[VID] となります。VIDは 4 桁で指定します。
- 各 VLAN インターフェイスは、
BRIDGE=
で指定したブリッジインターフェイスに所属します。
ブリッジインターフェイス
ブリッジインターフェイスを作成します。TYPE=Bridge
でブリッジインターフェイスであることを指定しています。このブリッジインターフェイスに IP アドレスを設定することも可能ですが、ハイパーバイザーとゲスト OS はネットワーク的にも分離させた方が良いため、推奨しません。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1000
DEVICE=br1000
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br1001
DEVICE=br1001
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
ループバックアドレス
Cisco 等のネットワークデバイスと同様に、個別にループバックアドレスを設定することが可能です。本稿では、Quagga でダイナミックルーティングを実行する際のルーター ID として使用しました。ループバックアドレスは 32bit (255.255.255.255) のアドレスです。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=10.0.0.20
NETMASK=255.255.255.255
スタティックルート
スタティックルートは、デフォルトゲートウェイとは別に、個別のルーティングを設定します。
[root@centos-6 ~]# vim /etc/sysconfig/network-scripts/route-eth0
10.0.0.0/8 via 10.0.0.2
172.16.0.0/12 via 10.0.0.2
192.168.0.0/16 via 10.0.0.2
/etc/hosts
hosts は、デフォルトでは DNS より優先した名前解決です。書き方は各自こだわりがあると思いますが、この設定例はデフォルトの記載内容に合わせています。
[root@centos-6 ~]# cp /etc/hosts /etc/hosts.orig
[root@centos-6 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain
127.0.0.1 centos-6 centos-6.si1230.com
/etc/resolv.conf
/etc/resolv.conf は参照する DNS サーバーを指定します。search
は設定したドメイン名を補完する設定となります。
[root@centos-6 ~]# cp /etc/resolv.conf /etc/resolv.conf.orig
[root@centos-6 ~]# vim /etc/resolv.conf
search si1230.com
nameserver 10.0.0.53