อินเตอร์เฟสที่อิงกับ Macvlan ส่ง Ping จากโฮสต์ แต่ไม่ใช่จากเนมสเปซ


10

[แก้ไข]

ปัจจุบันระบบการผลิตนั้นเป็นระบบที่มีการผสมผสานทางกายภาพและ ESXi เห็นได้ชัดว่าเราจะไม่ใช้ virtualbox แม้กระทั่งสำหรับสภาพแวดล้อมก่อนการผลิต! มันถูกใช้ที่นี่เพื่อแคบลงอย่างรวดเร็วปัญหาโดยตรงบนเดสก์ทอปของฉัน

ขอบคุณสำหรับคำอธิบายสำหรับ "ระงับ" ในเมตา!

[/ แก้ไข]

การตั้งค่าของฉัน:

  1. เครือข่ายส่วนตัวvboxnet110.0.7.0/24
  2. 1 โฮสต์เดสก์ท็อป Ubuntu
  3. 1 VM, เซิร์ฟเวอร์ Ubuntu (VirtualBox)

ที่อยู่เค้าโครง:

  1. HOST: 10.0.7.1
  2. VM: 10.0.7.101
  3. VM MAC NAMESPACE : 10.0.7.102

เมื่อวันที่VMฉันวิ่งคำสั่งต่อไปนี้:

ip netns add mac                        # create a new nmespace
ip link add link eth0 mac0 type macvlan # create a new macvlan interface
ip link set mac0 netns mac

บนmacเนมสเปซภายใน VM:

ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0

เพื่อที่เราจะได้จบลงด้วย: (Like Inception?)

+------------------------+
| Host: 10.0.7.1         |
|                        |
| +--------------------+ |
| | VM: 10.0.7.101     | |
| |                    | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | |                | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+

งานอะไร:

  • Ping ระหว่างHostและVM
  • Ping ระหว่างNSและNS
  • dhclient จาก NS

อะไรไม่ทำงาน:

  • ping ระหว่างNSและVM
  • ping ระหว่างNSและHost

ที่ฉันเริ่มไปถั่ว:

  • tcpdump on host(เครื่องจริง) แสดงคำขอ ARP และการตอบกลับจริง
  • tcpdump on NSแสดงคำร้องขอ ARP ที่ส่งไปยังโฮสต์
  • tcpdump on VMทำให้ทั้งระเบียบทำงาน (!) -> ping เริ่มได้รับคำตอบเมื่อ tcpdump เริ่มทำงานบน VM?!?

ดังนั้นฉันคิดว่าคุณกระตือรือร้นที่จะถามคำถามของฉัน: ฉันจะทำให้มันทำงานอย่างไร ฉันสงสัยว่ามีบางอย่างผิดปกติกับ ARP บน macvlan ภายใน NS แต่ไม่สามารถเข้าใจได้ว่าอะไร ...

Btw ฉันได้ทำการอธิบายแบบเดียวกันกับmac0อินเตอร์เฟสโดยตรงบน VM (ไม่มีเนมสเปซ) และมันทำงานได้อย่างไม่มีที่ติ


4
ฉันไม่เข้าใจว่าทำไมคำถามนี้จึงถูกตั้งค่าสถานะเป็นปิดหัวข้อ แน่นอนว่าเป็นคำถาม sysadmin / netadmin ที่เกี่ยวข้องกับสภาพแวดล้อมการจำลองเสมือนหลาย ๆ แบบและไม่ใช่คำถามเล็กน้อย (หรือถ้าเป็น 90% ของคำถามใน StackOverflow เป็นแบบปิดหัวข้อด้วย) ฉันจะรักถ้าคนที่ตั้งค่าสถานะเป็น "นอกหัวข้อ" ใส่ใจที่จะอธิบายว่าทำไมแทนที่จะคัดลอกกฎที่ชัดเจนว่าไม่ได้ใช้ที่นี่ ขอบคุณ!
jpetazzo

@ jpetazzo นี่ไม่ใช่หัวข้อและฉันสามารถสรุปได้ว่าการปิดคนทำขึ้นอยู่กับองค์กรที่ไม่ดี / การนำเสนอของคำถาม (น่าจะเป็นเพราะ OP ไม่ได้เป็นผู้ดูแลระบบ sys / net) นอกจากนี้ขอบเขตของServer Fault (ไม่ใช่เฉพาะหัวข้อ) นั้นแตกต่างจากStack Overflowอาร์กิวเมนต์ของคุณทำให้ฉันคิดว่าคุณไม่ได้เข้าเยี่ยมชมศูนย์ช่วยเหลือของเราเนื่องจากไม่เหมาะสม
Chris S

คำตอบ:


13

ตกลงดังนั้นสำหรับลูกหลานความจริงที่ว่า tcpdump ทำให้การทำงานทั้งหมดในทันทีนั้นน่าจะทำให้ฉันติดตาม สิ่งที่มันทำภายในคือสลับeth0เป็นโหมดที่หลากหลาย กล่าวคือeth0จะให้การรับส่งข้อมูลเครือข่ายทั้งหมดไม่เพียงกับเซิร์ฟเวอร์หลักMAC

อย่างไรก็ตามนี่เป็นวิธีการmacvlanทำงานที่แม่นยำ: เพิ่มที่อยู่ MAC รองใหม่ที่ไม่ทราบอะแดปเตอร์เครือข่าย "ทางกายภาพ" (นั่นคือ VM)

ดังนั้นวิธีแก้ปัญหาง่าย ๆ คือทำด้วยตนเอง: ifconfig eth0 promisc

ฉันหวังว่ามันจะช่วย!


ดังนั้นคุณต้องยกเลิกการเลือก "no promisc mode" บน VM นั้นด้วยฉันคิดว่า?
นิลส์

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