Apa perilaku persis perintah: perubahan alamat ip?

12

Saya telah mengutak-atik IPv6 dan mengatasi masa hidup. Saya menemukan bahwa valid_lftatribut akan membuat alamat-v6 menghilang secara otomatis, jika digunakan dengan benar. Untuk memperpanjang umur alamat saya akan

ip addr change 1:2:3:4::1/112 dev eth0 valid_lft 86000

Penggunaan ip addr changetidak muncul di halaman manual mana pun yang saya akses (Debian, Ubuntu, dan online ) dan juga tidak dalam dokumentasi resmi . Saya menemukannya di sebuah artikel yang merujuk ke email dari 2009 ke mailing-list ipv6-ops.

Dari apa yang saya bisa memutuskan untuk bermain-main, saya kira orang selalu bisa menggunakan, ip addr changebukan ip addr add, karena jika alamat tidak ada, ipakan menambahkan satu, hanya jika ip addr adddigunakan.

Apakah itu benar, yaitu, ip addr changeadakah yang bisa menjelaskan apa yang sebenarnya dilakukan dan bagaimana perbedaannya ip addr add?

Bananguin
sumber

Jawaban:

6

Ketika Anda tidak yakin apa yang dilakukan sesuatu, dan dokumentasi tidak mengatakan, Anda sampai ke sumbernya, yaitu baris 1588 :

if (matches(*argv, "change") == 0 ||
    strcmp(*argv, "chg") == 0)
    return ipaddr_modify(RTM_NEWADDR, NLM_F_REPLACE, argc-1, argv+1);

Jadi, apa fungsinya? Mengembalikan hasil menjalankan ipaddr_modify()fungsi yang didefinisikan pada baris 1379 dengan argumen RTM_NEWADDRdan NLM_F_REPLACE.

Dari apa yang saya bisa memutuskan untuk bermain-main, saya kira orang selalu bisa menggunakan, ip addr changebukan ip addr add, karena jika alamat tidak ada, ipakan menambahkan satu, hanya jika ip addr adddigunakan.

Apakah itu benar, yaitu, ip addr changeadakah yang bisa menjelaskan apa yang sebenarnya dilakukan dan bagaimana perbedaannya ip addr add?

Tidak, addakan membuat atau mengeksekusi argumen yang diberikan (jika ada yang diberikan), sementara changeakan mencari argumen dan menggantinya.

BTW, replacetampaknya merupakan kompromi antara adddan changekarena menggunakan sekumpulan argumen.

Braiam
sumber
Dan apa efek dari bendera-bendera itu? Karena pada baris perintah mereka tidak benar-benar tampil. Terutama karena changeberfungsi seperti addjika alamat untuk mengubah belum ada. Saya tidak berpikir saya harus menggali melalui sumber kernel (karena di situlah bendera akhirnya lewat), untuk mencari tahu apa yang dilakukan salah satu alat baris perintah paling populer untuk manajemen jaringan. Ini bukan tahun 90-an ... :-) Tapi terima kasih!
Bananguin