ifconfig tidak menampilkan semua IP yang terikat ke mesin

11

Saya telah mengkonfigurasi beberapa alamat IP pada kotak ubuntu, tetapi ketika saya menjalankannya ifconfighanya menunjukkan salah satunya. Namun, saya dapat melakukan ping ke semua alamat yang ditugaskan untuk mesin ini.

/etc/network/interface isi:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
     address 192.168.202.11
     netmask 255.255.255.0
     network 192.168.202.0
     broadcast 192.168.202.255
     gateway 192.168.202.1

# dns-* options are implemented by the resolvconf package, if installed   
dns-search idil.dz1.da

auto eth0:1    
iface eth0:1 inet static
     address 192.168.202.12   
     netmask 255.255.255.0

auto eth0:2
iface eth0:2 inet static
     address 192.168.202.13
     netmask 255.255.255.0

auto eth0:3
iface eth0:3 inet static
     address 192.168.202.14
     netmask 255.255.255.0

auto eth0:4
iface eth0:4 inet static
     address 192.168.202.15
     netmask 255.255.255.0

auto eth0:5
iface eth0:5 inet static
     address 192.168.202.16   
     netmask 255.255.255.0

Namun, output dari ifconfighanya:

192.168.202.11

pankaj sharma
sumber
ifconfig -sebuah tampilan semuanya?
Alex R
itu hanya menampilkan alamat ip eth0 .. :(
pankaj sharma
1
Rilis Ubuntu manakah yang Anda jalankan? Harap tambahkan informasi Anda ke bug # 921280 juga.
jdthood
1
ip addr showbekerja
xinthose

Jawaban:

20

ifconfigpada dasarnya sudah usang, meskipun tidak ada rencana yang saya sadari untuk menyingkirkannya. Penggantinya adalah ipperintah. Setara modern ifconfigsendiri adalah ip address list.

Kenapa ifconfigdiganti ip? Banyak fungsi baru telah ditambahkan ke jaringan Linux dalam beberapa dekade sejak ifconfigditulis. Ini melibatkan API (netlink) yang sepenuhnya baru untuk alat userspace untuk berbicara dengan kernel untuk mengkonfigurasi jaringan. Jauh lebih praktis untuk menulis alat baru untuk memetakan fungsi baru dengan lebih baik melalui netlink API dan turun ke baris perintah, daripada mencoba dan mengadaptasi ifconfigalat yang lama . Lihat halaman ip (8) untuk semua hal baru yang keren yang dapat Anda lakukan sekarang.

API kernel yang digunakan oleh ifconfigdan ifconfigalat itu sendiri tetap untuk kompatibilitas ke belakang, tetapi antarmuka ini buta terhadap apa pun yang tidak mudah memetakan ke model lama.

Alasan bahwa ifconfigtidak menunjukkan alias IP adalah bahwa hal itu terlihat seperti mereka sedang ditambahkan oleh Debian ifupdown(paket yang menangani /etc/network/interfaces) menggunakan mekanisme yang berbeda yang tidak menambahkan label :1, :2dll Jadi ifconfigalat buta kepada mereka, karena API lama mengamanatkan label ini, dan alamat tambahan tidak memetakan ke API lama. Dari halaman ip-address (8) :

          Each address may be tagged with a label string.  In order to
          preserve compatibility with Linux-2.0 net aliases, this string
          must coincide with the name of the device or must be prefixed
          with the device name followed by colon.

Bug yang tertaut dalam jawaban maggotbrain tampaknya terfokus pada penambahan dukungan ifconfiguntuk membaca alamat tanpa label. Pendekatan lain mungkin untuk mengatur untuk ifupdownmembuat alamat dengan label, sehingga ifconfigdapat melihatnya tanpa modifikasi.

Robie Basak
sumber
0

Kemungkinan besar ini adalah bug dalam paket net-tools dan ifconfigkhususnya.

Lihat bug launchpad di sini dan di sini untuk informasi tambahan.

Jika Anda memasukkan antarmuka secara manual, dari baris perintah menggunakan ifconfigseperti ini (mengikuti konfigurasi Anda di atas):

sudo ifconfig eth0:1 192.168.202.12 netmask 255.255.255.0
sudo ifconfig eth0:2 192.168.202.13 netmask 255.255.255.0
sudo ifconfig eth0:3 192.168.202.14 netmask 255.255.255.0
sudo ifconfig eth0:4 192.168.202.15 netmask 255.255.255.0
sudo ifconfig eth0:5 192.168.202.16 netmask 255.255.255.0

Anda akan memiliki antarmuka tersebut muncul, seperti yang diharapkan, saat berjalan ifconfig.

Namun, perubahan ini tidak akan muncul di Anda /etc/network/interfaces. Jadi, Anda harus menambahkannya di kedua tempat.

Catatan: Ini juga tidak persisten di seluruh antarmuka ulang, jadi Anda harus menjalankan kembali perintah setelah me-restart antarmuka / mesin.

Kevin Bowen
sumber