Tidak dapat menghapus rute dengan gateway 0.0.0.0

8

Saya mencoba untuk mengatur rute saya dengan cara yang akan memungkinkan saya untuk terhubung ke kotak Vagrant dari Solum .

Tabel perutean saya berisi, tetapi tidak terbatas pada, rute-rute berikut:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
192.168.76.0    192.168.76.2    255.255.255.0   UG    0      0        0 vboxnet0
192.168.76.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

Saya mencurigai rute ketiga (dihasilkan secara otomatis pada startup kotak Vagrant) mengganggu rute kedua (dibuat secara manual), jadi saya mencoba menghapusnya.

Namun, menggunakan salah satu dari perintah berikut

$ sudo route del 192.168.76.0 gw 0.0.0.0
$ sudo route del 192.168.76.0

pengembalian:

SIOCDELRT: No such process

yang biasanya muncul ketika routetidak dapat menemukan rute.

Di sisi lain, menggunakan

$ sudo route del 192.168.76.0/24 gw 0.0.0.0
$ sudo route del 192.168.76.0/24

hasil:

route: netmask 000000ff doesn't make sense with host route
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
(rest of usage)

Apa yang saya lakukan salah? Apakah ada alasan saya tidak bisa menghapus rute itu? Apakah saya salah berasumsi bahwa itu mengganggu yang saya atur?

(Saya menggunakan Ubuntu 14.04+).

Dragomok
sumber
2
Dari atas kepala saya: coba route del -net 192.168.76.0. Kalau tidak, ia berpikir bahwa Anda mencoba untuk menghapus rute ke satu host.
Jos
Bagaimana Anda menambahkan rute? Sepertinya Anda menggunakan vbox, jadi perutean mungkin menjadi bagian dari konfigurasi vobx, saya tidak bisa membedakan dari apa yang Anda posting.
Panther
Hanya ingin tahu, tetapi mengapa Anda menetapkan rute itu? Bagi saya tampaknya jaringan 192.168.76.0/24 on-link - tidak diperlukan gateway. Tetapi ketika Anda melihat instruksi pengaturan yang Anda tautkan, Anda akan menemukan rute route add -net 192.168.78.0/24 192.168.76.2yang jauh lebih masuk akal.
Nephente
2
Btw. Jika dua atau lebih rute cocok dengan host, yang paling spesifik diutamakan, yaitu yang memiliki awalan terpanjang. Rute host statis memiliki awalan / 32 dan akan lebih disukai. Kriteria berikutnya (biasanya) tergantung pada bagaimana rute dipelajari, misalnya statis atau melalui protokol routing, di mana rute on-link memiliki prioritas tertinggi, diikuti oleh yang statis, diikuti oleh rute dinamis yang dipelajari melalui misalnya OSPF.
Nephente
@ Apakah jawaban Anda hampir benar - jika saya tambahkan saja /24pada akhir perintah, itu akan berhasil. Terima kasih. Jika Anda mengirim jawaban, mungkin dengan beberapa penjelasan demi kepentingan orang-orang yang akan menelusuri pertanyaan ini di masa mendatang, saya akan menerimanya.
Dragomok

Jawaban:

11

Untuk menghapus satu rute dari tabel rute, Anda perlu menentukan parameter yang cukup sehingga pencocokan unik dengan salah satu rute dapat dibuat.

Jika Anda ingin menghapus seluruh subnet (sebagai lawan dari satu host), Anda harus menggunakan -netflag dan beberapa indikasi lingkup alamat jaringan, yaitu netmaskparameter (mis. 255.255.255.0) atau angka seperti / 24 (artinya 24 bit pertama adalah nomor jaringan, dan 8 bit sisanya digunakan untuk host). Dalam kasus Anda, keduanya

sudo route del -net 192.168.76.0/24

dan

sudo route del -net 192.168.76.0 netmask 255.255.255.0

akan bekerja.

(terima kasih kepada @nephente untuk tambahan berguna)

Jos
sumber
atau diikuti dengan menentukan antarmuka, misalnya dev vboxnet0->sudo route del -net 192.168.76.0 netmask 255.255.255.0 dev vboxnet0
adadion
0

Komentar yang dibuat oleh Jos hampir benar:

$ sudo route del -net 192.168.76.0/24 menghapus rute.

Dragomok
sumber