คำถามติดแท็ก traffic-shaping

Traffic Shaping เป็นเทคนิคในการหน่วงเวลาดาต้าแกรมบางส่วนหรือทั้งหมดเพื่อให้สอดคล้องกับโปรไฟล์การรับส่งข้อมูลที่ต้องการ

4
ไม่มีใครเข้าใจจริงๆว่าการตั้งเวลา HFSC ใน Linux / BSD ทำงานอย่างไร?
ฉันอ่านต้นฉบับPostScript ของ SIGCOMM '97เกี่ยวกับ HFSC มันเป็นเรื่องทางเทคนิคมาก แต่ฉันเข้าใจแนวคิดพื้นฐาน แทนที่จะให้เส้นโค้งบริการแบบเส้นตรง (เช่นเดียวกับอัลกอริธึมการตั้งเวลาอื่น ๆ ) คุณสามารถระบุเส้นโค้งการให้บริการแบบนูนหรือเว้าได้ดังนั้นจึงเป็นไปได้ที่จะแยกแบนด์วิดท์และการหน่วงเวลาออก อย่างไรก็ตามแม้ว่าบทความนี้จะกล่าวถึงชนิดของอัลกอริทึมการจัดตารางเวลาที่ใช้ (เรียลไทม์และลิงค์แบ่งปัน) มันมักจะกล่าวถึงหนึ่งโค้งต่อชั้นเรียนการตั้งเวลา (decoupling จะทำโดยระบุโค้งนี้เพียงหนึ่งโค้งที่จำเป็นสำหรับ ) ตอนนี้ HFSC ได้รับการดำเนินการสำหรับ BSD (OpenBSD, FreeBSD, ฯลฯ ) โดยใช้กรอบการจัดตารางเวลา ALTQและมันได้รับการดำเนินการลินุกซ์โดยใช้กรอบการจัดตารางเวลา TC (ส่วนหนึ่งของ iproute2) การใช้งานทั้งสองเพิ่มเส้นโค้งบริการเพิ่มเติมสองเส้นซึ่งไม่ได้อยู่ในเอกสารต้นฉบับ! เส้นโค้งบริการแบบเรียลไทม์และเส้นโค้งบริการขีด จำกัด บน อีกครั้งโปรดทราบว่ากระดาษต้นฉบับกล่าวถึงอัลกอริธึมการตั้งเวลาสองแบบ (เรียลไทม์และลิงค์แชร์) แต่ในบทความนั้นทั้งคู่ทำงานร่วมกับเส้นโค้งบริการเดียว ไม่เคยมีเส้นโค้งบริการที่เป็นอิสระสองเส้นสำหรับเส้นโค้งใดเส้นหนึ่งตามที่คุณพบใน BSD และ Linux ยิ่งแย่ไปกว่านั้น ALTQ บางรุ่นดูเหมือนว่าจะเพิ่มลำดับความสำคัญของคิวเพิ่มเติมให้กับ HSFC (ไม่มีสิ่งใดที่มีความสำคัญในเอกสารต้นฉบับเช่นกัน) ฉันพบ BSD HowTo …

