仮想NIC:「SIOCSIFFLAGS:要求されたアドレスを割り当てることができませんでした」が作成されましたが生成されました

仮想NIC:「SIOCSIFFLAGS:要求されたアドレスを割り当てることができませんでした」が作成されましたが生成されました

Linuxシステム(カスタムディストリビューション、Debianベース)の物理ネットワークカードに仮想ネットワークアダプタを作成するには、簡単に見える操作にいくつかの問題があります。

走れば

ifconfig eth0:1 10.50.55.130 netmask 255.255.255.0

すべてがうまくいった。仮想ネットワークカードが自動的に追加され、によって正しく表示されましたifconfig

この仮想ネットワークカードの定義をここに表示したいです/etc/network/interfaces。次のセクションを追加しました。

# virtual NIC
# auto eth0:1
iface eth0:1 inet static
    address 10.50.55.130
    netmask 255.255.255.0

最初の行はコメントアウトされました。これまでは、システムがネットワークインタフェースを自動的に起動することに興味がなかったためです。

すべてが大丈夫に見えます。

しかし、実行するとifup eth0:1わかりますSIOCSIFFLAGS: Cannot assign requested address

本当に理解できないのは、仮想ネットワークカードが実際に作成されることです。これが出力ですifconfig

can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-                        00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:1206446 errors:0 dropped:0 overruns:0 frame:0
      TX packets:193280 errors:0 dropped:12 overruns:0 carrier:12
      collisions:0 txqueuelen:10 
      RX bytes:7645126 (7.2 MiB)  TX bytes:1393003 (1.3 MiB)
      Interrupt:68 

can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:299171 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:10 
      RX bytes:2393368 (2.2 MiB)  TX bytes:0 (0.0 B)
      Interrupt:71 

eth0      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30  
      inet addr:10.90.100.43  Bcast:0.0.0.0  Mask:255.255.248.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1560275 errors:0 dropped:1 overruns:0 frame:0
      TX packets:790 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:96964255 (92.4 MiB)  TX bytes:176882 (172.7 KiB)
      Interrupt:56 

eth0:1    Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30 
      inet addr:10.50.55.130  Bcast:10.50.55.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      Interrupt:56 

eth1      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:32  
      inet addr:169.254.8.141  Bcast:169.254.255.255  Mask:255.255.0.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:140932 errors:0 dropped:0 overruns:0 frame:0
      TX packets:140932 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:8522761 (8.1 MiB)  TX bytes:8522761 (8.1 MiB)

このエラーが発生するのはなぜですか?それとも…NICを作るのはなぜですか?

ifup -f eth0:1強制オプションを使用して呼び出すと、エラーメッセージが表示されず、仮想ネットワークアダプタが正常に起動することを追加する必要があります。

答え1

ifconfig今は役に立たないと考えられています。代わりにツールを試してくださいip。すべての最新のディストリビューションはこれをサポートする必要があります。これはiprouteツールセットの一部です。

インターフェイスに追加のIPアドレスのみを追加するには、次のコマンドを使用します。

ip addr add 10.50.55.130/24 dev eth0

あなたの質問についてJohan Myréenのコメントに同意します。

答え2

コマンドライン方法に加えて、Debianベースのシステムで好む方法はネットワーク設定ファイルを使用することです。

エイリアス方法は、次の順序を使用することを好みます。eth0, eth:0:0, eth0:1,...

したがって、システムの最初のエイリアスはeth0:0です。システムを再起動してもこのエイリアスを維持するには、次の内容を含む/etc/network/interfaces.d/eth0ファイルを作成します。

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
      address 10.50.55.130/24

または、ファイルを直接編集することもできますが、/etc/network/interfaces自動的に上書きされる可能性があるため、お勧めできません。

重要なのは、スラッシュサブネットとnetmaskキーワードがなくなったアドレス形式を使用することです。address 10.50.55.130/24

もちろん

service networking restart

テスト構成次に、次のコマンドで確認します。

service networking status

そして

ip address

コメントで述べたように、インターフェースの実際の名前は何でも構いません。ip addrコマンドを使用してインターフェース名を解決し、その名前を使用して変更するなど:0の操作を実行する必要があります。enp3s0f0:0そしてenp3s0f0:1など。

関連情報