既存のインターフェースに追加の IP を設定するにはどうすればよいですか?

既存のインターフェースに追加の IP を設定するにはどうすればよいですか?

インターフェースがありeth0、これに追加の仮想 IP を与えたいと考えています。これは次のようにして実現します。

ifconfig eth0:0 ip.address.goes.here netmask subnet.address.goes.here

これは正常に動作しますが、再起動すると失われます。

/etc/network/interfaces以下の内容を追加して編集してみました:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

ただし、再起動すると、eth0 の静的 IP は正常にロードされますが、eth0:0 仮想 IP はまったくロードされません。

では、eth0:0仮想 IP を永続的に追加するにはどうすればよいでしょうか?

答え1

そのeth0:0ビジネスの代わりに、次のことを実行する必要があります。

  • /etc/network/interfaces通常どおりに(1 つの) 静的 IP アドレスを設定します。

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.0.201
    network 192.168.0.0
    netmask 255.255.255.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    
  • 別のIPを追加これ上記の直後に以下を追加してインターフェースを作成します。

    up /sbin/ip addr add 192.168.0.203/24 dev eth0
    down /sbin/ip addr del 192.168.0.203/24 dev eth0
    
  • 完成したファイルは見てのようにこれ

ここで、 を実行して設定されている IP アドレスを確認するとip addr show、両方が表示されます。

2: eth0: mtu 1500 qdisc pfifo_fast 状態 UP qlen 1000
    リンク/イーサ 08:00:27:1d:fa:0b brd ff:ff:ff:ff:ff:ff
    インネット 192.168.0.201/24brd 192.168.0.255 スコープ グローバル eth0
    インネット 192.168.0.203/24スコープ グローバル セカンダリ eth0

正しい方向を示してくれた Lekensteyn に感謝します。インターネット上のすべてのサイトでは、eth0:0セカンダリ IP アドレスについてのみ言及されています。これそれが正しいやり方のように思えます。

答え2

「従来の」方法で作業を行う場合、 の関連部分は/etc/network/interfaces次のようになります。

auto eth0:0
iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

代わりに、ここで間違いを犯しました:

auto eth0:0 iface eth0:0 inet static
    address ip.address.goes.here
    netmask subnet.address.goes.here

関連情報