Pertanyaan Bagaimana cara mengatur rute statis di Ubuntu Server?


Saya telah menggunakan Ubuntu sejak Ubuntu 8.10; hari ini saya bekerja dengan Ubuntu 12.04 Server.

Saya mengalami kesulitan menjaga rute statis saat boot. Saya biasanya akan menempatkan perintah rute

/sbin/route add -net <IP>/<MASK> <GW> dev <ethX>

di /etc/rc.local atau saya akan membuat file (bernama routes) di dalam direktori /etc/network/if-up/, tapi saya perhatikan bahwa pada Ubuntu 12.04 itu tidak berfungsi.

Jika saya mengetikkan perintah di shell, mereka bekerja, tetapi perintah yang sama tidak berfungsi ketika mereka berada di file yang ditentukan.

Saya sudah mencoba mengubah nama file menjadi nama lain yang berpikir bahwa nama file saya (routes) bisa salah di Ubuntu 12.04, tetapi itu juga tidak berhasil.

Saya perhatikan juga perintah itu /sbin/ifconfig bekerja, kurang /sbin/route.

Apa yang berubah dalam pengaturan jaringan?

Bagaimana saya bisa menentukan rute statis pada Ubuntu 12.04?


45
2017-07-25 16:48


asal


Hanya untuk memeriksa: apakah rc.local dieksekusi dan itu dimulai dengan garis shebang? Mungkin itu masalah dengan perintah Anda. Anda dapat mencoba mengarahkan ulang stderr ke file (your_command > stderr.txt 2>&1) dan memeriksa outputnya ... - Salem
Anda harus mengatur rute di / etc / network / interfaces, bukan di /etc/rc.local. Dan perintah baru yang harus Anda gunakan adalah ip add dan ip route. Satu perintah untuk memerintah net. :) - Anders


Jawaban:


Anda dapat memasukkan rute statis /etc/network/interfaces:

auto eth0
iface eth0 inet static
      address 192.168.1.2
      netmask 255.255.255.0
      up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
      up route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.1.1

53
2017-07-25 16:57



Saya akan mencobanya. Terima kasih, Eric Carvalho. - Frank Allan
Sintaks untuk / sbin / ip: up ip route add 192.168.0.0/24 via 192.168.1.1 - w00t
Maukah Anda menjelaskan dua kalimat terakhir Anda dalam jawaban atau memberikan tautan ke sumber pengetahuan? Terima kasih! - itsols
Anda dapat melihat -net 192.68.0.0 sebagai wildcard, mengatakan semua paket yang ditujukan untuk 192.168. *. * Harus dirutekan melalui gateway standar 192.168.1.1. Kernel kemudian akan mencoba untuk menyelesaikan gateway default tersebut, tetapi jika sudah memiliki entri ARP, maka ia akan mengirim paket keluar dari antarmuka yang telah dipelajari bahwa gateway berada pada MAC tujuan untuk hop berikutnya. Semoga itu membantu sedikit. - Neil McGill
Ada juga /etc/network/interfaces.d/ yang mungkin menjadi tempat yang lebih baik untuk menempatkan rute. - Elijah Lynn


Saya menemukan sangat sering bahwa tempat yang tepat untuk menentukan rute statis di / etc / network / interfaces, tidak apa jika Anda akan memulai ulang jaringan secara global dengan /etc/init.d/networking restart misalnya. Tetapi jika Anda akan menggunakan ifdown dan ifup untuk mematikan antarmuka secara individual, ifup akan diakhiri dengan kesalahan:

ifup eth1

RTNETLINK answers: File exists
Failed to bring up eth1.

Karena itu mencoba untuk menentukan rute tetapi sudah didefinisikan. Antarmuka akan tetap ada tetapi, ifup tidak akan memperbarui / menjalankan / jaringan / ifstate sehingga lain kali Anda akan kami jika Anda tidak dapat melakukannya kecuali jika Anda menggunakan flag --force.

Untuk membuat ifup untuk melanjutkan konfigurasi bahkan jika rute sudah ditentukan, Anda dapat menggunakan format ini ketika menentukan rute di / etc / network / interfaces

up ip route add 172.16.0.0/24 via 192.168.10.1 || true
up ip route add 192.168.0.0/16 via 192.168.10.1 || true

Dengan cara ini Anda akan memiliki peringatan dalam output tetapi konfigurasi antarmuka akan selesai

ifup eth1

RTNETLINK answers: File exists
RTNETLINK answers: File exists
ssh stop/waiting
ssh start/running, process 18553

16
2018-02-08 10:29



Mengapa tidak menambahkan "down ip route del 192.168.0.0/16 melalui 192.168.10.1" ke konfigurasi? - w00t
Karena orang melakukan hal-hal seperti penggunaan ifconfig secara manual, bukannya berlari ifdown, kemudian ingin dapat pulih dengan menggunakan alat yang benar. Oleh karena itu sangat membantu jika alat-alat itu tahan terhadap keadaan yang tidak terduga ketika mereka mencoba untuk memperbaiki keadaan. Itu || true saran yang bagus. Menambahkan garis bawah terlalu membantu. - Phil P
Dari pengguna acak: Gunakan "ganti" bukannya "tambah" di perintah ip. Ex: up ip route replace 172.16.0.0/24 via 192.168.10.1 "ganti" akan menambah rute jika belum ada, tetapi jika rute dengan pemilih yang sama ada maka akan diganti dengan yang sekarang, bahkan jika mereka memiliki tujuan yang sama. - Xen2050


Anda dapat mencoba ini (tambahkan ke /etc/network/interfaces), ini cara yang hampir lengkap untuk mengatur rute:

auto eth0
iface eth0 inet static
    post-up /sbin/route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
    post-up /bin/mount -t nfs 192.168.0.203:/motd/ /motd/

8
2017-07-26 05:49





Ada sebuah paket ifupdown-extra tersedia di Ubuntu.
Ini menyediakan skrip otomatis (diinstal di /etc/network/*/), salah satunya digunakan untuk menambahkan rute statis.

File konfigurasi untuk ini /etc/network/routes

Bagian atas file konfigurasi ini memiliki deskripsi yang bagus:

File konfigurasi ini dibaca oleh skrip if-updown statis-rute   dan script /etc/init.d/networking-routes untuk mengatur daftar rute   terkait dengan antarmuka tertentu atau rute global.

Contoh rute yang saya gunakan adalah:

192.168.240.0 255.255.255.0 192.168.130.3 em3

5
2017-08-20 13:52





apa yang berhasil bagi kami adalah

sudo route add -net 192.168.0.2/32 gw 192.168.1.1 netmask 255.255.0.0

saya dulu menjalankan di Mac:

sudo route -n add -net 192.168.0.2/32 192.168.1.1

tetapi pada ubuntu "gw" antara IP dan bagian "netmask" terakhir hilang (juga -tidak diperlukan di ubuntu)


1
2017-09-08 11:14



ini berfungsi sempurna untuk rute sementara (tidak bertahan), pertanyaannya adalah tentang mendapatkan rute yang terus-menerus - anneb