Birden Çok Nics ile Ağ Oluşturma


16

İçinde 4 Ağ bağdaştırıcısı bulunan bir Ubuntu 12.04 sunucum var. Her bir NIC'yi ayrı bir işlev için kullanmam gerekiyor. İşte kurulumumun bir açıklaması:

etho = 10.234.0.2 netmask = 255.255.255.252 gw = 10.234.0.1 This is on vlan 234
eth1 = 10.235.0.2 netmask = 255.255.255.252 gw = 10.235.0.1 This is on vlan 235
eth2 = 10.236.0.2 netmask = 255.255.255.252 gw = 10.236.0.1 This is on vlan 236
eth3 = 10.237.0.2 netmask = 255.255.255.252 gw = 10.237.0.1 This is on vlan 237

Ayrı web hizmetleri için bireysel IP adreslerine ve IP adreslerinden gelen trafiği yönlendirebilmem gerekiyor. yani 10.235.0.2 bir web sitesidir, 10.236.0.2 farklı bir sitedir ve 10.237.0.2 üçüncü bir sitedir. 1. IP sunucunun yönetimi içindir.

Sorunun bir yönlendirme sorunu olduğunu düşünüyorum, ancak Linux için yönlendirme özelliklerinin giriş ve çıkışlarını tam olarak anlayamayacak kadar yeniyim.

İşte dosyamda ne var /etc/network/interfaces:

auto lo
iface lo inet loopback

# WWW Management
auto eth0
iface eth0 inet static
address 10.234.0.2
netmask 255.255.255.252
gateway 10.234.0.1
nameseervers 10.230.1.103, 10.230.70.70

# WWW
auto eth1
iface eth1 inet static
address 10.235.0.2
netmask 255.255.255.252
gateway 10.235.0.1

# WTB
#auto eth2
#iface eth2 inet static
#address 10.236.0.2
#netmask 255.255.255.252
#gateway 10.236.0.1

# Moodle
#auto eth3
#iface eth3 inet static
#address 10.237.0.2
#netmask 255.255.255.252
#gateway 10.237.0.1

Sadece karışıklığı azaltmak için son iki ağı devre dışı bıraktım.

Tüm yardım, görüş ve önerileriniz için şimdiden teşekkür ederiz.

Yanıtlar:


15

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/interfacesdosyaya 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.


Güzel, ama rc.local kullanmaktan hoşlanmıyorum .. daha zarif bir son adım arıyor ..
drAlberT

Sanırım düzenlendi .. :)
drAlberT

Aslında bir / etc / interfaces dosyası var mı, yoksa bu bir yazım hatası mı?
user100464

@ user100464/etc/network/interfaces
Zenexer

Cevapta ilkine bir ref var. Düzenleyemiyorum.
user100464
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.