Jaringan dengan Banyak Nics


16

Saya memiliki server Ubuntu 12.04 dengan 4 adapter Jaringan di dalamnya. Saya perlu menggunakan setiap NIC untuk fungsi yang terpisah. Berikut ini adalah deskripsi pengaturan saya:

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

Saya harus dapat mengarahkan lalu lintas ke dan dari masing-masing alamat IP untuk layanan web terpisah. yaitu 10.235.0.2 adalah situs web, 10.236.0.2 adalah situs yang berbeda, dan 10.237.0.2 adalah situs ketiga. IP pertama adalah untuk manajemen server.

Saya pikir masalahnya adalah masalah perutean, tetapi saya cukup baru untuk Linux sehingga tidak memiliki pemahaman penuh tentang seluk beluk kemampuan perutean.

Inilah yang ada di /etc/network/interfacesfile saya :

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

Saya telah menonaktifkan dua jaringan terakhir hanya untuk mengurangi kebingungan.

Terima kasih sebelumnya atas semua bantuan dan komentar serta saran.

Jawaban:


15

Setelah melakukan konfigurasi normal hanya dengan eth0, saya kembali dan menambahkan config untuk eth1. Dengan hanya eth0 ke atas, tabel rute adalah:

# 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

Tapi begitu saya membuka eth1, urutan pernyataan rute default menentukan antarmuka mana yang selalu digunakan. Seperti yang ditunjukkan di bawah ini, kebetulan memilih rute eth1 ke gateway 192.168.1.65.

# 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

hanya satu pernyataan gateway

Masalah pertama adalah ekstra 'via 192.168.1.65' rute default. Muncul di sana jika definisi eth1 di / etc / network / interfaces memiliki pernyataan "gateway 192.168.1.65". Jadi hapus semua pernyataan gerbang tambahan, dan pantulkan antarmuka:

# 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

mengatur tabel routing baru

Buat tabel routing baru dan terpisah yang berisi rute default yang sesuai untuk semua lalu lintas yang keluar dari eth1. Nomor tabel di sini tidak penting; 101 bukan tabel routing utama. Lakukan ini dengan perintah 'post-up' pada konfigurasi eth1 di / etc / network / interfaces. Tambahkan hanya satu post-up di eth1; Jangan menambahkannya ke sub-antarmuka eth1:

post-up ip route add default via 192.168.1.65 dev eth1 table 101

Bounce eth1. Tabel routing utama tidak berubah, dan tabel 101 akan berisi rute default via 192.168.1.65 jika eth1 naik.

# 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

aturan perutean baru

Tambahkan aturan routing untuk menggunakan tabel 101 untuk memilih rute default untuk paket yang harus keluar eth1.

# 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

Tambahkan aturan ke /etc/network/interfacesfile juga:

post-up ip rule add from 192.168.1.64/27 lookup 101

Sekarang pastikan untuk menambahkan pembersihan untuk menghapus rute dan aturan ketika antarmuka turun:

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 untuk ubuntu 16.04+] Seperti ditunjukkan di sini dan dari tes yang saya buat dari bantuan ini, ip route2 telah mengubah struktur perintahnya. Untuk membuat pekerjaan Anda harus menyesuaikan sedikit yang harus dilakukan dalam urutan bagaimana man ip poinnya .

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

Atau Anda akan berakhir setelah perintah ifdown - ifup dengan pesan kesalahan @ perintah turun (pesan standar untuk mengatakan bahwa periferal tidak dikonfigurasi dengan benar), dan @ jika tidak ada rute pada tabel 101.


Bagus, tapi saya tidak suka menggunakan rc.local .. mencari langkah akhir yang lebih elegan ..
drAlberT

Itu diedit kurasa :) ..
drAlberT

Apakah sebenarnya ada file / etc / interfaces, atau apakah itu kesalahan ketik?
user100464

@ user100464/etc/network/interfaces
Zenexer

Ada ref untuk yang pertama dalam jawabannya. Saya tidak bisa mengeditnya.
user100464
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.