GNU/Linux >> Belajar Linux >  >> Linux

Perbedaan antara ip link down dan physical link absent

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 (mungkin scope 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 menampilkan NO-CARRIER +LOWERLAYERDOWN untuk antarmuka yang terputus, dan DOWN 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, atau ip monitor untuk menerima semua beberapa acara terkait (termasuk perubahan alamat atau rute) yang akan terjadi saat ini atau segera setelahnya.

  • Kebanyakan ip perintah (tetapi bukan ip monitor ) memiliki output JSON yang tersedia dengan ip -json ... untuk membantu skrip (bersama dengan jq ).

    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).


Linux
  1. Perbedaan Getty dan Agetty?

  2. Perbedaan Antara .exrc Dan .vimrc?

  3. Perbedaan Antara '$ . Foo' Dan '$ ./foo'??

  1. Perbedaan Antara ~/.profile Dan ~/.bash_profile?

  2. Perbedaan Nss dan Pam?

  3. Apa perbedaan antara strtok_r dan strtok_s di C?

  1. Apa perbedaan antara fsck dan e2fsck?

  2. Apa perbedaan antara adduser dan useradd?

  3. Apa perbedaan antara `su -` dan` su --login`?