Saya memiliki sistem dengan dua NIC di atasnya. Mesin ini, dan beberapa perangkat yang menyertainya akan dipindahkan dan dilampirkan ke LAN yang berbeda atau kadang-kadang menggunakan dial-up.
eth0:
- 10.x.x.x address space
- no internet gateway
- only a few devices
eth1 (when used):
- 172.16.x.x or 192.168.x.x or other address spaces
- access to the gateway from LAN to internet
ppp0 (when used):
- internet access through dialup using KPPP
Saya menggunakan ifconfig untuk membawa antarmuka naik atau turun (selain dengan ppp0, yang ditangani oleh KPPP).
Jika saya membuka eth1 terlebih dahulu, ia mendapat alamat dari DHCP-nya dan mendapatkan gateway dan itu ditambahkan ke perutean sehingga tidak ada masalah menjangkau LAN dan internet.
Jika saya membuka eth0 pertama atau kedua, ia mendapatkan alamatnya dan menetapkan gateway default ke dalam ruang alamatnya (dalam kisaran 10.xxx). Jika saya membuka eth0 pertama dan eth1 detik, gateway default masih disimpan dalam kisaran 10.xxx.
Jadi, apa pun yang saya lakukan, eth0 akan menimpa eth1 dan "mengklaim" gateway dalam routing.
Apakah ada cara untuk mencegah eth0 dari mengklaim gateway, atau untuk memastikan eth1 (jika dibesarkan 2nd) menggunakan gateway-nya? Atau bisakah saya memprioritaskan peringkat gateway antarmuka mana yang harus digunakan daripada yang lain?
Saya pada dasarnya ingin memastikan gateway ruang alamat default eth1 digunakan jika itu aktif, dan jika tidak, maka gateway default ppp0 digunakan. Saya ingin mencegah eth0 memiliki gateway default.
sumber
ifconfig
akan menyebabkan segala jenis interaksi DHCP. Biasanyaifup
akan melakukan ini, dengan memulaidhclient
. Apakah antarmuka eth * Anda mungkin dimunculkan oleh proses boot sistem, katakanlah/etc/init.d/network
, atau oleh NetworkManager?Jawaban:
Konfigurasi server DHCP salah. Ini tidak boleh mengirim opsi gateway default ketika itu tidak dapat memberikan perutean ke seluruh dunia. Jika memang mengirim opsi itu maka klien mana pun dapat berasumsi bahwa ia dapat mengirim paket untuk tujuan off-link ke gateway default yang ditentukan.
Jadi kotak Anda benar dalam menggunakan gateway default dari eth0 jika diberi tahu oleh DHCP. Solusinya adalah menghapus opsi buruk dari server DHCP Anda.
sumber
Saya menghadapi masalah serupa pada Raspbian (saya kira solusi di bawah ini akan berlaku untuk Debian juga). Raspberry Pi 3 memiliki 2 NIC terintegrasi: Wi-Fi dan Ethernet. Saya menggunakan keduanya, mereka wlan0 dan eth0, masing-masing. wlan0 terhubung ke jaringan Wi-Fi rumah saya dan akses internet datang melalui antarmuka ini. Ini mendapatkan pengaturannya melalui DHCP dari router rumah saya. eth0 terhubung langsung ke PC windows saya dan memiliki IP statis yang ditetapkan. Tidak ada akses internet via eth0 karena saya tidak mengkonfigurasinya di PC windows saya.
Dalam Raspbian, daemon dhcpcd bertanggung jawab untuk mengkonfigurasi antarmuka jaringan. Untuk mengatur IP statis ke antarmuka eth0, ada baris berikut ditambahkan ke akhir
/etc/dhcpcd.conf
:Dengan pengaturan ini, dhcpcd membuat 2 rute default dan rute via eth0 memiliki prioritas lebih tinggi daripada itu melalui wlan0:
Jadi saya tidak punya akses internet, karena sistem mencoba merutekannya melalui eth0 dan tidak punya akses internet, seperti yang saya sebutkan di atas.
Untuk mengatasi masalah tersebut, saya menggunakan
nogateway
opsi di/etc/dhcpcd.conf
antarmuka for eth0. Jadi konfigurasi eth0-specific mulai terlihat seperti itu:Setelah menyimpan konfigurasi ini dan me-reboot, tidak ada rute default via eth0:
Akses internet muncul, dan masalahnya terpecahkan.
sumber
nogateway
adalah cara untuk masuk dalam distro debian terbaruPada RHEL6 / Fedora 22 berikut ini telah diuji.
Di / etc / sysconfig / network-scripts / ifcfg-eth1 tambahkan baris:
Ganti eth1 dengan nama antarmuka di mana perutean default tidak diinginkan.
Ini juga dapat dilakukan melalui Network Manager GUI dengan mencentang kotak "Gunakan koneksi ini hanya untuk sumber daya di jaringannya" di bagian bawah tab IPv4.
DEFROUTE = tidak mencegah penambahan rute default (tujuan 0.0.0.0) ke tabel routing ketika antarmuka diaktifkan. yaitu. entri berikut tidak akan ditambahkan.
sumber
ok, jadi yang Anda inginkan adalah agar mesin tidak pernah membuka gateway default saat membuka eth0 dan mendapatkan alamatnya melalui DHCP.
Ini solusinya:
Edit file:
dan isi dengan:
sebelum:
setelah ifdown eth0, ifup eth0:
sumber
Anda dapat mengedit file dhcpclient.conf dan tidak meminta rute default apa pun dari server DHCP jarak jauh.
Contoh kecil dari apa yang telah saya lakukan dan ini bekerja untuk kasus saya
sumber