ระบบเครือข่ายที่มีหลาย Nics


16

ฉันมีเซิร์ฟเวอร์ Ubuntu 12.04 ที่มีอะแดปเตอร์เครือข่าย 4 ตัวอยู่ในนั้น ฉันต้องใช้ NIC แต่ละตัวสำหรับฟังก์ชั่นแยกต่างหาก นี่คือคำอธิบายของการตั้งค่าของฉัน:

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

ฉันต้องสามารถรับส่งข้อมูลไปยังและจากที่อยู่ IP แต่ละรายการสำหรับบริการเว็บแยกต่างหาก ie 10.235.0.2 เป็นเว็บไซต์ 10.236.0.2 เป็นเว็บไซต์อื่นและ 10.237.0.2 เป็นเว็บไซต์ที่สาม IP ที่ 1 ใช้สำหรับการจัดการเซิร์ฟเวอร์

ฉันคิดว่าปัญหานี้เป็นปัญหาการกำหนดเส้นทาง แต่ฉันใหม่พอที่จะให้ Linux ไม่มีความเข้าใจแบบเต็มของความสามารถในการกำหนดเส้นทาง

นี่คือสิ่งที่อยู่ใน/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

ฉันได้ปิดการใช้งานสองเครือข่ายล่าสุดเพื่อลดความสับสน

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือและความคิดเห็นและข้อเสนอแนะทั้งหมด

คำตอบ:


15

หลังจากทำการตั้งค่าปกติเพียงแค่ eth0 ฉันกลับมาแล้วเพิ่มการตั้งค่าสำหรับ eth1 เมื่อเพิ่ม eth0 ขึ้นตารางเส้นทางคือ:

# 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

แต่เมื่อฉันนำ eth1 ขึ้นมาคำสั่งของข้อความสั่งเส้นทางเริ่มต้นจะถูกกำหนดว่าจะใช้อินเตอร์เฟสใด ดังที่แสดงด้านล่างมันเกิดขึ้นกับการเลือกเส้นทาง eth1 ไปยังเกตเวย์ 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

หนึ่งคำสั่งเกตเวย์

ปัญหาแรกอาจเป็นเส้นทางเริ่มต้นพิเศษ 'ผ่าน 192.168.1.65' จะปรากฏขึ้นหากคำจำกัดความของ eth1 ใน / etc / network / interfaces มีคำสั่ง "เกตเวย์ 192.168.1.65" ดังนั้นให้ลบคำสั่งเกตเวย์พิเศษใด ๆ และเด้งกลับอินเตอร์เฟส:

# 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

ตั้งค่าตารางเส้นทางใหม่

สร้างตารางเส้นทางใหม่แยกต่างหากที่มีเส้นทางเริ่มต้นที่เหมาะสมสำหรับการรับส่งข้อมูลทั้งหมดที่ไหลออกมาจาก eth1 หมายเลขโต๊ะที่นี่ไม่สำคัญ 101 ไม่ใช่ตารางเส้นทางหลัก ทำสิ่งนี้ด้วยคำสั่ง 'post-up' บนการกำหนดค่า eth1 ใน / etc / network / interfaces เพิ่มเพียงหนึ่งโพสต์ขึ้นบน eth1; ห้ามเพิ่มลงในส่วนใด ๆ ของ eth1: sub-interfaces

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

ตีกลับ eth1 ตารางเส้นทางหลักไม่มีการเปลี่ยนแปลงและตาราง 101 จะมีเส้นทางเริ่มต้นผ่าน 192.168.1.65 หาก eth1 ขึ้น

# 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

กฎการกำหนดเส้นทางใหม่

เพิ่มกฎการเราต์เพื่อใช้ตาราง 101 เพื่อเลือกเส้นทางเริ่มต้นสำหรับแพ็กเก็ตซึ่งควรออกไป 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

เพิ่มกฎลงใน/etc/network/interfacesไฟล์เช่นกัน:

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

ตอนนี้ให้แน่ใจว่าจะเพิ่มการล้างข้อมูลเพื่อลบเส้นทางและกฎเมื่ออินเทอร์เฟซลง:

post-down ip rule del from 192.168.1.64/27
post-down ip route del default via 192.168.1.65 table 101

[แก้ไขสำหรับอูบุนตู 16.04+] เช่นเดียวกับที่ระบุที่นี่และจากการทดสอบที่ฉันทำจากความช่วยเหลือนี้ ip route2 ได้เปลี่ยนโครงสร้างของคำสั่ง สำหรับการทำงานของคุณจะมีการปรับเพียงเล็กน้อยที่ต้องทำในการสั่งซื้อวิธีการจุดman ip

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

หรือคุณจะจบลงด้วยคำสั่ง ifdown - ifup พร้อมกับข้อความแสดงข้อผิดพลาดคำสั่ง @ifdown (ข้อความมาตรฐานเพื่อบอกว่าอุปกรณ์ต่อพ่วงไม่ได้รับการกำหนดค่าอย่างถูกต้อง) และ @ifup การขาดเส้นทางในตาราง 101


ดี แต่ฉันไม่ชอบที่จะใช้ rc.local .. กำลังมองหาขั้นตอนสุดท้ายที่สวยงามยิ่งขึ้น ..
drAlberT

มีการแก้ไขฉันคิดว่า :) ..
drAlberT

จริง ๆ แล้วมีไฟล์ / etc / interfaces หรือว่าพิมพ์ผิด?
user100464

@ user100464/etc/network/interfaces
Zenexer

มีการอ้างอิงถึงอดีตในคำตอบคือ ฉันแก้ไขไม่ได้
user100464
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.