Pertanyaan Mengatur perutean permanen (Ubuntu 13.04) [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Saya memiliki 2 koneksi: wlan0 (gw: 192.168.1.1) dan eth0 (gw: 192.168.2.1).
Koneksi default saya adalah wlan0, tetapi saya ingin beberapa situs web memuat melalui saya eth0, jadi saya mengatur rute untuk situs web / IP seperti ini:

route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

Ini berfungsi, namun tidak permanen (hilang setelah reboot). Saya mencoba memasukkan kode ini /etc/network/interfaces seperti ini:

up route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0

tetapi ketika saya me-restart Ubuntu, itu dimulai tanpa jaringan (crash). Saya juga memasukkan baris-baris ini ke dalam file itu:

auto eth0
address 192.168.2.125
gateway 192.168.2.1
netmask 255.255.255.0

tetapi masih sistem boot tanpa jaringan.

Saat ini saya telah menempatkan route perintah ke /etc/rc.local, berfungsi, tetapi tidak permanen, karena ketika saya me-restart / menghubungkan kembali saya eth0 (untuk beberapa alasan), routing menghilang.

Beberapa catatan:
Saya memiliki daftar IP yang panjang untuk rute.
Router saya, yang saya terhubung eth0 diatur ke DHCP.
Saya mencoba untuk terhubung eth0 baik cara statis dan DHCP.

Terima kasih atas bantuannya!


12
2017-09-01 08:08


asal




Jawaban:


Di sistem saya, itu berhasil ketika saya membuat skrip di folder /etc/network/if-up.d/ bernama script dengan mengeksekusi izin 755:

#ls -la /etc/network/if-up.d/script
-rwxr-xr-x 1 root root   46 Okt 15 11:46 script

Di sana Anda dapat menambahkan perintah untuk dijalankan ketika koneksi dibuat, dalam kasus Anda:

#cat /etc/network/if-up.d/script
#!/bin/bash
# Check for specific interface if desired
[ "$IFACE" != "eth0" ] || exit 0
# Adding additional routes on connection
route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
route add ...
route add ...

Anda tidak perlu menambahkan sesuatu /etc/network/interfaces selain auto eth0 dan iface eth0 inet dhcp atau apa pun yang Anda miliki di sana. NetworkManager memanggil skrip di direktori ini dengan exec run-parts /etc/network/if-up.d dalam naskah /etc/NetworkManager/dispatcher.d/01ifupdown. Anda dapat menguji ini dengan (dalam kasus saya):

# run-parts --test /etc/network/if-up.d
/etc/network/if-up.d/000resolvconf
/etc/network/if-up.d/avahi-autoipd
/etc/network/if-up.d/avahi-daemon
/etc/network/if-up.d/ethtool
/etc/network/if-up.d/ip
/etc/network/if-up.d/ntpdate
/etc/network/if-up.d/openssh-server
/etc/network/if-up.d/openvpn
/etc/network/if-up.d/script <---- your script here
/etc/network/if-up.d/upstart
/etc/network/if-up.d/wpasupplicant

10
2017-10-15 09:54



Jawaban bagus - jika Anda perlu membuat rute khusus untuk satu antarmuka, sehingga mereka hanya ditambahkan ketika eth0 terhubung, coba tambahkan: [ "$IFACE" != "eth0" ] || exit 0 sebelum rute menambahkan garis. - Greg
Proposal yang bagus, saya tambahkan baris Anda. - chaos
@chaos, terima kasih atas jawabannya. Namun skrip tidak berjalan ketika saya terhubung ke eth0. Tetapi bekerja ketika saya menjalankan seperti ini: run-parts /etc/network/if-up.d - Azamat
Jadi NM Anda tidak memohon skrip atau tidak ada. Bisakah Anda memposting output ps faux | grep -i network, cat /etc/NetworkManager/dispatcher.d/01ifupdown | grep run-parts dan nm-tool - chaos
@chaos, terima kasih sudah meluangkan waktu untuk membantu saya, ini dia: pastebin.com/dNZMsHn7 - Azamat


Sintaks untuk menambahkan rute ke antarmuka Anda adalah sebagai berikut:

up route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1

Anda tidak perlu menambahkan perangkat sampai akhir.

Contoh file antarmuka:

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

Berdasarkan info dari: Bagaimana cara mengatur rute statis di Ubuntu Server?


6
2017-10-15 10:26