CentOS 7に新しいネットワークデバイスを追加するには?

CentOS 7に新しいネットワークデバイスを追加するには?

私のVPSには2つのIPが割り当てられていますが、「ip a」には物理ネットワークインターフェイスeth0とループバックインターフェイスloが1つだけ表示されます。新しいIPを反映するようにコピーして/etc/sysconfig/network-scripts/ifcfg-eth0編集しました。/etc/sysconfig/network-scripts/ifcfg-eth1ただし、systemctl restart networkエラーのため失敗します。Bringing up interface eth1: Error: Connection activation failed: No suitable device found for this connection.

それでは、eth1を設定するために新しいデバイスをどのように追加しますか?それとも、別の物理ネットワークアダプタを追加しないと新しいデバイスを追加できませんか?それでは、これら2つのIPを同じインターフェイスeth0に割り当てることはできますか?どのように?

修正する:

@ABのアプローチに従いましたが、まだ動作しません。

TYPE=Ethernet
BOOTPROTO0=none
NAME0=eth0
DEVICE0=eth0
ONBOOT0=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
GATEWAY0=x.x.x.1

TYPE=Ethernet
BOOTPROTO1=none
NAME1=eth1
DEVICE1=eth1
ONBOOT1=yes
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY1=y.y.y.1

次の構成も機能しません。

TYPE=Ethernet
BOOTPROTO0=none
NAME0=eth0
DEVICE0=eth0
ONBOOT0=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
GATEWAY0=x.x.x.1

TYPE=Ethernet
BOOTPROTO1=none
NAME1=eth0:1
DEVICE1=eth0
ONBOOT1=yes
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY1=y.y.y.1

コマンドはsystemctl restart network成功しましたが、ifconfigeth0インターフェース1つとloインターフェース1つのみが表示されます。

修正する:

@ABの答えで正しい設定を使用して使用するとip a機能します!これら 2 つの IP はインターフェイス eth0 の下に表示されます。

ベストアンサー1

これら2つのIPアドレスは上記で設定できます。同じ相互作用。

この内容は次のように記録されます。レッドハット6ただし、RHEL 7 のマニュアルには表示されなくなります。おそらくこの設定は段階的に廃止されているため(NetworkManagerやNetworkManagerを使用するなどnmtui)、あまり頻繁ではない設定は正式に文書化されなくなります。いつものように、CentOS 6/CentOS 7とまったく同じです。

IPADDRn=アドレス

ここで、address は IPv4 アドレスで、n は 0 から始まる連続した正の整数でなければなりません (例: IPADDR0)。設定に使用されます。複数のIPアドレス一つ 相互作用。アドレスが1つだけ設定されている場合は省略できます。

スクリプトの内容には、/etc/sysconfig/network-scripts/network-functionsまだ有効な構文があることが示されます。

expand_config ()
{
    local i=0 val
    for idx in '' {0..255} ; do
        ipaddr[$i]=$(eval echo '$'IPADDR$idx)
        if [ -z "${ipaddr[$i]}" ]; then
            [ "$idx" ] && [ $idx -ge 2 ] && break
            continue
        fi
        prefix[$i]=$(eval echo '$'PREFIX$idx)
        netmask[$i]=$(eval echo '$'NETMASK$idx)
        broadcast[$i]=$(eval echo '$'BROADCAST$idx)
        arpcheck[$i]=$(eval echo '$'ARPCHECK$idx)
        arpupdate[$i]=$(eval echo '$'ARPUPDATE$idx)

したがって、プラスに/etc/sysconfig/network-scripts/ifcfg-eth0変更し、上記のリストの他の同様の設定に対して同じことを行います(例:を使用している場合はプラスに変更など)。IPADDR=IPADDR0=IPADDR1=NETMASK=NETMASK0=NETMASK1=

修正する(OPが構成コンテンツを提供した後):唯一の関連項目上のリストから以下は(最初に使用する場合のみ)次のとおりです。

PREFIX
NETMASK
BROADCAST
ARPCHECK
ARPUPDATE

他にはありません。特に以下ではありません。

  • NAME

    ただ一つ相互作用。また、eth0:1エイリアスアドレスをインターフェースとして使用することは避けてください。これは、他の設定を構成するときに役に立たず、エラーが発生しやすい古い概念です。この回答ではこの問題は発生しませんでした。

  • GATEWAY

    ただ一つデフォルトルート(実際には複数のインターフェイスがある場合でもここではそうではありません)2つの異なる独立したインターネットパスを持つことができるマルチホーミングは異なる獣であり、同じ質問に答えることはできません。

結局のところ、ifconfigこのコマンドは使用しないでください(このコマンドは古いAPIの一部であり、互換性ラベルなしで単一のインターフェイスに複数のIPv4アドレスを正しく表示しません)。代わりに、以下を使用してください。

ip address

または、ip -br addressホストインターフェイスに設定されたアドレスを表示します。同様に、Linuxでパスを表示するための最良のコマンドは次のとおりです。

ip route

変えるroute


最終構成はifcfg-eth0次のようにする必要があります。

TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
PREFIX0=24
IPADDR0=x.x.x.x
NETMASK0=255.255.255.0
PREFIX1=24
IPADDR1=y.y.y.y
NETMASK1=255.255.255.0
GATEWAY=x.x.x.1

ホスティングプロバイダが詳細なルーティング文書を提供しない限り、同じゲートウェイxxx1が最終的にyyyyアドレスをルーティングするために使用されます。この場合、構成がifcfg-eth0マスターするのは非常に難しいので、とにかく別の質問が必要です。 2番目のアドレスのプレフィックス/ネットマスクPREFIX1は、24ではなく32(および冗長NETMASK1、255.255.255.255)である可能性がありますが、これはホスティングプロバイダの文書がなければ不明であり、おそらく重要ではありません。

おすすめ記事