แม้แต่ STP ก็เปิดใช้งานผ่าน brctl stp เปิด
บนเครือข่ายแบบวนซ้ำ ไม่สามารถส่งต่อแพ็กเก็ตได้สำเร็จ โปรดทราบว่าหากไม่มีการวนซ้ำในเครือข่ายทุกอย่างก็โอเค
อธิบายปัญหาได้ดังนี้
ฉันมีบอร์ด Linux สามบอร์ด (เช่น SW1, SW2, SW3) พร้อมโทโพโลยีแบบวงแหวนดังที่แสดง:
สว.1
/ \
SW2 ââââ SW3
การกำหนดค่า IP คือ:
SW1:192.168.20.2
SW2:192.168.20.3
SW3:192.168.20.4
บอร์ด Linux แต่ละตัวมีพอร์ตฟิสิคัล 4 พอร์ต และการเชื่อมต่อคือ:
SW1.swp2 <---> SW2.swp2
SW1.swp0 <---> SW3.swp1
SW2.swp3 <---> SW3.swp3
การกำหนดค่าบริดจ์ของ SW1 แสดงไว้ด้านล่าง ส่วนอื่นๆ เหมือนกับอันนี้ ยกเว้นที่อยู่ IP ของ "สวิตช์"
สวิตช์ ifconfig 192.168.20.2 # the "192.168.20.2" คือ IP ของ SW1
ตั้งค่าลิงค์ ip สลับขึ้น
ip link set swp0 master switch && ip link set swp0 up
ip link set swp1 master switch && ip link set swp1 up
ip link set swp2 master switch && ip link set swp2 up
ip link set swp3 master switch && ip link set swp3 up
เส้นทางเพิ่มเริ่มต้น gw 192.168.20.1
brctl stp เปิด
ลิงค์ ip ตั้งค่าสวิตช์ dev
เปิดใช้งาน STP สำเร็จแล้ว:
สวิตช์แสดง brctl
ชื่อบริดจ์ รหัสบริดจ์ อินเทอร์เฟซที่เปิดใช้งาน STP
เปลี่ยน 8000.06f5bc4466d2 ใช่ swp0
swp1
swp2
swp3
สถานะ STP สำหรับ SW1:
สวิตช์ brctl showstp
สวิตซ์
รหัสบริดจ์ 8000.06f5bc4466d2
กำหนดรูท 8000.067b22fa77a2
รูทพอร์ต 1 เส้นทางราคา 4
อายุสูงสุด 20.00 น. อายุสะพานสูงสุด 20.00 น
สวัสดีเวลา 2.00 สะพานสวัสดีเวลา 2.00 น
เดินหน้าล่าช้า 15.00 สะพาน เดินหน้าล่าช้า 15.00 น
อายุการใช้งาน 300.00
สวัสดี จับเวลา 0.00 tcn จับเวลา 0.00
ตัวจับเวลาการเปลี่ยนแปลงโทโพโลยี 0.00 gc ตัวจับเวลา 239.55
ธง
สวพ.0 (1)
พอร์ต id 8001 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
บริดจ์ที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 19.82
พอร์ตที่กำหนด 8002 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.1 (2)
สถานะพอร์ต id 8002 ถูกปิดใช้งาน
เส้นทาง root 8000.06f5bc4466d2 ที่กำหนดราคา 100
บริดจ์ที่กำหนด 8000.06f5bc4466d2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8002 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.2 (3)
พอร์ต id 8003 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
บริดจ์ที่กำหนด 8000.06f5bc4466d2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8003 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 4 ตัวจับเวลาค้างไว้ 1.41
ธง
สวพ.3 (4)
สถานะพอร์ต id 8004 ถูกปิดใช้งาน
เส้นทาง root 8000.06f5bc4466d2 ที่กำหนดราคา 100
บริดจ์ที่กำหนด 8000.06f5bc4466d2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8004 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
สถานะ STP สำหรับ SW2:
สวิตช์ brctl showstp
สวิตซ์
รหัสสะพาน 8000.9a32d1ec24fe
กำหนดรูท 8000.067b22fa77a2
เส้นทางรูทพอร์ต 4 ราคา 4
อายุสูงสุด 20.00 น. อายุสะพานสูงสุด 20.00 น
สวัสดีเวลา 2.00 สะพานสวัสดีเวลา 2.00 น
เดินหน้าล่าช้า 15.00 สะพาน เดินหน้าล่าช้า 15.00 น
อายุการใช้งาน 300.00
สวัสดี จับเวลา 0.00 tcn จับเวลา 0.00
ตัวจับเวลาการเปลี่ยนแปลงโทโพโลยี 0.00 gc ตัวจับเวลา 58.07
ธง
สวพ.0 (1)
สถานะพอร์ต id 8001 ถูกปิดใช้งาน
เส้นทาง root 8000.9a32d1ec24fe ที่กำหนดราคา 100
บริดจ์ที่กำหนด 8000.9a32d1ec24fe ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8001 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.1 (2)
สถานะพอร์ต id 8002 ถูกปิดใช้งาน
เส้นทาง root 8000.9a32d1ec24fe ที่กำหนดราคา 100
บริดจ์ที่กำหนด 8000.9a32d1ec24fe ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8002 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.2 (3)
การปิดกั้นสถานะพอร์ต id 8003
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
บริดจ์ที่กำหนด 8000.06f5bc4466d2 ตัวจับเวลาอายุข้อความ 19.43
พอร์ตที่กำหนด 8003 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 4 ตัวจับเวลา 0.00
ธง
สวพ.3 (4)
พอร์ต id 8004 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
บริดจ์ที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 19.43
พอร์ตที่กำหนด 8004 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สถานะ STP สำหรับ SW3:
สวิตช์ brctl showstp
สวิตซ์
รหัสบริดจ์ 8000.067b22fa77a2
กำหนดรูท 8000.067b22fa77a2
รูทพอร์ต 0 เส้นทางต้นทุน 0
อายุสูงสุด 20.00 น. อายุสะพานสูงสุด 20.00 น
สวัสดีเวลา 2.00 สะพานสวัสดีเวลา 2.00 น
เดินหน้าล่าช้า 15.00 สะพาน เดินหน้าล่าช้า 15.00 น
อายุการใช้งาน 300.00
สวัสดี จับเวลา 0.62 tcn จับเวลา 0.00
ตัวจับเวลาการเปลี่ยนแปลงโทโพโลยี 0.00 gc ตัวจับเวลา 98.80
ธง
สวพ.0 (1)
พอร์ต id 8001 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
สะพานที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8001 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.1 (2)
พอร์ต id 8002 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
สะพานที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8002 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.2 (3)
พอร์ต id 8003 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 19
สะพานที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8003 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
สวพ.3 (4)
พอร์ต id 8004 สถานะการส่งต่อ
เส้นทาง root 8000.067b22fa77a2 ที่กำหนดราคา 4
สะพานที่กำหนด 8000.067b22fa77a2 ตัวจับเวลาอายุข้อความ 0.00
พอร์ตที่กำหนด 8004 ตัวตั้งเวลาหน่วงไปข้างหน้า 0.00
ค่าใช้จ่ายที่กำหนด 0 ตัวจับเวลา 0.00
ธง
ใน SW1 ฉัน ping SW2:
ปิง 192.168.20.3
PING 192.168.20.3 (192.168.20.3): 56 ไบต์ข้อมูล
64 ไบต์จาก 192.168.20.3: seq=9 ttl=64 เวลา=0.330 ms
64 ไบต์จาก 192.168.20.3: seq=37 ttl=64 เวลา=0.291 ms
64 ไบต์จาก 192.168.20.3: seq=63 ttl=64 เวลา=0.289 ms
64 ไบต์จาก 192.168.20.3: seq=90 ttl=64 เวลา=0.310 ms
64 ไบต์จาก 192.168.20.3: seq=117 ttl=64 เวลา=0.305 ms
64 ไบต์จาก 192.168.20.3: seq=145 ttl=64 เวลา=0.286 ms
64 ไบต์จาก 192.168.20.3: seq=172 ttl=64 เวลา=0.311 ms
อย่างที่เราเห็น แพ็กเก็ต ping ไม่สามารถส่งได้อย่างต่อเนื่อง
มีความคิดที่ดีหรือไม่? อีกครั้งเมื่อฉันตัดการวนซ้ำ ping ก็โอเค