Score:0

การตั้งค่าสภาพแวดล้อมเสมือนจริงสำหรับการทดสอบ STP

ธง ml

ฉันต้องการสร้างสภาพแวดล้อมการทดสอบสำหรับ STP / RSTP ในที่สุดฉันก็ผ่านมา โพสต์นี้ ที่แนะนำให้ใช้เนมสเปซ ดูเหมือนว่านั่นเป็นสิ่งที่ฉันต้องการสร้างสภาพแวดล้อม STP ที่ง่ายที่สุด ฉันลงเอยด้วยการเขียนสคริปต์เช่นนี้:

#!/bin/bash
 
ถ้า [ "$EUID" -ne 0 ]
จากนั้น echo "กรุณาเรียกใช้ในฐานะรูท"
    ทางออก
ไฟ
 
# กรณีแรก: ลองคู่ veth เดียว
ip netns เพิ่มสีน้ำเงิน
 
ip link เพิ่ม veth0 พิมพ์ veth peer veth1 netns blue
ip link เพิ่ม veth2 พิมพ์ veth peer veth3 netns blue
 
ลิงค์ ip ตั้งค่า veth0 ขึ้น
ip netns exec blue ip link ตั้งค่า veth1 แล้ว
ลิงค์ ip ตั้งค่า veth2 ขึ้น
ip netns exec blue ip link ตั้งค่า veth3 ขึ้น
 
ลิงค์ ip เพิ่มสะพานประเภท mybridge
ip link ตั้งค่า veth0 master mybridge
ชุดลิงค์ ip veth2 มาสเตอร์ mybridge
 
ip netns exec blue ip link เพิ่มบริดจ์ประเภท bluebridge
ip netns exec blue ip link ตั้งค่า veth1 master bluebridge
ip netns exec blue ip link ตั้งค่า veth3 master bluebridge

ip addr เพิ่ม 10.200.0.1/24 dev mybridge
 
#brctl stp mybridge บน
ip link ตั้งค่า mybridge ประเภทบริดจ์ stp_state 1

ลิงค์ ip ตั้งค่า mybridge ขึ้น

# เริ่มบันทึกแพ็กเก็ตที่นี่
echo "เริ่มบันทึกแพ็กเก็ต กดปุ่มใดก็ได้เพื่อดำเนินการต่อ"
อ่าน -n 1

ip netns exec blue ip addr เพิ่ม 10.200.0.2/24 dev bluebridge

#ip netns exec blue brctl stp bluebridge เปิด
ip netns exec blue ip link set bluebridge ประเภทบริดจ์ stp_state 1

ip netns exec blue ip link ตั้งค่า bluebridge ขึ้น

เกือบทุกครั้งที่ฉันลงเอยด้วยสถานะที่ทั้ง veth0 และ veth2 กำลังส่งต่อ และฉันจะเจอพายุที่ทำให้เครื่องของฉันทำงานจนกว่าฉันจะลดอินเทอร์เฟซใด ๆ

ความหวังของฉันคือเคอร์เนลเอง (4.19.128 ที่ทำงานใน WSL 2.0 สำหรับการทดสอบปัจจุบันของฉัน) สามารถตรวจพบสิ่งเหล่านี้และ... ไม่ทำให้เกิดพายุ นอกจากนี้ ฉันหวังว่าจะสามารถใช้โปรแกรม RSTP พื้นที่ผู้ใช้ เช่น mstpd (คอมมิชชัน f55f783610e65149) บนบริดจ์หนึ่งหรือทั้งสองบริดจ์เหล่านี้ และพัฒนาสถาปัตยกรรมเครือข่าย โดยจับแพ็กเก็ตบนอินเทอร์เฟซใดๆ ระหว่างทาง

มีบางอย่างที่ฉันขาดหายไป? ฉันได้ลองสิ่งนี้กับเนมสเปซเครือข่ายสามแห่งแล้ว - ดูเหมือนจะยัง เกือบตลอดเวลา นำไปสู่พายุ

ฉันเคยเห็นบางกรณีที่พอร์ตหนึ่งปิดกั้นและอีกพอร์ตหนึ่งส่งต่อตามที่ฉันคาดไว้ นั่นดูเหมือนจะเป็นข้อยกเว้นมากกว่ากฎ

สำหรับผู้ที่เล่นที่บ้าน สคริปต์ง่ายๆ เพื่อเลิกทำอินเทอร์เฟซทั้งหมด:

#!/bin/bash

ถ้า [ "$EUID" -ne 0 ]
จากนั้น echo "กรุณาเรียกใช้ในฐานะรูท"
    ทางออก
ไฟ

#ฆ่าสีน้ำเงิน
ip netns exec blue ip link เดล bluebridge
ip netns exec blue ip ลิงค์ del veth1
ip netns exec blue ip ลิงค์ del veth3

ip netns เดลบลู

ip ลิงค์เดล mybridge

โพสต์คำตอบ

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