คุณสามารถให้ความรู้ความเชี่ยวชาญในการทำความเข้าใจเกี่ยวกับการกำหนดค่าการแยกการรับส่งข้อมูลเครือข่ายในสองอินเตอร์เฟสเครือข่ายได้หรือไม่?
ดังที่ฉันทราบแล้วว่าเส้นทางแบบสแตติกใช้สำหรับการรับส่งข้อมูลเครือข่ายที่ไม่ได้ออกแบบมาเพื่อใช้เกตเวย์เริ่มต้น เกตเวย์เริ่มต้นจะใช้สำหรับการรับส่งข้อมูลทั้งหมดที่ไม่ได้กำหนดไว้สำหรับเครือข่ายท้องถิ่นและไม่มีเส้นทางที่ต้องการได้รับการระบุไว้ในตารางเส้นทาง
สถานการณ์มีดังนี้
- คอมพิวเตอร์แต่ละเครื่องในเครือข่ายมีการ์ดเครือข่ายสองใบ
- อินเทอร์เฟซการผลิตสำหรับแต่ละคือ
eth0
(GW = 10.10.10.1) - อินเตอร์เฟสการจัดการสำหรับแต่ละรายการคือ
eth1
(GW = 192.168.100.1) - ปริมาณการผลิตและการจัดการควรแยกจากกันโดยสิ้นเชิง
ฉันโพสต์ไว้ด้านล่างสิ่งที่ฉันได้ลองกับ Debian Wheezy และปัญหาของฉันคือแม้ว่าฉันจะตั้งค่าโฮสต์ในลักษณะที่พวกเขาสื่อสารบนทั้งสองอินเตอร์เฟส แต่โฮสต์แต่ละตัวดูเหมือนจะ "ได้ยิน" การรับส่งข้อมูลบนอินเตอร์เฟสที่ไม่ถูกต้อง ตัวอย่างเช่น:
โฮสต์ 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)
จากโฮสต์ 140, tcpdump -i eth0
รันคำสั่งนี้: ในเซสชั่นที่แยกต่างหากในพื้นที่ 140, 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
ทำไมฉันถึงเห็นผลลัพธ์ข้างต้นเปิดอยู่eth0
? ฉันคิดว่าฉันควรเห็นการเข้าชมสำหรับ 10.10.10.140 เท่านั้น ฉันก็เห็นสิ่งนี้eth1
ตามที่คาดไว้:
19:18:47.805408 IP 192.168.100.50 > 192.168.100.140: ICMP echo request, id 1605, seq 247, length 64
ถ้าฉัน ping จาก Host 50 ( ifconfig
ผลลัพธ์เดียวกัน- เป็น quad อื่นสุดท้าย) ก็eth0
จะเงียบและฉันเห็น ICMP echos เปิดeth1
ตามที่คาดไว้
ฉันต้องการที่จะเข้าใจวิธีการกำหนดค่าแต่ละอินเตอร์เฟสเพื่อรองรับปริมาณการใช้งานที่รับผิดชอบใน Linux สองสายพันธุ์หลักเท่านั้น ฉันคิดว่าฉันเกือบจะอยู่ที่นั่น แต่ฉันคิดถึงบางสิ่งที่ฉันไม่สามารถหาได้
- Debian Wheezy (7.x) หรือ Debian Jessie (8.x)
- Enterprise Linux (6.x) (RedHat / CentOS / วิทยาศาสตร์ / Oracle)
ฉันรู้ว่าวิธีแก้ปัญหาสำหรับ Debian น่าจะดีสำหรับทั้ง Wheezy และ Jessie และวิธีแก้ปัญหาสำหรับ EL ควรเหมือนกันสำหรับรุ่น EL 6.x ทั้งหมด ฉันต้องการหลีกเลี่ยงการใช้สคริปต์ RC เพื่อดำเนินการคำสั่งโดยเลือกใช้ไฟล์การกำหนดค่าแทน
ใน Debian ไฟล์การกำหนดค่าที่เกี่ยวข้องที่ฉันรู้คือ:
/etc/network/interfaces
ใน EL 6.x ไฟล์การกำหนดค่าที่เกี่ยวข้องที่ฉันรู้คือ:
/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
ไฟล์ Debian 8 "Jessie" ของฉัน/etc/network/interfaces
:
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
ฉันคิดว่าnetstat -anr
อาจแสดงให้เห็นถึงปัญหา:
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