Bisakah Anda meminjamkan keahlian Anda dalam memahami bagaimana cara mengkonfigurasi pemisahan lalu lintas jaringan pada dua antarmuka jaringan?
Sejauh yang saya mengerti sejauh ini, rute statis digunakan untuk lalu lintas jaringan yang tidak dirancang untuk menggunakan gateway default. Gateway default digunakan untuk semua lalu lintas yang tidak diperuntukkan bagi jaringan lokal dan yang tidak ada rute pilihan telah ditentukan dalam tabel routing.
Skenarionya adalah sebagai berikut.
- Setiap komputer dalam jaringan memiliki dua kartu jaringan.
- Antarmuka produksi untuk masing-masing adalah
eth0
(GW = 10.10.10.1). - Antarmuka manajemen untuk masing-masing adalah
eth1
(GW = 192.168.100.1). - Lalu lintas Produksi dan Manajemen harus sepenuhnya dipisahkan.
Saya telah memposting, di bawah ini, hal-hal apa yang saya coba dengan Debian Wheezy. Dan, masalah saya adalah bahwa, meskipun saya memiliki host yang diatur sedemikian rupa sehingga mereka berkomunikasi pada kedua antarmuka, masing-masing host tampaknya "mendengar" lalu lintas pada antarmuka yang salah. Sebagai contoh:
Tuan rumah 140
eth0 Link encap:Ethernet HWaddr 08:00:27:d1:b6:8f
inet addr:10.10.10.140 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1341 errors:0 dropped:0 overruns:0 frame:0
TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:641481 (626.4 KiB) TX bytes:241124 (235.4 KiB)
eth1 Link encap:Ethernet HWaddr 08:00:27:ad:14:b6
inet addr:192.168.100.140 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fead:14b6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7220 errors:0 dropped:0 overruns:0 frame:0
TX packets:5257 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:602485 (588.3 KiB) TX bytes:1022906 (998.9 KiB)
Dari host 140, saya menjalankan perintah ini: tcpdump -i eth0
. Dalam sesi terpisah pada host 140, saya mengeksekusi ping 192.168.100.50
.
19:17:29.301565 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 10, length 64
19:17:30.301561 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 11, length 64
19:17:31.301570 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 12, length 64
19:17:32.301580 IP 192.168.100.140 > 192.168.100.50: ICMP echo request, id 1400, seq 13, length 64
Mengapa saya melihat output di atas eth0
? Saya pikir saya hanya akan melihat traffic untuk 10.10.10.140. Saya juga melihat ini eth1
, seperti yang diharapkan:
19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64
Jika saya melakukan ping dari Host 50 ( ifconfig
hasil yang sama - hanya quad terakhir yang berbeda), maka eth0
diam, dan saya melihat gema ICMP menyala eth1
, seperti yang diharapkan.
Saya ingin memahami cara mengkonfigurasi setiap antarmuka untuk menangani hanya lalu lintas yang bertanggung jawab dalam dua varietas Linux utama. Saya pikir saya hampir sampai, tetapi saya kehilangan sesuatu yang sepertinya tidak bisa saya temukan.
- Debian Wheezy (7.x) atau Debian Jessie (8.x)
- Enterprise Linux (6.x) (RedHat / CentOS / Scientific / Oracle).
Saya tahu bahwa solusi untuk Debian harus baik untuk Wheezy dan Jessie, dan bahwa solusi untuk EL harus sama untuk semua versi EL 6.x. Saya ingin menghindari menggunakan skrip RC untuk menjalankan perintah, dan memilih untuk menggunakan file konfigurasi.
Di Debian file konfigurasi yang relevan yang saya ketahui adalah:
/etc/network/interfaces
Di EL 6.x, file konfigurasi yang relevan yang saya ketahui adalah:
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/route-eth0
/etc/sysconfig/network-scripts/route-eth1
/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/rule-eth1
/etc/network/interfaces
File "Jessie" Debian 8 saya :
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# Production interface
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.140
netmask 255.255.255.0
gateway 10.10.10.1
# Management interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.140
netmask 255.255.255.0
Saya pikir netstat -anr
mungkin menggambarkan masalah:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0
10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
iptabels -L -t nat
Jawaban:
Saya ingin tahu lebih banyak tentang topik ini untuk memperbaiki konfigurasi menjadi yang terbaik, tetapi inilah yang saya miliki sejauh ini. Bahkan tanpa mengaktifkan penyaringan ARP pada semua antarmuka jaringan (
net.ipv4.conf.all.arp_filter = 0
), seperti yang disebutkan oleh @spuk, lalu lintas tampaknya benar-benar dipisahkan dalam konfigurasi ini.File,,
/etc/iproute2/rt_tables
sama di EL 6.x dan DEB 7/8, setidaknya. Ini adalah file yang membuat tabel routing bernama untuk rute statis.Di atas, jumlah yang dinamai, rute statis, 1, pada dasarnya arbitrer; atau, setiap rute statis mendapatkan nomor uniknya sendiri antara 1 dan 252.
File,
/etc/network/interfaces
dalam DEB 7/8, setidaknya:Hasil dari
ip route show
di Debian:File EL 6.x
/etc/sysconfig/network
:Di atas, GATEWAY adalah rute default. Di bawah, jika BOOTPROTOCOL diatur ke DHCP, rute default akan diperoleh dari DHCP.
/etc/sysconfig/network-scripts/ifcfg-eth0
File EL 6.x , tanpa "HWADDR" dan "UUID":/etc/sysconfig/network-scripts/ifcfg-eth1
File EL 6.x , tanpa "HWADDR" dan "UUID":File EL 6.x
/etc/sysconfig/network-scripts/route-eth1
:File EL 6.x
/etc/sysconfig/network-scripts/rule-eth1
:Hasil
ip route show
pada EL 6.x:sumber
Saya belum membaca seluruh posting Anda (maaf, tidak bisa menghabiskan waktu sekarang), tapi saya percaya itu mungkin terkait dengan cara Linux mengimplementasikan model IP host :
Dari halaman yang sama:
Artinya, di Linux, secara default, alamat IP "milik host", tidak sepenuhnya "ke antarmuka". Anda dapat mengubah perilaku itu melalui
arp_filter
,rp_filter
,arp_announce
,arp_ignore
sysctls (dapatkan dari LVS: The ARP Masalah , terlihat di sini ). Juga, lihat ip-sysctl.txt .sumber