Normalde sadece eth0 yapılandırmasını yaptıktan sonra geri döndüm ve eth1 için yapılandırma ekledim. Sadece eth0 ile rota tablosu şuydu:
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
Ancak bir kez eth1'i getirdim, varsayılan rota ifadelerinin sırası her zaman hangi arayüzün kullanıldığını belirledi. Aşağıda gösterildiği gibi, 192.168.1.65 ağ geçidine giden eth1 yolunu seçmek olur.
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.1.65 dev eth1 metric 100
default via 192.168.0.97 dev eth0 metric 100
sadece bir ağ geçidi bildirimi
İlk sorun ekstra '192.168.1.65' varsayılan yolu olabilir. / Etc / network / interfaces içindeki eth1 tanımlamasında "gateway 192.168.1.65" ifadesi varsa görünür. Ekstra ağ geçidi ifadelerini kaldırın ve arayüzü geri getirin:
# ifdown eth1
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
yeni yönlendirme tablosu oluştur
Eth1'den akan tüm trafik için uygun varsayılan bir rota içeren yeni, ayrı bir yönlendirme tablosu oluşturun. Buradaki tablo numarası önemli değildir; 101 basitçe ana yönlendirme tablosu değildir. Bunu, / etc / network / interfaces içindeki eth1 yapılandırmasında 'post-up' komutuyla yapın. Eth1'e yalnızca bir gönderi ekleyin; Herhangi bir eth1: alt arayüzüne eklemeyin.
post-up ip route add default via 192.168.1.65 dev eth1 table 101
Sıçrama eth1. Ana yönlendirme tablosu değişmez ve eth1 yukarıdaysa, tablo 101, 192.168.1.65 üzerinden varsayılan rotayı içerecektir.
# ifdown eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101 (ie, table is empty, no output)
# ifup eth1
# ip route show
192.168.0.96/27 dev eth0 proto kernel scope link src 192.168.0.126
192.168.1.64/27 dev eth1 proto kernel scope link src 192.168.1.93
default via 192.168.0.97 dev eth0 metric 100
# ip route show table 101
default via 192.168.1.65 dev eth1
yeni yönlendirme kuralı
Eth1 dışına çıkması gereken paketler için varsayılan bir rota seçmek üzere tablo 101'i kullanmak için bir yönlendirme kuralı ekleyin.
# ip rule add from 192.168.1.64/27 lookup 101
# ip rule show
0: from all lookup local
32765: from 192.168.1.64/27 lookup 101
32766: from all lookup main
32767: from all lookup default
Kuralı da /etc/network/interfaces
dosyaya ekleyin :
post-up ip rule add from 192.168.1.64/27 lookup 101
Şimdi arabirim çöktüğünde rotayı ve kuralı kaldırmak için temizlik eklediğinizden emin olun:
post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101
[EDIT for ubuntu 16.04+] Burada belirtildiği gibi ve bu yardımdan yaptığım testten, ip route2 komutların yapısını değiştirdi. İş yapmak için man ip
puanların nasıl yapıldığını sırayla yapmak için biraz uyum sağlamanız gerekecektir .
up ip route add default table 101 dev eth1 via 192.168.1.65
up ip rule add from 192.168.1.64/27 lookup 101
down ip rule del from 192.168.1.64/27
down ip route del default table 101 via 192.168.1.65
Veya bir ifdown - ifup komutundan sonra bir hata mesajı @ifdown komutuyla (çevre birimlerinin doğru yapılandırılmadığını söyleyen standart mesaj) ve @ tablo 101'de bir yolun bulunmaması durumunda sona erer.