Ada perbedaan antara antarmuka yang secara administratif naik tetapi terputus atau secara administratif mati .
Terputus
Antarmuka mengalami carrier down status. Penanganan yang tepat mungkin bergantung pada driver untuk antarmuka dan versi kernel. Biasanya ini tersedia dengan ip link show
. Misalnya dengan ethernet virtual veth antarmuka:
# ip link add name vetha up type veth peer name vethb
# ip link show type veth
2: [email protected]: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 02:a0:3b:9a:ad:4d brd ff:ff:ff:ff:ff:ff
3: [email protected]: <NO-CARRIER,BROADCAST,MULTICAST,UP,M-DOWN> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether 36:e3:62:1b:a8:1f brd ff:ff:ff:ff:ff:ff
vetha yang secara administratif UP, menampilkan NO-CARRIER
dan operstate yang setara LOWERLAYERDOWN
bendera:terputus.
Setara dengan /sys/
entri juga ada:
# cat /sys/class/net/vetha/carrier /sys/class/net/vetha/operstate
0
lowerlayerdown
Dalam pengaturan biasa, untuk antarmuka yang secara administratif naik operator dan beroperasi cocok (NO-CARRIER <=> LOWERLAYERDOWN atau LOWER_UP <=> UP). Satu pengecualian misalnya saat menggunakan autentikasi IEEE 802.1X (detail lanjutan operstate dijelaskan dalam dokumentasi kernel ini:Status Operasional, tetapi tidak diperlukan untuk penjelasan ini).
ethtool
meminta API tingkat yang lebih rendah untuk mengambil status operator yang sama ini.
Tidak memiliki operator tidak mencegah pengaturan lapisan 3 apa pun untuk tetap berlaku. Kernel tidak mengubah alamat atau rute saat ini terjadi. Hanya saja pada akhirnya paket yang seharusnya dipancarkan tidak akan dipancarkan oleh interface dan tentunya tidak akan ada balasan juga. Jadi misalnya mencoba menyambung ke alamat IPv4 lain cepat atau lambat akan memicu lagi permintaan ARP yang akan gagal, dan aplikasi akan menerima "Tidak ada rute ke host". Koneksi TCP yang sudah mapan hanya akan mengulur waktu dan tetap mapan.
Secara administratif turun
Di atas vethb telah beroperasi BAWAH dan tidak menampilkan status operator apa pun (karena harus aktif untuk mendeteksi ini. Antarmuka Ethernet fisik tentu saja berperilaku sama).
Saat antarmuka diturunkan (ip link set ... down
), pembawa tidak dapat dideteksi lagi karena perangkat perangkat keras yang mendasari sangat mungkin dimatikan dan status pengoperasian menjadi "mati". ethtool
hanya akan mengatakan tidak ada tautan juga, jadi tidak dapat digunakan dengan andal untuk ini (pasti akan menampilkan beberapa unknown entri juga tetapi apakah ada skema yang dapat diandalkan untuk ini?).
Kali ini akan berpengaruh pada pengaturan jaringan layer 3. Kernel akan menolak menambahkan rute menggunakan antarmuka ini dan akan menghapus rute sebelumnya yang terkait dengannya:
- otomatis (
proto kernel
) Rute LAN ditambahkan saat menambahkan alamat - rute lain apa pun yang ditambahkan (misalnya:rute default) di tabel perutean apa pun (tidak hanya utama tabel perutean) tergantung langsung pada antarmuka (
scope link
) atau pada rute lain yang dihapus sebelumnya (mungkinscope global
) . Karena ini tidak akan muncul kembali saat antarmuka dihidupkan kembali (ip link set ... up
) mereka hilang sampai alat userspace menambahkannya kembali.
Interaksi ruang pengguna
Saat menggunakan alat terbaru seperti NetworkManager, orang bisa menjadi bingung dan mengira pemutusan sambungan mirip dengan antarmuka turun. Itu karena NM memantau tautan dan akan melakukan tindakan saat kejadian seperti itu terjadi. Untuk mendapatkan gambaran, ip monitor
alat dapat digunakan untuk memantau dari skrip, tetapi saat ini tidak memiliki keluaran yang stabil/dapat diurai (tidak ada keluaran JSON yang tersedia), sehingga penggunaannya menjadi terbatas.
Jadi ketika kabel terputus, NM kemungkinan besar akan mempertimbangkan bahwa ia tidak lagi menggunakan konfigurasi saat ini kecuali ada pengaturan khusus yang mencegahnya:NM kemudian akan menghapus alamat dan rute itu sendiri. Saat kabel terhubung kembali, NM akan menerapkan konfigurasinya lagi:menambahkan kembali alamat dan rute (menggunakan DHCP jika relevan). Ini terlihat sama tetapi tidak. Selama ini antarmuka tetap aktif , atau NM bahkan tidak mungkin diperingatkan saat koneksi kembali.
Ringkasan
-
Sangat mudah untuk membedakan dua kasus:
ip link show
akan menampilkanNO-CARRIER
+LOWERLAYERDOWN
untuk antarmuka yang terputus, danDOWN
untuk antarmuka yang secara administratif dirobohkan. -
menyetel antarmuka secara administratif ke bawah (dan ke atas) dapat kehilangan rute
-
kehilangan operator dan memulihkannya tidak mengganggu pengaturan jaringan. Jika penundaannya cukup singkat, itu bahkan tidak akan mengganggu koneksi jaringan yang sedang berlangsung
-
tetapi aplikasi yang mengelola jaringan mungkin bereaksi dan mengubah setelan jaringan, terkadang dengan hasil yang serupa dengan kasus down secara administratif
-
Anda dapat menggunakan perintah seperti
ip monitor link
untuk menerima peristiwa tentang antarmuka yang diatur secara administratif turun/naik atau perubahan operator, atauip monitor
untuk menerima semua beberapa acara terkait (termasuk perubahan alamat atau rute) yang akan terjadi saat ini atau segera setelahnya. -
Kebanyakan
ip
perintah (tetapi bukanip monitor
) memiliki output JSON yang tersedia denganip -json ...
untuk membantu skrip (bersama denganjq
).Contoh (melanjutkan dari veth pertama contoh):
vethb masih down:
# ip -j link show dev vethb | jq '.[].operstate' "DOWN" # ip -j link show dev vetha | jq '.[].operstate' "LOWERLAYERDOWN"
Atur vethb up, yang sekarang mendapatkan operator di keduanya:
# ip link set vethb up # ip -j link show dev vetha | jq '.[].operstate' "UP"
Ini menceritakan tentang 3 status biasa:secara administratif turun , lapisan bawah (yaitu:naik tetapi terputus) atau naik (yaitu:operasional).