1つの単一ネットワークインターフェイスに複数のIPアドレスを作成する


単一のネットワークインターフェイスで複数のIPアドレスを作成または構成するという概念は、IPエイリアスと呼ばれます。 IPエイリアスは、単一のサブネットネットワーク上で異なるIPアドレスを持つ単一のネットワークインターフェイスを使用して、Apache上に複数の仮想サイトを設定する場合に非常に役立ちます。

このIPエイリアスを使用する主な利点は、各IPに物理アダプタを接続する必要がないことです。代わりに、単一の物理カードに複数または多数の仮想インターフェイス(エイリアス)を作成できます。

ここに記載されている手順は、Red Hat、Fedora、CentOSなどのすべての主要なLinuxディストリビューションに適用されます。複数のインターフェースを作成し、それにIPアドレスを手動で割り当てることは、困難な作業です。ここでは、一連のIP範囲を定義するIPアドレスを割り当てる方法を説明します。また、仮想インターフェイスを作成し、さまざまな範囲のIPアドレスを一度にインターフェイスに割り当てる方法についても理解してください。この記事ではLANIPを使用したので、使用するものに置き換えます。

仮想インターフェイスの作成と複数のIPアドレスの割り当て

ここに、イーサネットデバイスのデフォルトインターフェイスである「ifcfg-eth0」というインターフェイスがあります。 2番目のイーサネットデバイスを接続した場合は、接続したデバイスごとに「ifcfg-eth1」デバイスなどがあります。これらのデバイスネットワークファイルは、「/ etc/sysconfig/network-scripts /」ディレクトリにあります。ディレクトリに移動し、「ls-l」を実行してすべてのデバイスを一覧表示します。

# cd /etc/sysconfig/network-scripts/
# ls -l
ifcfg-eth0   ifdown-isdn    ifup-aliases  ifup-plusb     init.ipv6-global
ifcfg-lo     ifdown-post    ifup-bnep     ifup-post      net.hotplug
ifdown       ifdown-ppp     ifup-eth      ifup-ppp       network-functions
ifdown-bnep  ifdown-routes  ifup-ippp     ifup-routes    network-functions-ipv6
ifdown-eth   ifdown-sit     ifup-ipv6     ifup-sit
ifdown-ippp  ifdown-tunnel  ifup-isdn     ifup-tunnel
ifdown-ipv6  ifup           ifup-plip     ifup-wireless

3つのIPアドレス(172.16.16.126、172.16.16.127、および172.16.16.128)をNICにバインドするために、3つの追加の仮想インターフェイスを作成するとします。したがって、「ifcfg-eth0」が同じプライマリIPアドレスを維持しながら、3つの追加のエイリアスファイルを作成する必要があります。これが、次のIPアドレスをバインドするための3つのエイリアスのセットアップに進む方法です。

Adapter            IP Address                Type
-------------------------------------------------
eth0              172.16.16.125            Primary
eth0:0            172.16.16.126            Alias 1
eth0:1            172.16.16.127            Alias 2
eth0:2            172.16.16.128            Alias 3

ここで、「:X」は、インターフェースeth0のエイリアスを作成するためのデバイス(インターフェース)番号です。エイリアスごとに、順番に番号を割り当てる必要があります。たとえば、インターフェイス「ifcfg-eth0」の既存のパラメータを、ifcfg-eth0:0、ifcfg-eth0:1、およびifcfg-eth0:2という仮想インターフェイスにコピーします。ネットワークディレクトリに移動し、以下に示すようにファイルを作成します。

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:0
# cp ifcfg-eth0 ifcfg-eth0:1
# cp ifcfg-eth0 ifcfg-eth0:2

ファイル「ifcfg-eth0」を開き、内容を表示します。

[[email protected] network-scripts]# vi ifcfg-eth0

DEVICE="eth0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.125
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

ここでは、2つのパラメーター(DEVICEとIPADDR)のみが必要です。したがって、VIエディターで各ファイルを開き、DEVICE名の名前を対応するエイリアスに変更し、IPADDRアドレスを変更します。たとえば、VIエディタを使用してファイル「ifcfg-eth0:0」、「ifcfg-eth0:1」、および「ifcfg-eth0:2」を開き、両方のパラメータを変更します。最後に、以下のようになります。

DEVICE="eth0:0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.126
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C
DEVICE="eth0:1"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.127
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C
DEVICE="eth0:2"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.128
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

すべての変更を行ったら、すべての変更を保存し、ネットワークサービスを再起動/開始して、変更を反映させます。

[[email protected] network-scripts]# /etc/init.d/network restart

すべてのエイリアス(仮想インターフェイス)が稼働していることを確認するには、「ifconfig」または「ip」コマンドを使用できます。

[[email protected] network-scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:198 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:25429 (24.8 KiB)  TX bytes:26910 (26.2 KiB)
          Interrupt:18 Base address:0x2000

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

異なるマシンからそれぞれにpingを実行します。すべてが正しくセットアップされている場合は、それぞれからping応答を受け取ります。

ping 172.16.16.126
ping 172.16.16.127
ping 172.16.16.128
[[email protected] ~]# ping 172.16.16.126
PING 172.16.16.126 (172.16.16.126) 56(84) bytes of data.
64 bytes from 172.16.16.126: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.126: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.126: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.126 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

[[email protected] ~]# ping 172.16.16.127
PING 172.16.16.127 (172.16.16.127) 56(84) bytes of data.
64 bytes from 172.16.16.127: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.127: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.127: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.127 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

[[email protected] ~]# ping 172.16.16.128
PING 172.16.16.128 (172.16.16.128) 56(84) bytes of data.
64 bytes from 172.16.16.128: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.128: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.128: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.128 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

すべてがスムーズに機能しているようです。これらの新しいIPを使用すると、Apache、FTPアカウント、その他多くの仮想サイトをセットアップできます。

複数のIPアドレス範囲を割り当てる

「ifcfg-eth0」と呼ばれる特定のインターフェースに複数のIPアドレスの範囲を作成する場合は、「ifcfg-eth0-range0」を使用して、以下に示すようにifcfg-eth0の内容をコピーします。

[[email protected] network-scripts]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp -p ifcfg-eth0 ifcfg-eth0-range0

次に、「ifcfg-eth0-range0」ファイルを開き、以下に示すように「IPADDR_START」と「IPADDR_END」のIPアドレス範囲を追加します。

[[email protected] network-scripts]# vi ifcfg-eth0-range0

#DEVICE="eth0"
#BOOTPROTO=none
#NM_CONTROLLED="yes"
#ONBOOT=yes
TYPE="Ethernet"
IPADDR_START=172.16.16.126
IPADDR_END=172.16.16.130
IPV6INIT=no
#GATEWAY=172.16.16.100

保存してネットワークサービスを再起動/開始します

[[email protected] network-scripts]# /etc/init.d/network restart

仮想インターフェイスがIPアドレスで作成されていることを確認します。

[[email protected] network-scripts]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1249 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:127317 (124.3 KiB)  TX bytes:200787 (196.0 KiB)
          Interrupt:18 Base address:0x2000

eth0:0     Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.129  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:4    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.130  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

設定に問題がある場合は、コメントセクションに質問を投稿してください。