Perbedaan antara perintah 'ifconfig' dan 'ip'

19

Saya membaca beberapa artikel / tutorial tentang perintah 'ifconfig', kebanyakan dari mereka menyertakan pernyataan umum -

"ifconfig sudah ditinggalkan oleh perintah ip"

dan menyarankan untuk belajar perintah ip. Tapi tidak ada yang menjelaskan bagaimana perintah 'ip' lebih kuat daripada 'ifconfig'.

Apa perbedaan keduanya?

Mandar Shinde
sumber

Jawaban:

21

ifconfigberasal dari net-tools, yang belum dapat sepenuhnya mengikuti tumpukan jaringan Linux untuk waktu yang lama. Ini juga masih digunakan ioctluntuk konfigurasi jaringan, yang merupakan cara yang jelek dan kurang kuat untuk berinteraksi dengan kernel.

Banyak perubahan dalam kode jaringan Linux, dan banyak fitur baru tidak dapat diakses menggunakan net-tools: routing multipath, routing kebijakan (lihat RPDB). routememungkinkan Anda melakukan hal-hal bodoh seperti menambahkan banyak rute ke tujuan yang sama, dengan metrik yang sama.

Selain itu:

  • ifconfig tidak melaporkan alamat perangkat keras yang tepat untuk beberapa perangkat.
  • Anda tidak bisa configure ipip, sit, gre, l2tp, dll di-kernel terowongan statis.
  • Anda tidak dapat membuat tunatau tapperangkat.
  • Cara menambahkan beberapa alamat ke antarmuka yang diberikan juga memiliki semantik yang buruk.
  • Anda juga tidak dapat mengonfigurasi sistem kontrol lalu lintas Linux dengan menggunakan net-toolssalah satunya.

Lihat juga ifconfigmenyebalkan .

EDIT : Pernyataan dihapus tentang net-toolspembangunan berhenti bahwa sekarang saya lupa di mana saya dapatkan untuk posting ini. net-tools'Telah dikerjakan sejak iproute2dirilis, meskipun sebagian besar perbaikan bug dan peningkatan kecil serta fitur, seperti internasionalisasi.

pilona
sumber
NET-3 net-tools bukan satu-satunya ifconfig. Ada yang berbeda di GNU inetutils, misalnya. Dan itu belum semuanya. unix.stackexchange.com/a/504084/5132
JdeBP
7

ifconfigadalah perintah tradisional untuk menampilkan informasi tentang antarmuka jaringan dan mengubah beberapa pengaturan. Secara khusus, ini dapat membawa antarmuka ke atas dan ke bawah. Itu ada di sebagian besar varian unix.

Di Linux, ifconfigperintahnya belum berkembang dalam waktu yang lama. Masih bagus untuk apa yang dilakukannya. Jika Anda menggunakan ifconfigsesuatu, tidak ada alasan untuk berhenti.

Linux juga menyediakan ipperintah dari iproute2 tool suite. The ipPerintah menggabungkan beberapa perintah klasik dan banyak lagi, termasuk ifconfig, routedan arp. ipdapat melakukan lebih banyak daripada ifconfig. Di sisi lain, iptidak selalu ada, terutama pada sistem embedded (dan tidak pernah pada varian unix selain Linux).

ifconfigOutput Parsing agak menyebalkan. ipOutput Parsing agak menyebalkan. Tidak ada pemenang di sana.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Saya selalu berpikir parsing ipoutput menjadi cukup sederhana, dan tentunya jauh lebih sederhana daripada ifconfig. Saya juga suka bahwa dalam banyak kasus output dari sebuah ipperintah dapat digunakan sebagai input ke ipperintah lain dengan sedikit atau tanpa modifikasi (misalnya, setiap baris ip route showdapat digunakan sebagai argumen untuk ip route add).
Patrick
1
@ Patrick parsing ip route, dan ip ruleoutput cukup jelas dan cukup mudah diurai. Tapi ip link, atau ip addrsakit. Saya benar-benar berharap seseorang akan mengirimkan tambalan atau sesuatu untuk ip addrmencetak pernyataan yang tepat, mungkin dengan sebuah saklar, bahwa Anda akan menggunakan pengaturan konfigurasi saat ini, seperti yang Anda dapatkan ip route show.
Zoredache
5

Hanya dengan menambahkan beberapa bit ke jawaban oleh pilona. Sekitar 2005, mekanisme baru untuk mengendalikan tumpukan jaringan diperkenalkan - soket netlink .

Untuk mengkonfigurasi antarmuka jaringan, iproute2gunakan mekanisme soket netlink dupleks penuh, sambil ifconfigmengandalkan ioctlpanggilan sistem. Berikut adalah 2 makalah utama tentang motivasi di balik netlink dan penggunaan rtnetlink .

Boris Burkov
sumber