Credit: คุณ Free play
จาก link นี้ครับ http://www.thaiadmin.org/board/index.php?topic=75489.0 เจอในเว็บเราเอง
หลักการง่ายๆครับ คือ จำกัด bandwidth ของการใช้งานอินเตอร์เน็ต
แบบแรก : กำหนดการ download จาก ตัวอักษรหรือคำจาก website
acl magic_words url_regx -i .exe
delay_pools 1
delay_class 1 1
delay_parameters 1 4000/4000
delay_access 1 allow magic_words
อธิบายได้ดังนี้
magic_world เป็นตัวแปลบอกว่าถ้ามีนามสกุล .exe (ส่วน -i คือเป็นตัวบออกว่าเป็น case-insensitive)
ให้ download มาด้วยความเร็วไม่เกิน 32 Kbit/sec ก็ประมาณ 4 Kbyte/sec
แบบสอง : กำหนดให้ขนาด bandwidth ให้กับคนที่ใช้ภายใน network
acl a_ll src 0.0.0.0/0.0.0.0
delay_pool_count 1
delay_class 1 2
delay_parameters 1 12500/12500 2500/2500
delay_access 1 allow a_ll
อธิบายได้ดังนี้
จากตัวอย่างข้างต้นสมมติว่าคุณมี Lease Line ขนาด 128K และต้องการจะเหลือไว้สักนิด
สำหรับ SMTP server ซึ่งเป็น IP จริงไม่ได้ต่อผ่านกับ gateway ตัวนี้ และให้ใช้สำหรับ NAT ภายใน
องค์กร 100Kbit/sec เพื่อให้ทุกคน share กันใช้เท่าๆกัน และต้องการจะให้แต่ละคนใช้ Bandwidth
ได้ไม่เกิน 2.5 Kbyte/sec (สังเกตุดีๆ นะครับหน่วยไม่เหมือนกัน เพื่อง่ายต่อการเข้าใจ ควรตั้งใจอ่าน
ทุกตัวอักษรครับ)
แบบสาม : กำหนดขนาด bandwidth ให้กับ group network
acl a_ll src 0.0.0.0/0.0.0.0
delay_class 1 3
delay_parameters 1 56000/56000 18750/18750 500/500
delay_access 1 allow all
อธิบายได้ดังนี้
ถ้าคุณมี Lease Line ขนาด 512K และต้องการเหลือ Bandwidth สำหรับ SMTP ไว้
8Kbyte/sec ใช้ภายใน network ไม่เกิน 448 Kbit/sec และแบ่งให้แต่ละ class ไม่เกิน 150 Kbit/sec
และให้แต่ละ IP ไม่เกิน 4 Kbit/sec (หน่วยไม่ผิดนะครับ ถ้าเป็น Kbyte เอา 8 หารจะเป็น Kbit ครับ)
อันนี้ตัวอย่างที่สอง Credit: web linuxthai จาก link นี้ http://www.linuxthai.org/forum/index.php?topic=971.0
#delay-pools
acl my_local url_regex -i jamnet 192.168.100.200
acl my_unlimit time SMTWHFA 11:00-18:00
acl my_download url_regex "/etc/squid/delaylists.txt"
delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow my_local
delay_access 1 allow !my_unlimit
delay_access 1 deny my_unlimit
delay_class 2 2
delay_parameters 2 256000/256000 45000/45000
delay_access 2 allow my_download
# end Delay-pools
จากนั้นไปสร้างไฟล์ ชื่อ delaylists.txt ไว้ที่ /etc/squid/
ในไฟล์ delaylists.txt ก็ใส่ .mp3 .zip .exe เมื่อมีการโหลดไฟล์นามสกุลพวกนี้ มันก็จะวิ่งแค่ ไม่เกิน 45k ในเวลา
11-18 นาฬิกา นอกจากนั้นก็วิ่งเต็มสปีดคับ
acl my_local url_regex -i jamnet 192.168.100.200
อันนี้เป็นการกำหนดให้เวบที่มีบางส่วนเช่น http://...jamnet.../ กับ http://192.168.100.200/ เป็นกลุ่มใช้ในการกำหนดกลุ่มเข้าถึงชื่อ my_local ใส่ชื่ออย่างนี้น่าจะแสดงว่า เป็นเวบเซิรฟเวอร์ในเครือข่ายตัวเอง และ
delay_access 1 allow my_local
ดูจากกฏการอนุญาตแล้ว เป็นการอนุญาตให้เข้าถึงเวบที่กล่าวถึงนี่แบบไม่ต้องจำกัดความเร็ว สองบรรทัดนี่ไม่ต้องใส่ก็ได้
delay_access 1 allow !my_unlimit
# อันนี้คื่อการอนุญาตให้ใช้การจำกัดเความเร็วแบบที่ 1 (ในที่นี้คือไม่จำกัดความเร็ว) ในช่วงเวลาที่นอกเหนือจากเวลาของ my_unlimit (การกำหนดชื่อกับการรนำมาใช้งานขัดกันนิดหน่อย)
delay_access 1 deny my_unlimit
# อันนี้คือไม่อนุญาตให้ใช้การจำกัดความเร็วแบบที่ 1 นี้ในช่วงเวลาที่กำหนดของ my_unlimit จะไม่ใส่ก็ได้เพราะมีข้างบนแล้ว แต่ปกติจะใส่ delay_access 1 deny all ปิดท้ายแทนเพื่อให้เข้าใจง่าย
ตรง
acl my_download url_regex "/etc/squid/delaylists.txt" ถ้ามีน้อยๆ ใส่แบบนี้ก็ได้
acl my_download url_regex .mp3 .mp4 .zip .exe .wmv .wma .avi .3gp .rar
delay_pools 2 # อันนี้หมายถึงให้มีการจำกัดความเร็ว 2 แบบ
delay_class 1 2 #อันนี้กำหนดว่าแบบที่ 1 เป็นชนิดคลาส 2 ก็คือ
# คลาส 1 กำหนดด้วยพารามิเตอร์เดียว คือ ความเร็วรวม
# คลาส 2 กำหนดด้วยพารามิเตอร์สองตัวคือ ความเร็วรวม กับกำหนดความเร็วให้เน็ตเวิร์คบิท 25-32(ip/25-ip/32)ก็คือแต่ละเครื่อง
#คลาส 3 มี3ตัวคือ ความเร็วรวม ความเร็วกลุ่ม ip/17-ip/24(ก็คือแต่ละเครือข่าย) กับความเร็วกลุ่ม ip/25-ip/32 ก็คือแต่ละเครื่อง
delay_parameters 1 -1/-1 -1/-1
# อันนี้คือกำหนดค่า(พารามิเตอร์)ให้แบบที่ 1 นี้ คือ ความเร็วรวมไม่จำกัด กับแต่ละเครื่องไม่จำกัด (-1/-1 หมายถึงไม่จำกัด)
delay_parameters 2 256000/256000 45000/45000
#อันนี้คือกำหนดค่าให้แบบที่ 2 นี้คือ ความเร็วรวม 256kB/s (ถ้าใส่ -1/-1 ก็จะไม่จำกัด) กับความเร็วแต่เล่ะเครื่อง 45kB/s
delay_access 2 allow my_download
# อันนี้คืออนุญาตให้กลุ่มชื่อ my_download ใช้การจำกัดความเร็วแบบที่ 2 ซึ่งก็คือ url ไหนที่มีคำที่ระบุนั่น จะถูกจำกัดความเร็วแบบที่2 นี้
หมาย เหตุ 1 การตรวจสอบว่า การเรียก(request) url ใดแล้วมีค่าหรือเงื่อนไข(เวลาหรือชนิดไฟล์)ตรงกับ delay_access แบบแรกที่ตรงนั่น(เรียงจากบนลงล่างและตามแบบที่ 1 ไป 2 ไป ..) ก็จะใช้ค่าความเร็วที่กำหนดตามแบบนั้นๆ แต่ถ้าหากไม่ตรงกับ delay_access ใดเลย ก็จะไม่ใช้ค่าตามแบบใดเลยก็คือไม่ถูกจำกัดความเร็วนั่นเอง
2 ออฟชั่น delay pool นี่จะใช้ได้ต่อเมื่อ squid ได้คอมไพล์โดยใช้ออฟชั่น --enable-delay-pools ด้วย ถ้าหากนำมาคอมไพล์เองกรุณาตรวจสอบก่อนด้วยครับ (ถ้าหากไม่ได้ใส่ เวลาใช้คำสั่งเกี่ยวกับ delaypool สควิดจะ error และบอกไม่รู้จักคำสั่งพวกนี้)
ส่วนอันที่สามนี้เป็น Blog อธิบายรวมๆ ลองเอาไปอ่านดู http://kom.homelinux.org/node/221เผื่อจะมีคนเก่งเกิดขึ้นเยอะๆ
######################################################################################
Credit: Nytan Web: http://www.muanglung108.com/main/viewthread.php?tid=53
บริหาร Bandwidht ด้วย Squid Delay pool
พอดีไปเจอมาเลยเอามาฝาก อธิบายได้ละเอียดมาก ~052 ขอบคุณที่มา http://www.susethailand.com/suseforum/index.php?topic=390.0
# Delay pool_setup additional by Sontaya (512/256 Kbps)
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
acl bcsc_local url_regex -i 192.168
acl bcsc_admin src 192.168.1.8 192.168.1.49 192.168.1.50 192.168.1.99 192.168.1.11 192.168.1.12 192.168.1.42 192.168.1.250 192.168.1.251
acl bcsc_download url_regex -i ftp .3gp .aac .ac3 .act .aif .aiff .amr .asf .au .avi .b5t .bin .bwt .cab .ccd .cdi .cue .dat .dct .div .divx .dss .exe .flac .fli .flv .gho .gsm .gz .ifo .img .iso .m4a .mp2 .mp3 .mp4 .mov .mpe .mpga .mpg .mpeg .mds .nrg .ogg .pdi .qt .ra .ram .rar .raw .rcd .rec .rm .rmvb .rmj .rpm .sea .shn .sri .swf .tar .tgz .vob .vox .vqf .wav .wmv .wma .zip .7z
acl bcsc_unlimit_bandwidth time MTWHFAS 09:00-19:00
acl bcsc_upload url_regex -i .com .avi .mpg .iso .wav .wma .dat .cda .wm .mid .midi .mp3
delay_pools 3
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow bcsc_local
delay_access 1 allow !bcsc_unlimit_bandwidth
delay_access 1 allow bcsc_admin
delay_class 2 2
delay_parameters 2 256000/256000 256000/512000
delay_access 2 allow bcsc_download
delay_class 3 2
delay_parameters 3 20480/20480 20480/40960
delay_access 3 allow bcsc_upload
delay_access 2 deny !bcsc_unlimit_bandwidth
delay_access 2 allow bcsc_admin
# ----------------------------------------------------------------------------
อธิบาย
# กำหนด acl (Access Control List) type แบบ url_regex
# เพื่อกำหนดการควบคุม โดยใช้การดูจาก URL
#
# acl ที่ 1 เราตั้งชื่อว่า bcsc_local ใช้สำหรับเก็บ URL ที่เราจะไม่จำกัด Bandwidth ในที่นี้คือวงแลนของเรา
#
acl bcsc_local url_regex -i 192.168
# สร้าง acl ที่ 2 ชื่อ bcsc_admin สำหรับบ้างเครื่องที่เราไม่ต้องการจำกัด Bandwidth ทุกเวลา
#
acl bcsc_admin src 192.168.1.49 192.168.1.50 192.168.1.99 192.168.1.100 192.168.1.8 192.168.1.11 192.168.1.12 192.168.1.42 192.168.1.250 192.168.1.251
# ต่อมาสร้าง acl ที่ 3 ชื่อ bcsc_download ไว้เก็บ URL ที่เราต้องการจำกัด Bandwidth
# ไม่ว่าจะเป็น ftp หรือ ไฟล์นามสกุลต่างๆ ที่เรากำหนดขึ้น (พิมพ์ให้อยู่ในบรรทัดเดียวกัน)
#
acl bcsc_download url_regex -i ftp .3gp .aac .ac3 .act .aif .aiff .amr .asf .au .avi .b5t .bin .bwt .cab .ccd .cdi .cue .dat .dct .div .divx .dss .exe .flac .fli .flv .gho .gsm .gz .ifo .img .iso .m4a .mp2 .mp3 .mp4 .mov .mpe .mpga .mpg .mpeg .mds .nrg .ogg .pdi .qt .ra .ram .rar .raw .rcd .rec .rm .rmvb .rmj .rpm .sea .shn .sri .swf .tar .tgz .vob .vox .vqf .wav .wmv .wma .zip .7z
# สร้าง acl ที่ 4 ชือ bcsc_unlimit_bandwidth สำหรับกำหนดช่วงเวลาว่า จะทำการจำกัด Bandwidth ช่วงเวลาใดบ้าง
# กำหนดช่วงเวลาเป็น 9 โมงเช้า ถึง 1 ทุ่ม แล้วนอกนั้นจะโหลดอะไรก็เต็มที่เลย
#
acl bcsc_unlimit_bandwidth time MTWHFAS 09:00-19:00
# สร้าง acl ที่ 5ชื่อ upload เพื่อไว้เก็บ URL หรือไฟล์นามสกุลต่างๆ ที่ต้องการจำกัด Bandwidth
#
acl bcsc_upload url_regex -i .com .avi .mpg .iso .wav .wma .dat .cda .wm .mid .midi .mp3
# สร้าง delay_pool สำหรับกำหนดค่าหน่วงเวลา หรือ delay โดยเราจะกำหนดเอาไว้ 3 pool
# pool ที่ 1 สำหรับ bcsc_local, pool ที่ 2 สำหรับ bcsc_admin, pool ที่ 3 สำหรับ bcsc_download
#
delay_pools 3
# pool ที่ 1 เรากำหนดให้ใช้ delay_class แบบที่ 2 (สังเกตุจะมีเลข -1/-1 อยู่ 2 ชุด)
# ชุดแรก หมายถึง Bandwidth รวมทั้งวงเน็ตเวิร์ค ที่เราอนุญาตให้โหลด
# ชุดสอง หมายถึง Bandwidth ของแต่ละเครื่อง ที่เราอนุญาตให้โหลด
#
delay_class 1 2
# -1/-1 หมายถึง ไม่จำกัด Bandwidth (เพราะว่า pool นี้ เรากำหนดให้ bcsc_local)
#
delay_parameters 1 -1/-1 -1/-1
# อนุญาต acl
delay_access 1 allow bcsc_local
delay_access 1 allow !bcsc_unlimit_bandwidth
delay_access 1 allow bcsc_admin
# pool ที่ 2 ก็กำหนดให้ใช้ delay_class แบบที่ 2 เช่นกัน
#
delay_class 2 2
# โดยค่าที่เรากำหนดนี้ จะคิดเป็น bytes
# ยกตัวอย่าง เลขชุดแรก 256000/ 512000
# หลังจากที่ดาวน์โหลดไปแล้ว ถ้าขนาดไฟล์ที่โหลดมีขนาดเกิน 512000 ไบท์ (หรือว่ามีขนาดมากกว่านั้น 2 ถึง 3 เท่า) ก็จะดาวน์โหลดต่อที่ 256000 ไบท์ต่อวินาที
# วิธีคิดดังนี้ (บริษัทใช้อินเตอร์เน็ต 512/256 Kbps จะแบ่งให้โหลด 256 Kbps ที่เหลืออีก 256 Kbps สำหรับเล่นเว็บ ส่งเมล์ เป็นต้น)
# เว็บสำหรับการคำนวณ http://www.t1shopper.com/tools/calculate/
# Download = 512 Kbps = 64 KB/sec วินาที (512/8)
# 1 KB = 1024 bytes
# 512 KB = ?
# การคำนวณหา bytes
# 512*1024/8 = 65536 bytes
# 65536 bytes / 1024 = 64 KB/sec
# ส่วน Bandwidth ต้องการให้ใช้ downloadแค่ 25 KB/sec ต่อเครื่อง
# 25 KB x 1024 = 256000 bytes คือค่าที่ต้องใช้
#
delay_parameters 2 256000/256000 256000/512000
# กำหนด allow ให้ bcsc_upload ให้มีการ delay หรือจำกัด Bandwidth
#
delay_access 2 allow bcsc_download
# pool ที่ 3 ก็กำหนดให้ใช้ delay_class แบบที่ 2 เช่นกัน
# การคำนวณหา bytes
# Upload = 256 kbps
# 256*1024/8 = 32768 bytes
# 32768/1024 = 32 Kbps
# Bandwidth รวมทั้งให้อัพโหลดรวมได้เต็มที่ 256 Kbps ความเร็วสูงสุด (ทั้งวงแลน) ก็จะได้ประมาณ 32.0 KB/sec (วินาที)
# ส่วน Bandwidth แต่ละเครื่อง ให้ใช้ upload แค่ 20 KB/sec ต่อเครื่อง
# 20 KB x 1024 = 20480 bytes คือค่าที่ต้องใช้
delay_class 3 2
delay_parameters 3 20480/20480 20480/40960
delay_access 3 allow bcsc_upload
# กำหนด deny ให้ช่วงที่ไม่ใช่ unlimit_bandwidth มี Bandwidth เท่าไหร่ ก็อนุญาตให้ใช้เท่านั้น
#
delay_access 2 deny !unlimit_bandwidth
delay_access 2 allow bcsc_admin
Thank http://www.susethailand.com/suseforum/index.php?topic=390.0
ไม่มีความคิดเห็น:
แสดงความคิดเห็น