1
อัตราขั้นต่ำและปัญหาคลาสเริ่มต้นสำหรับ HTB
ฉันมีข้อสงสัยเกี่ยวกับโครงสร้าง HTB ที่ฉันใช้ เป้าหมายของฉันคือ จำกัด การดาวน์โหลดและอัพโหลดความเร็วของผู้ใช้ในเครือข่ายท้องถิ่น ผู้ใช้เครือข่ายแต่ละรายมีรายชื่อโดเมนส่วนบุคคลที่มีความเร็วในการขึ้นและลงสำหรับโดเมนที่เขาต้องไม่เกิน หมายความว่า user1 สามารถใช้งาน slashdot.org ได้เพียง 8KB ในการดาวน์โหลดและ 3KB สำหรับการอัพโหลดและ user2 สามารถใช้ slashdot.org เพื่อ จำกัด การเข้าถึง 4KB ลงและ 1KB ขึ้นไป ตอนนี้ฉันติดตั้ง iptables / tc couple ที่ใช้งานได้ดี แต่มีขนาดเล็กมากโดยใช้โฮสต์เสมือน 2 หรือ 3 ตัวพร้อมกัน (น่าเสียดายที่ฉันไม่สามารถทำการทดสอบขนาดจริงได้) นี่คือโครงสร้างปัจจุบันของฉัน (ฉันจะแสดงเฉพาะบน egress ของ LAN เท่านั้นโครงสร้างสำหรับการอัปโหลดเป็นเพียง "คัดลอก" ของอันนี้) HTB qdisc (หมายเลข 2 …

3
Tc: เข้าการรักษาและการสะท้อน ifb
ฉันพยายามที่จะติดตั้งการปรับการจราจรบนเกตเวย์ Linux เป็นลายลักษณ์อักษรที่นี่ สคริปต์ต้องได้รับการปรับแต่งเพราะฉันมีอินเตอร์เฟส LAN หลายอัน ดังนั้นเพื่อรูปร่างด้าน LAN ฉันวางแผนที่จะสร้างอุปกรณ์หลอก ifb เช่น: modprobe ifb ip link set dev ifb0 up /sbin/tc qdisc add dev $WAN_INTERFACE ingress /sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0 สคริปต์จาก repo ส่วนสำคัญดังกล่าวข้างต้นมีบรรทัดเหล่านี้: /sbin/tc qdisc …

4
การใช้ tc เพื่อหน่วงเวลาแพ็คเก็ตไปยังที่อยู่ IP เดียวเท่านั้น
ฉันใหม่เพื่อใช้TCและnetem ฉันต้องการชะลอการส่งแพ็คเก็ตไปยังที่อยู่ IP ที่เฉพาะเจาะจง อย่างไรก็ตามคำสั่งด้านล่างทำให้แพ็คเก็ตทั้งหมดในระบบล่าช้าแทนที่จะเป็นเพียงที่อยู่ IP 1.2.3.4: tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1: prio tc qdisc add dev eth0 parent 1:1 handle 2: netem delay 500ms tc filter add dev eth0 parent 1:0 protocol ip pref 55 handle ::55 u32 match ip …

3
ฉันจะสร้าง Traffic Traffic ใน Linux ด้วย IP ได้อย่างไร
เรามีการตั้งค่าพร็อกซีที่โปร่งใส ฉันพยายามหาปริมาณการใช้ Traffic ใน Linux และสิ่งที่ฉันสามารถหาได้ทางออนไลน์คือ จำกัด ปริมาณการใช้โดยอินเตอร์เฟส (eth0 / eth1 ... ) ฉันต้อง จำกัด แบนด์วิดท์ (ไม่เกินขีด จำกัด ที่ระบุ) ตามที่อยู่ IP หรือช่วง IP และฉันไม่สามารถหาวิธีที่จะทำได้ มีวิธีใดที่จะทำเช่นนั้น?


5
tc u32 - วิธีจับคู่โปรโตคอล L2 ในเมล็ดล่าสุดได้อย่างไร
ฉันมีรูปที่ดีพร้อมตัวกรองที่ถูกแฮชสร้างขึ้นที่สะพานลินุกซ์ ในระยะสั้นbr0เชื่อมต่อexternalและinternalอินเตอร์เฟซทางกายภาพแพ็คเก็ตที่ติดแท็ก VLAN จะเชื่อมโยง "โปร่งใส" (ฉันหมายถึงไม่มีการเชื่อมต่อ VLAN อยู่ที่นั่น) ตอนนี้เมล็ดที่แตกต่างกันทำแตกต่างกัน ฉันอาจผิดกับช่วง verions เคอร์เนลที่แน่นอนโปรดยกโทษให้ฉัน ขอบคุณ 2.6.26 ดังนั้นในเดเบียน 2.6.26 และสูงกว่า (มากถึง 2.6.32 ฉันเชื่อ) --- งานนี้: tc filter add dev internal protocol 802.1q parent 1:0 prio 100 \ u32 ht 1:64 match ip dst 192.168.1.100 flowid 1:200 ที่นี่ "เคอร์เนล" ตรงกับสองไบต์ในฟิลด์ "โพรโทคอล" กับ 0x8100 แต่นับจุดเริ่มต้นของแพ็กเก็ต …

2
การกำหนดหมายเลขคลาส / ตัวกรอง Linux TC
ขณะนี้ฉันกำลังทำงานเกี่ยวกับโซลูชันสร้างรูปแบบการจราจรสำหรับ บริษัท ระดับ ISP และมาถึงปัญหาที่น่าสนใจ เมื่อมองหาจำนวนปลายทางที่ระบบควรจัดการ (ซึ่งประมาณ ~ 20k) ฉันมีความกังวลเล็กน้อยว่าจะเกิดอะไรขึ้นเมื่อฉันต้องการนโยบาย / การรับส่งข้อมูลรูปร่างของผู้ใช้มากขึ้น ในขณะที่ฉันกำลังใช้ HFSC shaping tree (ดู tc-hfsc ซึ่งส่วนใหญ่เป็นสิ่งเดียวกัน แต่เย็นกว่าที่รู้จักกันดีกว่า HTB) สำหรับเครือข่ายทั้งหมดฉันต้องใช้ ClassID เพิ่มเติม (อย่างน้อยหนึ่งรายการสำหรับผู้ใช้แต่ละคนบน ระบบเครือข่าย) ปัญหาที่ฉันพบคือ TC ClassID นั้นมีจำนวน จำกัด - พวกเขาเป็นตัวเลข 16 บิตซึ่งทำให้ฉันมีผู้ใช้มากที่สุด 64k ที่กำหนดโดยโซลูชันนี้ ในทำนองเดียวกันถ้าฉันต้องการจัดการตัวกรอง TC อย่างมีประสิทธิภาพ (เช่นไม่ได้ใช้ 'ล้างเทคนิคทั้งหมด') ฉันต้องสามารถลบหรือแก้ไขรายการตัวกรองแต่ละรายการได้ (ฉันใช้สิ่งที่คล้ายกับตารางแฮชจาก LARTC [1]) อีกวิธีเดียวที่ดูเหมือนว่าจะทำงานกับเรื่องนี้คือการเรียงลำดับตัวกรองทั้งหมดโดยใช้ลำดับความสำคัญของแต่ละบุคคล (tc filter เพิ่ม …

6
อัตราการรับส่งข้อมูลขาเข้า
ฉันไม่เคยเข้าใจเลยว่าเป็นไปได้หรือไม่ที่จะ จำกัดอัตราการเข้าชมที่เข้ามา ฉันรู้ว่าไม่มีวิธีโดยตรงที่ควบคุมอัตราของเซิร์ฟเวอร์ระยะไกลในการส่งแพ็กเก็ต (เว้นแต่คุณจะอยู่ในการควบคุมของจุดปลายทั้งสอง) แต่คำนึงถึงข้อ จำกัด นี้ในการพิจารณาว่าตัวจัดการการดาวน์โหลดอนุญาตให้ฉันตั้งค่าขีด จำกัด ความเร็วในการดาวน์โหลดได้อย่างไร ? มีการเชื่อมโยงใด ๆ ระหว่างTCP ช้าเริ่มต้นและอัตราการรับส่งข้อมูลขาเข้า? เป็นไปได้ไหมที่จะใช้วิธีที่อธิบายโดยการเริ่มต้นช้าเพื่อ จำกัด อัตราการส่งแพ็กเก็ตของผู้ส่งจริง? เป็นข้อควรพิจารณาเพิ่มเติมควรสังเกตว่าเซิร์ฟเวอร์ที่ฉันต้องการใช้ปริมาณข้อมูลรูปร่างสร้างการเชื่อมต่อ PPPoE ตัวเองและทำหน้าที่เป็นเราเตอร์สำหรับเครือข่ายที่เหลือ อัปเดต:คำตอบที่ผ่านมาได้ให้ภาพรวมที่เป็นธรรมของคำถามที่ฉันถาม แต่ฉันยังไม่รู้ว่าตัวจัดการการดาวน์โหลดสามารถ จำกัด ปริมาณการใช้งานที่เข้ามาได้อย่างไรและโดยเฉพาะอย่างยิ่งไม่ว่าจะเป็นไปได้หรือไม่ กล่องเกตเวย์ของ Linux

6
ทางออกที่ดีที่สุดสำหรับการควบคุมปริมาณการใช้งานในระบบขนาดใหญ่ (ผู้ใช้ 2000 คน) คืออะไร
สถานการณ์ต่อไปนี้: เราเป็นกลุ่มนักเรียนที่ดูแลการเชื่อมต่ออินเทอร์เน็ตสำหรับหอพักท้องถิ่นโดยมีผู้ใช้งานราว 2,000 คน เรามีระบบจุดรับส่งข้อมูลทุก ๆ MB ที่ลดลงหรืออัปโหลดค่าใช้จ่ายจุดใหม่จะถูกเพิ่มเป็นรายชั่วโมง ในขณะนี้เราบล็อกการเข้าถึงอินเทอร์เน็ตของผู้ใช้เมื่อเขาใช้คะแนนทั้งหมดของเขา (โดยกำหนดให้นโยบายการปฏิเสธใน iptables บนเราเตอร์เกตเวย์ Debian ของเรา) เราต้องการ จำกัด แบนด์วิดท์ของผู้ใช้เท่านั้น วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? คำตอบง่ายๆคือตั้งค่า จำกัด อัตราบนพอร์ตสวิตช์ของผู้ใช้ (ส่วนใหญ่เป็น Cisco Catalyst 3550s) อย่างไรก็ตามนี่เป็นสิ่งที่ไม่พึงประสงค์เนื่องจากปริมาณการใช้ข้อมูลภายในเครือข่ายของเราและเครือข่ายมหาวิทยาลัยควรไม่ จำกัด มีวิธี จำกัด แบนด์วิดท์เฉพาะสำหรับแพ็คเก็ตที่มีปลายทางหรือช่วง IP ต้นทาง (เช่นทั้งการเข้าและออก) ใน Cisco IOS หรือไม่ ฉันหาอะไรไม่เจอ อีกวิธีหนึ่งคือการควบคุมปริมาณการใช้งานบนเราเตอร์เกตเวย์ของเรา การแก้ปัญหาหลายอย่างในใจฉัน: tc หรือ tcng - ดูเหมือนว่าทั้งสองมีไวยากรณ์ที่เป็นความลับมากกว่าและไม่มีคุณสมบัติที่ดีสำหรับการควบคุมการรับส่งข้อมูลต่อ IP QDisc โดยเฉพาะสำหรับคนจำนวนมากอาจทำให้เราเตอร์ค่อนข้างช้า นอกจากนี้เอกสารเกี่ยวกับทั้งคู่ค่อนข้างล้าสมัย shorewall …

3
การสร้างแบนด์วิดท์วิธีที่ดีที่สุด
สมมติว่าฉันมีเซิร์ฟเวอร์ที่มี IP ภายนอกจำนวนมาก 1024+ ตัว ผู้ใช้ของฉันทำให้เกิดการรับส่งข้อมูลจำนวนมาก แต่ไม่ใช่ทั้งหมด คนที่กินแบนด์วิดท์ทั้งหมดมีน้อยและทำให้คนอื่นต้องทนความเร็วอินเทอร์เน็ตต่ำเพราะกินแบนด์วิดท์ทั้งหมด เรากำลังคิดที่จะใช้กฎการจัดรูปแบบเพื่อให้แน่ใจว่าทุกคนมีความสุขหรืออย่างน้อยก็ส่วนใหญ่และเรากำลังถกเถียงกันถึงวิธีที่ดีที่สุดในการทำเช่นนั้น แผนแรก ลองคิดดูว่ามีลูกค้าเข้าสู่ระบบกี่คนและแบ่งแบนด์วิดท์ให้กับทุกคนที่กินเค้กชิ้นเดียวกัน ข้อดี: ฉันไม่ต้องจ่ายเงินจำนวนมากกับแบนด์วิดธ์ ไม่มีใครผิดกฎหมาย ข้อเสีย แบนด์วิดธ์ถูกแบ่งเท่ากันและผู้ใช้ที่มีความต้องการแบนด์วิดท์ต่ำ (การอ่านเอกสารการอ่าน Facebook เป็นต้น) จะมีแบนด์วิดธ์เท่ากันกับผู้ใช้ที่ใช้บริการของฉันสำหรับธุรกิจของพวกเขา ผู้ใช้ทุกคนจะมีแบนด์วิธเท่ากัน แต่ผู้ใช้ที่มีความต้องการต่ำจะ "จำคุก" แชร์แม้ว่าพวกเขาจะไม่ต้องการทั้งหมดดังนั้นฉันจึงเหลือแบนด์วิธจำนวนมากที่ไม่ได้ใช้ แผนสอง ตรวจสอบผู้ใช้และดูว่าพวกเขาอยู่ในขีด จำกัด แบนด์วิดท์หรือสูงกว่านั้น (จำกัด ทั้งหมดของเซิร์ฟเวอร์) หากพวกเขามาถึงจุดนั้นให้ลองระบุสิ่งที่ผู้ใช้รับประทานมากที่สุด หากเราพบผู้ใช้ที่กินมากกว่า 40% -50% ของแบนด์วิดท์ทั้งหมดให้ส่งพวกเขาเข้าคุกเป็นเวลา 20 นาที คุกหมายถึงการลดแบนด์วิดท์เป็น 250kb / s เช่น ข้อดี: ไม่มีแบนด์วิดท์เสีย หากไม่มีแบนด์วิดท์เสียผู้ใช้ที่สำคัญสามารถใช้มากขึ้นและฉันมีลูกค้าที่มีความสุข มันเป็นทางออกที่ชาญฉลาดมากขึ้นช่วยให้ทุกคนขยายตามความต้องการของพวกเขา ใช้ตำรวจแบนด์วิดธ์ที่คนร้ายถูกจำคุกและคนดี (คนส่วนใหญ่) เป็นสังคมที่มีความสุข ข้อเสีย …

1
แบ่งปันแบนด์วิดท์และจัดลำดับความสำคัญการรับส่งข้อมูลเรียลไทม์ผ่าน HTB สถานการณ์ใดใช้งานได้ดีกว่า
ฉันต้องการเพิ่มการจัดการปริมาณข้อมูลบางอย่างลงในสายอินเทอร์เน็ตของเรา หลังจากอ่านเอกสารจำนวนมากฉันคิดว่า HFSC ซับซ้อนเกินไปสำหรับฉัน (ฉันไม่เข้าใจทุกสิ่งที่โค้งฉันกลัวว่าฉันจะไม่ทำให้ถูกต้อง) CBQ ไม่แนะนำและโดยทั่วไป HTB เป็นวิธีการ ไปสำหรับคนส่วนใหญ่ เครือข่ายภายในของเรามี "กลุ่ม" สามส่วนและฉันต้องการแบ่งปันแบนด์วิดท์มากขึ้นหรือน้อยลงเท่ากันระหว่างกลุ่มเหล่านั้น (อย่างน้อยก็ในช่วงแรก) นอกจากนี้ฉันต้องจัดลำดับความสำคัญของการรับส่งข้อมูลตามการรับส่งข้อมูลอย่างน้อยสามประเภท (การจราจรตามเวลาจริงการจราจรมาตรฐานและการรับส่งข้อมูลจำนวนมาก) การแบนด์วิธร่วมกันไม่สำคัญเท่ากับความจริงที่ว่าการรับส่งข้อมูลแบบเรียลไทม์ควรจะถือว่าเป็นการรับส่งข้อมูลแบบพรีเมี่ยมเมื่อใดก็ตามที่เป็นไปได้ แต่แน่นอนว่าไม่มีคลาสการรับส่งข้อมูลอื่น ๆ คำถามคืออะไรที่เหมาะสมกว่าและยังรับประกัน throughput ที่ดีขึ้น: การสร้างหนึ่งคลาสต่อเซกเมนต์แต่ละคลาสมีอัตราเท่ากัน (ลำดับความสำคัญไม่สำคัญสำหรับคลาสที่ไม่มีใบตามนักพัฒนา HTB) และแต่ละคลาสเหล่านี้มีคลาสย่อยสามคลาส (ใบไม้) สำหรับระดับความสำคัญ 3 ระดับ (ที่มีลำดับความสำคัญต่างกัน และอัตราต่าง ๆ ) มีหนึ่งคลาสต่อระดับความสำคัญด้านบนแต่ละคนมีอัตราที่แตกต่างกัน (ลำดับความสำคัญอีกครั้งจะไม่สำคัญ) และแต่ละคนมี 3 คลาสย่อยหนึ่งต่อเซ็กเมนต์ในขณะที่ทั้ง 3 ในชั้นเรียลไทม์มี Prio สูงสุดต่ำสุดในกลุ่ม ชั้นเรียนและอื่น ๆ ฉันจะพยายามทำให้ชัดเจนยิ่งขึ้นด้วยภาพศิลปะ ASCII ต่อไปนี้: Case 1: …

3
จำลองการเชื่อมต่อที่ช้าด้วย tc
ฉันมีกล่อง linux (Centos 5.5) ที่ฉันต้องการ จำกัด ปริมาณการใช้เครือข่าย ฉันมีแอปพลิเคชันที่เราแจกจ่ายให้กับลูกค้าและฉันต้องการทดสอบด้วยแบนด์วิดธ์ต่ำสุดที่แนะนำของ 256Mbit / วินาที จนถึงตอนนี้บทเรียน tc ที่ฉันได้เห็นดูเหมือนจะอนุญาตให้คุณ จำกัด แบนด์วิดท์ตามเกณฑ์ที่กำหนด แต่ฉันต้องการ จำกัด แบนด์วิดท์ในทุกสถานการณ์ (ไปยัง / จากที่อยู่ IP ทั้งหมด ฉันแนะนำให้ใช้แบบฝึกหัดหนึ่ง: tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2 แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: Unknown filter "flowid", hence option 10:2 is unparsable ความคิดใด ๆ เกี่ยวกับวิธี …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.