Linuxシステム(カスタムディストリビューション、Debianベース)の物理ネットワークカード上に仮想ネットワークアダプターを作成するという、明らかに簡単なタスクで問題が発生しています。
走ったら
ifconfig eth0:1 10.50.55.130 netmask 255.255.255.0
すべてがうまくいきます。仮想NICはサイレントに追加され、ifconfig
によって正しく表示されます。
この仮想NICの定義を/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
が返されます。
私が本当に頭を悩ませることができないのは、仮想NICが実際に作成されているということです。これが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
(forceオプションを使用)を呼び出した場合、エラーメッセージは表示されず、仮想ネットワークアダプターは正常に起動します。
ifconfig
は、最近では廃止されたと見なされています。代わりにip
ツールを使用してみてください。最近のすべてのディストリビューションでサポートされているはずです。これはiproute
ツールセットの一部です。
インターフェイスに追加のIPアドレスが必要な場合は、次のコマンドを使用します。
ip addr add 10.50.55.130/24 dev eth0
そして、私はあなたの質問に続くヨハン・ミリーンのコメントに同意します。
コマンドラインによる方法とは別に、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