การเชื่อมต่อสลับไปยังเครือข่ายเฉพาะเครื่องเสมือน


0

ฉันมีหนังสือ mac ที่ใช้ Mac OS High Sierra มันเป็นเครื่องโฮสต์สามเครื่องเสมือนที่ใช้งาน Ubuntu 16.04 VMs ทั้งหมดเปิดใช้งานอะแดปเตอร์สองตัว NAT และโฮสต์เท่านั้น แม็คเชื่อมต่อกับโฮสต์อื่นผ่านสวิตช์ VMs ประสานงานและให้บริการที่ฉันต้องการให้โฮสต์ที่ปลายอีกด้านหนึ่งของสวิตช์ที่เชื่อมต่อกับแล็ปท็อปของฉัน

                                     en8                                         
 192.168.57.0     192.168.57.200     192.168.57.100   /---|VM1| 192.168.56.3
|------------|   /--------------\   |--------------| /
|   Host1    |--|     switch     |--|    Host2     |------|VM2| 192.168.56.4
|------------|   \--------------/   |--------------| \
                                     192.168.56.1     \---|VM3| 192.168.56.5
                                     vboxnet0

192.168.57.0\24โฮสต์บนเครือข่ายย่อย แล็ปท็อปที่เชื่อมต่อกับสวิทช์ผ่านอินเตอร์เฟซที่en8มีที่อยู่ IP 192.168.57.100ของ แล็ปท็อปและสวิตช์สามารถ ping ซึ่งกันและกัน

Mac OS เชื่อมต่อกับ VMs ผ่านเกตเวย์บนอินเตอร์เฟซ192.168.56.1 vboxnet0VMs สามารถ ping แต่ละคนและโฮสต์ของพวกเขา โฮสต์สามารถสื่อสารกับแต่ละ VM

ฉันต้องการให้ VM สามารถควบคุมสวิตช์ได้ดังนั้นฉันจึงต้องตั้งค่ากฎการกำหนดเส้นทางเพื่อเชื่อมต่อทราฟฟิกจาก swtich ไปยัง VMs และย้อนกลับ ฉันต้องการใช้ mac ของฉันเหมือนเราเตอร์เพื่อทำสิ่งนี้

ฉันลองทำตามตัวอย่างของ Jeff Warren ที่นี่: Virtualbox: การเชื่อมต่อเครือข่ายเฉพาะโฮสต์ในโฮสต์แยกกันแต่มันไม่ทำงานในกรณีของฉัน

โดยเฉพาะฉันพยายาม ...

sudo route -n add -net 192.168.56.0/24  192.168.57.100

แต่มันไม่ได้ผล ฉันได้รับข้อความแจ้งว่ามีไฟล์อยู่แล้ว

ความคิดใด ๆ เกี่ยวกับวิธีที่ฉันสามารถทำให้การกำหนดค่าสวิตช์ของฉันจาก VMs เป็นที่นิยมมาก ขอขอบคุณ.

ฉันลองวิธีอื่นแล้วเช่นการวาง VMs ลงในเครือข่ายย่อยเดียวกับสวิตช์ อย่างไรก็ตามเมื่อฉันทำสิ่งนี้ฉันขาดการสื่อสารระหว่าง VM และโฮสต์ของพวกเขา ฉันได้ลองใช้เครือข่ายบริดจ์แทนโฮสต์เท่านั้น แต่ก็ไม่ได้ผลเช่นกัน

คำตอบ:


1

สมมติว่าอินเทอร์เฟซ 192.168.56.0/24 บน VM เป็นโฮสต์เท่านั้น (เช่นไม่ใช่ NAT)

คุณไม่ต้องการเส้นทางบน MAC ของคุณ (โฮสต์ 2) เพราะเป็นเส้นทางเดียวที่แนบโดยตรงกับทั้ง / 24 คุณต้องใช้ VM ของคุณในการเข้าถึงสวิตช์นี้และสวิตช์เพื่อไปยังวิธีนี้เพื่อไปยัง VMs

บน VMs "ip route เพิ่ม 192.168.57.0/24 ผ่าน 192.168.56.1" ควรทำตามขั้นตอนดังกล่าว

บนสวิตช์ ... จำเป็นต้องใช้ไวยากรณ์ใด ๆ อาจทำให้โฮสต์ 2 เป็นเกตเวย์เริ่มต้น (@ 192.168.57.100)


ขอบคุณฉันเพิ่มกฎเส้นทาง IP บน VM ของฉัน แต่ฉันไม่สามารถเข้าถึงปลายทางได้เมื่อฉันส่ง Ping 192.168.57.100 ฉันพยายามปรับเปลี่ยนกฎกับเส้นทางที่จะไป 0.57 ผ่าน 192.168.56.1 คิด VMs ฉันสามารถเข้าถึงโฮสต์ผ่านทางที่อยู่ที่ RTNETLINK answers: Network is unreachableแต่เมื่อผมทำเช่นนี้ฉันได้รับ ฉันเปลี่ยนเกตเวย์ของสวิตช์เป็น 192.168.57.100
Matt Hall

ขอโทษใช่พิมพ์ผิดของฉัน ควรได้รับ "ผ่าน 192.168.56.1" "ip route ls" แสดงอะไรบน VMs?
Carlos Mendioroz

MAC ของคุณ (โฮสต์ 2) จำเป็นต้องเต็มใจที่จะส่งต่อการรับส่งข้อมูล (เช่นเส้นทาง) มันอาจจะเพียงพอที่จะ "echo 1> / proc / sys / net / ipv4 / ip_forward" หรืออาจต้องใช้กฎของไฟร์วอลล์ tweeking หากคุณมีพวกเขา
Carlos Mendioroz

ฉันลบกฎที่ไม่ดีip route lsตอนนี้ ... default via 10.0.3.2 dev enp0s8 proto static metric 100 NEWLINE 10.0.3.0/24 dev enp0s8 proto kernel scope link src 10.0.3.15 metric 100 NEWLINE 169.254.0.0/16 dev enp0s8 scope link metric 1000 NEWLINE 192.168.57.0/24 dev enp0s3 proto kernel scope link src 192.168.57.3 metric 100ฉันพยายามทำความสะอาดการจัดรูปแบบเล็กน้อยสำหรับความคิดเห็น แต่ฉันไม่แน่ใจว่ามันช่วยได้มาก
Matt Hall

เปิดใช้งานการส่งต่อบน mac ด้วยsysctl -w net.inet.ip.forwarding=1
Matt Hall
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.