การกำหนดค่าเราเตอร์เพื่อวางแพ็กเก็ตแนะนำเวลาแฝงข้อมูลเสียหาย


13

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

  1. ปล่อยแพ็คเก็ตเป็นระยะ
  2. แนะนำ latency เป็นระยะ ๆ ในแพ็กเก็ต
  3. ข้อมูลที่เสียหายในแพ็คเก็ต (อันนี้ไม่จำเป็นเพราะมันจะต้องเปิดแพ็คเก็ต, การเปลี่ยนแปลงข้อมูลและการปรับปรุงการตรวจสอบตั้งแต่เลเยอร์ TCP จะจับปัญหาประเภทนี้)

หากไม่สามารถทำได้ในเราเตอร์จะสามารถกำหนดค่าคอมพิวเตอร์ให้ทำหน้าที่เป็นเราเตอร์ได้หรือไม่?

ขอบคุณมาก!

คำตอบ:


17

หากคุณใช้กล่อง Linux เป็นเราเตอร์ netfilter มีหลายวิธีที่จะมายุ่งกับปริมาณการใช้แพ็คเก็ตของคุณ

randomโมดูลสามารถใช้ในการสุ่มปล่อยแพคเก็ต ตัวอย่างเช่นสิ่งนี้:

iptables -A FORWARD -m random --average 10 -j DROP

จะทำให้เราเตอร์สุ่มวางแพ็กเก็ตในอัตราเฉลี่ย 10%

นอกจากนี้คุณยังสามารถทำลายแพ็คเก็ตแบบสุ่มที่มีเป้าหมาย XOR เช่น

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"

จะทำให้เกิดความเสียหาย 1% ของแพ็กเก็ตที่ส่งต่อโดย XORing พวกเขาด้วยคีย์ที่ได้รับจากสตริงที่กำหนด


มันฟังดูยอดเยี่ยม! ขอบคุณสตีเวน! คุณเคยตั้งค่านี้หรือไม่? ลินุกซ์ distro อะไร?
ทำเครื่องหมาย

ฉันประสบความสำเร็จในการสร้างเราเตอร์สำหรับเครือข่ายขนาดเล็กที่ใช้ Debian แต่จริงๆแล้วลินุกซ์ distro ใด ๆ ที่มีเคอร์เนลเมื่อเร็ว ๆ นี้ควรทำอะไรได้ดีเนื่องจาก netfilter สร้างขึ้นในเคอร์เนล ฉันไม่เคยพยายามที่จริงการสร้างเราเตอร์ "เลวร้าย" ตามที่อธิบายไว้ที่นี่ แต่มันอาจจะเป็นโครงการที่น่าสนใจสำหรับบ่ายวันอาทิตย์ขี้เกียจ ...
สตีเว่นจันทร์

หากคุณใช้ iptables เวอร์ชัน 1.3.5 คำสั่งด้านบนอาจมีข้อผิดพลาดกับข้อความ "iptables v1.3.5: ไม่สามารถโหลดการจับคู่แบบสุ่ม" คำสั่งด้านล่างใช้งานได้สำหรับฉัน - iptables -A ไปข้างหน้าสถิติ -m - โหมดสุ่ม - ความน่าจะเป็น 0.2 -j DROP
prashantsunkari

3

ฉันใช้WANemเพื่อจำลองสภาพเครือข่ายของ WAN ระหว่างเยอรมนีและอินเดียสำเร็จแล้ว WANem จัดส่งเป็นซีดีหรืออุปกรณ์ที่สามารถบู๊ตได้ คุณเพียงแค่บูทขึ้นมากำหนดค่าเครือข่ายที่ต้องการจากนั้นกำหนดเส้นทางการรับส่งข้อมูลของคุณ การอ้างอิงคำอธิบายอย่างเป็นทางการ:

WANem เป็น Wide Area Network Emulator ซึ่งหมายถึงการมอบประสบการณ์จริงของ Wide Area Network / อินเทอร์เน็ตในระหว่างการพัฒนาแอพพลิเคชั่น / ทดสอบบนสภาพแวดล้อม LAN โดยทั่วไปนักพัฒนาแอปพลิเคชันจะพัฒนาแอปพลิเคชันบน LAN ในขณะที่วัตถุประสงค์ที่ตั้งใจไว้เหมือนกันอาจเป็นไปได้ว่าไคลเอนต์ที่เข้าถึงผ่าน WAN หรืออินเทอร์เน็ต ดังนั้น WANem จึงอนุญาตให้ทีมพัฒนาแอปพลิเคชันตั้งค่าเกตเวย์แอปพลิเคชันที่โปร่งใสซึ่งสามารถใช้ในการจำลองลักษณะของ WAN เช่นความล่าช้าของเครือข่าย, การสูญเสียแพ็คเก็ต, ความเสียหายของแพ็คเก็ต, ความไม่ต่อเนื่อง เงื่อนไขเครือข่ายสำหรับการรับส่งข้อมูล / เสียงและเผยแพร่ภายใต้ลิขสิทธิ์ GPL v2 ที่เป็นที่ยอมรับอย่างกว้างขวาง


2

ตั้งค่าพอร์ตอัปลิงค์เป็น 10Mbps และ half duplex หากทำได้ จากนั้นใช้โฮสต์บนเครือข่ายเพื่อ ping น้ำมูกจากนั้น นั่นควรจะเป็นเพศคุณอย่างเหมาะสม: D


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

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