วันศุกร์ที่ 29 มิถุนายน พ.ศ. 2555
iptable
Firewall คือ อุปกรณ์ที่ใช้เพิ่มระดับความปลอดภัยให้กับ network โดยเป้นตัวกันระหว่าง network ภายในหน่วยงานกับ networkภายนอกหน่วยงาน เช่น Internet และคอยป้องกันแพ็กเก็ตอันตรายไม่ให้วิ่งเข้ามายังเน็ตเว็คภายในได้ เราสามารถใช้ Linux ทำเป็นFirewall IPTABLES ได้โดยการติดตั้ง IPTABLES
ไอพีเทเบิล เป็นคำลั่งบนลีนุกซ์ ที่ใช้ปรับแต่งให้กับระบบ เพื่อให้สามารถกรองแพ็กเก็ต (filter)และสามารถทำการแปลงแอดเดรสได้อีกด้วยโดยคำสั่งนี้มีมาพร้อมกับลี นุกซ์ เคอร์เนลเวอร์ชั่น 2.4 ขึ้นไป สามารถใช้งานได้โดยไม่ต้องคอมไพล์เคอร์เนลใหม่
ประวัติความเป็นมา/ทฤษฏีพื้นฐานที่เกี่ยวข้อง
Linux สามารถใช้งานเป็นไฟร์วอลล์ได้ตั้งแต่เคอร์เนล 1.1 ซึ่งเป็นเวอร์ชันแรก โดย Alan Cox ใช้ชื่อว่า ipfw (จาก BSD)ต่อมา Linux 2.0 ได้ถูกพัฒนาและปรับปรุงได้เครื่องมือที่มีชื่อว่า ipfwadm โดยเครื่องมือชิ้นนี้อนุญาตให้ผู้ใช้สามารถควบคุม filtering ruleได้ และต่อมา Linux 2.2 ก็ได้สร้างเครื่องมือตัวใหม่ชื่อ ipchains ซึ่งเผยแพร่ในปี 1998 โดย Rusty Russelและทีมงานทั้งนี้ ipchains นี้ถือได้ว่าเป็นพัฒนาการขั้นที่สามของ Linux Firewall จวบจนกระทั่งในปัจจุบัน ก็มี netfilter และ iptablesซึ่งถือว่าเป็นพัฒนาการขั้นที่สี่ของ Linux Firewall Netfilter นั้นเป็นชื่อใหม่ของโค้ดที่ทำหน้าที่เป็น packet handler(stateful inspection) ใน Linux kernel 2.4จริงคือเวอร์ชัน 2.3.15 และเวอร์ชันต่อๆ มา) ซึ่งได้ถูกออกแบบและปรับปรุงใหม่จากเวอร์ชันก่อนหน้านี้ เป็นเรื่องที่น่ายินดีคือ netfilter นั้นสามารถทำงานย้อนหลังร่วมกับ ipchains และ ipfwadm ได้ และคำสั่งในการเรียกใช้งานคือ iptables
การใช้คำสั่งไอพีเทเบิล (iptables)
รูปแบบการใช้งาน iptables เบื้องต้น จะมีรูปแบบการใช้งานดังนี้คือiptables <command> <match> <target/jump> โดยกฎ (rule)ที่เขียนขึ้นจะเป็นเป็นตัวบอกเคอร์เนลว่าให้กระทำอย่างไรในกรณีที่พบ แพ็กเก็ตตรงตามที่ระบุไว้ หมายถึง ตาราง ที่ต้องการระบุ มี 3 ตาราง คือ ฟิลเตอร์เทเบิล (Filter table) แนตเทเบิล (Nat table) และ แมงเกิล (Mangle table) เช่น iptables -t nat หมายถึงให้ทำงานกับแนตเทเบิล ในกรณีที่ไม่ได้ระบุตาราง ไอพีเทเบิล จะถือว่าคำสั่งดังกล่าวระบุถึงฟิลเตอร์เทเบิล โดยอัตโนมัติ
<command> จะเป็นตัวสั่งให้ไอพีเทเบิลทำในสิ่งที่ต้องการ เช่น iptables -A INPUT ซึ่งหมายถึงให้สร้างกฎต่อท้ายอินพุตเชน (INPUT chain) ในฟิลเตอร์เทเบิล
<match> เป็นส่วนที่ใช้ตรวจสอบว่าแพ็กเก็ต มีข้อมูลตรง (match) กับที่ระบุไว้หรือไม่ เช่น มีไอพีแอดเดรสต้นทาง (source ip address) เป็น 1.2.3.4
<target/jump> เป็นตัวระบุว่าเมื่อเจอแพ็กเก็ต ที่ตรง (match) ก็จะกระทำ (action) ตามที่ระบุไว้ เช่น ถ้าแพ็กเก็ตใดมีไอพีแอดเดรสต้นทาง (source ip address) เป็น 1.2.3.4 ให้ทิ้งแพ็กเก็ตนั้น (DROP packet )
ตัวอย่างคำสั่งไอพีแอดเดรส
• -A เพิ่มกฎใหม่ ต่อท้ายเชน (chain) (Append rule) เช่น
iptables -A INPUT -p ALL -i eth0 -j ACCEPT
• -D ลบกฎ (Delete rule) เช่น
iptables -D INPUT --dport 80 -j DROP
• -I เพิ่มกฎใหม่ ในเชน (Insert rule) เช่น
iptables -I OUTPUT -p ALL -s 127.0.0.1/32 -j ACCEPT
• -R แทนที่กฎเดิม ด้วยกฎใหม่ (Replace rule)
• -L แสดงกฎทั้งหมดในเชน (ถ้าไม่ระบุเชนจะแสดงกฎ ทั้งหมดในฟิลเตอร์เทเบิลทั้งสาม built-in chain) เช่น
iptables -L
iptables -L -t nat
iptables -L INPUT
• -F ลบกฎทั้งหมดในเชน ทิ้ง เช่น
iptables -F INPUT
iptables -F mychain
• -Z ใช้ reset byte counter สำหรับทุกกฎ ในเชน ที่กำหนด เช่น
iptables -Z INPUT
• -N ใช้สร้างเชน ใหม่ เช่น
iptables -N mychain
• -X ลบเชน ที่ไม่มีกฎ ซึ่งสามารถลบ user-defined chain ที่ไม่มีกฎ ได้ แต่ไม่สามารถลบ built-in chain ได้ เช่น
iptables -X emptychain
• -P เปลี่ยน default policy ของเชน ค่าที่ใช้ได้คือ ACCEPT, DROP ทั้งนี้ค่านี้มีความสำคัญอย่างมากเพราะหากแพ็กเก็ตถูกส่งเข้ามาในเชน แล้ว และไม่ตรงกับกฎ ใดๆ เลย แพ็กเก็ตนั้นก็ต้องถูกตัดสินใจโดย policy ของเชน นั้นๆ เช่น
iptables -P FORWARD DROP
ซึ่งหากแพ็ก เก็ตถูกส่งเข้ามายังฟอร์เวิร์ดเชน (FORWARD chain) และไม่ตรงกับกฎใดๆใน ฟอร์เวิร์ดเชน นี้เลย แพ็กเก็ตนั้นถูกทิ้งทันที • -E ใช้เปลี่ยนชื่อ chain ใหม่ เช่น
iptables -E myoldchain mynewchain
การ ใช้คำสั่ง ด้านบนนั้นสามารถใช้ร่วมกับออปชันบางอย่างได้ คือ • -V, --verbose ใช้ร่วมกับ -L, -A, -I, -D, -R เพื่อให้แสดงจำนวนไบต์ ที่ ตรงกับกฎ ออกมาด้วย (หน่วยเป็นได้ทั้ง K(x1,000),M(x1,000,000),G(x1,000,000,000)) เช่น
iptables -L –v
• -x, --exact ใช้ร่วมกับ -L และ -v เพื่อให้แสดงจำนวนแพ็กเก็ต และจำนวนของไบต์ ข้อมูลที่ตรงกับกฎ โดยไม่ให้แสดงผลในหน่วยของ K,M,G เช่น
iptables -L OUTPUT -v –x
• -n, --numeric ใช้ร่วมกับ -L เพื่อสั่งให้ไอพีเทเบิล แสดงข้อมูลไอพีแอดเดรสและพอร์ต เป็นตัวเลขเท่านั้น เช่น
iptables -L OUTPUT -n
• --line-numbers ใช้ร่วมกับ -L เพื่อแสดงเลขบรรทัดของกฎ ซึ่งตัวเลขที่แสดงนี้จะสามารถใช้ได้กับคำสั่งเพิ่มกฎใหม่ในเชน ( insert rule) ที่ระบุเป็นลำดับที่ของกฎ เช่น
iptables -L --line-numbers
• --modprobe=command เพื่อโหลดโมดูล (module) ที่เกี่ยวข้อง
Match
การตั้งเงื่อนไขของการ match นั้นจะต้องอาศัยความเข้าใจในเรื่อง IP, TCP, UDP, และ ICMP มาบ้างพอสมควร จึงจะสามารถตั้งเงื่อนไขที่เหมาะสมและตรงตามความต้องการได้ ซึ่งมีรายละเอียดดังนี้
การระบุไอพีแอดเดสของต้นทางและปลายทาง
สามารถระบุไอพีแอดเดรสต้นทาง (source ip address) ของแพ็กเก็ต โดยใช้ -s หรือ --source หรือ --src และสำหรับไอพีแอดเดรสปลายทาง (destination ip address) ก็ใช้ -d หรือ --destination หรือ –dst
การทำ Inversion
ในบางกรณีนั้นหากต้องการระบุเป็นอินเวิร์ส (inverse) เช่น อนุญาตให้ทุกไอพียกเว้นไอพีที่ระบุไว้ ซึ่งการใช้คำสั่งดังกล่าวสามารถทำได้โดยใช้เครื่องหมาย ! นำหน้า argument ที่ต้องการ (เครื่องหมาย ! หมายถึง NOT) เช่น -p ! TCP ซึ่งจะตรง กับโพรโตคอลทุกๆ ตัวที่ไม่ใช่ทีซีพี หรือ -s ! localhost ซึ่งหมายถึงแพ็กเก็ต ที่มีไอพีแอดเดรสต้นทาง อื่นๆ ยกเว้น localhost (127.0.0.1)
การระบุโพรโตคอล
สามารถระบุโพรโตคอลที่ต้องการได้ดังนี้คือ ทีซีพี (TCP), ยูดีพี (UDP), ไอซีเอ็มพี (ICMP) หรือสามารถใช้ตัวเลขแทนได้ (สำหรับ *NIX อ้างอิงได้จาก /etc/protocols) และยังสามารถใช้ได้ทั้งตัวอักษรเล็กหรือใหญ่ (ใช้ได้ทั้ง tcp และ TCP) เช่น -p TCP หรือ -p ! tcp
การระบุ interface
-i หรือ --in-interface ตามด้วยชื่ออินเตอร์เฟส ( interface) ใช้เพื่อระบุ incoming interface ซึ่งหมายถึงว่า แพ็กเก็ต ที่จะตรงกับกฎ นี้ต้องเข้ามาจากอินเตอร์เฟส ที่กำหนด เช่น -i eth0 หมายความว่า ทุกแพ็กเก็ต ที่เข้ามาทาง eth0 จะ ตรงกับกฎ นี้ ทั้งนี้ชื่ออินเตอร์เฟส ที่สามารถใช้ได้นั้น สามารถตรวจสอบได้โดยใช้คำสั่ง ifconfig และ -o หรือ --out-interface ตามด้วยชื่อของอินเตอร์เฟส ใช้เพื่อระบุ outgoing interface ซึ่งหมายถึงว่า แพ็กเก็ต ที่จะ ตรงกับกฎ นี้ กำลังจะเดินทางผ่านอินเตอร์เฟส ที่ระบุไว้ เช่น -o eth1 หรือ -o ! eth1
ragment packet
ในการส่งข้อมูลใน ip network นั้นเป็นเรื่องปกติที่จะเกิดการแฟรกเมนต์ (fragment)ของแพ็กเก็ตเนื่องจากขนาดของแพ็กเก็ต มีขนาดใหญ่เกินไปที่จะส่งไปในครั้งเดียว จำเป็นต้องมีการแบ่งแพ็กเก็ต ออกเป็นหลายๆ ชิ้นทยอยส่งไป ซึ่งเรียกกันว่าการทำแฟรกเมนต(fragment)โดยเครื่องปลายทางจะทำหน้าที่ประกอบ แฟรกเมนต์แพ็กเก็ต(fragment packet)รวมกันเป็นแพ็กเก็ต ที่สมบูรณ์ดังเดิม ข้อมูลที่เป็นแฟรกเมนต์แพ็กเก็ต นั้นจะมีเฮดเดอร์ (header)ที่สมบูรณ์แค่แพ็กเก็ต แรกเท่านั้น ส่วนแพ็กเก็ต ที่ตามมาจะมีแค่เฮดเดอร์ บางส่วนคือ ไอพีแอดเดรสเท่านั้น ไม่มีข้อมูลของโพรโตคอลแนบมาด้วย ดังนั้นการตรวจสอบข้อมูลเฮดเดอร์ ของ ทีซีพี ยูดีพี ไอซีเอ็มพี จึงไม่สามารถทำได้ในแพ็กเก็ต ที่สองเป็นต้นมา หากใช้แนต (NAT)แพ็กเก็ตประเภทแฟรกเมนต์แพ็กเก็ต จะถูกประกอบเข้าด้วยกันจนสมบูรณ์ก่อนที่ แพ็กเก็ต จะเข้าไปถึง แพ็กเก็ตฟิลเตอร์ริ่ง (packet filtering) ดังนั้นจึงไม่มีความจำเป็นที่จะต้องกังวลเกี่ยวกับ แฟรก-เมนต์แพ็กเก็ต ในกรณีที่ไม่ได้ใช้แนต (NAT) แพ็กเก็ตประเภทแฟรกเมนต์แพ็กเก็ตก็จะไม่ถูกประกอบเข้าด้วยกัน ไอพีเทเบิล จะมีกระบวนการในการทำงานกับ แฟรกเมนต์แพ็กเก็ตดังนี้ หลังจากที่แฟรกเมนต์แพ็กเก็ตแรกผ่านเข้ามาแล้วไอพีเทเบิล สามารถตรวจสอบได้ว่าจะอนุญาตให้ผ่านหรือไม่ ในขณะที่แฟรกเมนต์แพ็กเก็ต ที่สองและหลังจากนั้นที่ตามมานั้น จะไม่สามารถนำไปตรวจสอบกับกฎ ใดๆ เลย เช่น -p TCP --sport www หรือแม้แต่ -p TCP --sport ! www แต่ยังสามารถเขียนกฎ ให้ตรวจสอบทั้งแฟรกเมนต์แพ็กเก็ต ตัวที่สองและหลังจากนั้นที่ตามมาได้ด้วยการใช้ -f หรือ --fragment ทั้งนี้อาจจะเขียนในทางตรงข้ามคือไม่ต้องตรวจสอบแฟรกเมนต์แพ็กเก็ต ที่สองและหลังจากนั้นโดยใช้ ! -f ก็ได้ โดยปกติแล้วมักจะปล่อยให้แฟรกเมนต์แพ็กเก็ต ผ่านไป เนื่องจากถ้าสามารถทิ้งแฟรกเมนต์แพ็กเก็ตแรกได้แล้ว แพ็กเก็ตทั้งหมดก็จะไม่สามารถถูกประกอบที่เครื่องปลายทางได้ แต่ทั้งนี้แฟรกเมนต์แพ็กเก็ต ที่ถูกปล่อยไปดังกล่าวอาจจะทำให้เครื่องที่ได้รับนั้นเกิดการชะงัก หรือเกิดความเสียหายได้ หรืออาจจะเกิดการโจมตีแบบดีไนอัลออฟเซอร์วิส (Denial of Service) โดยใช้แฟรกเมนต์แพ็กเก็ตได้
การระบุ target
user-defined chain
เนื่องจากไอพีเทเบิล อนุญาตให้ผู้ใช้สามารถสร้างเชน (chain) ขึ้นมาได้ใหม่นอกเหนือจากเชนที่มีมาอยู่แล้ว (built-in chain) ทั้งสามตัว (INPUT, OUTPUT, FORWARD) ทั้งนี้จะต้องใช้ตัวอักษรตัวเล็กทั้งหมดสำหรับเชน ที่ผู้ใช้สร้างขึ้นเอง เมื่อแพ็กเก็ตตรงกับกฎ ที่เป็นเชนที่ผู้ใช้กำหนดขึ้น (user-defined chain) แพ็กเก็ตนั้นจะถูกนำไปตรวจสอบใหม่โดยเชนที่ผู้ใช้กำหนด นั้นๆ และถ้าในเชนนั้นๆ ไม่มีการตัดสินใจใดๆ แพ็กเก็ตนั้นก็สามารถย้อนกลับมายังกฎ ถัดไปในเชนที่เริ่มต้นเดินทางได้
new target
เป็น target ที่สร้างเพิ่มเติมขึ้นมาคือ
LOG เป็น โมดูลที่มีความสามารถในการเก็บข้อมูลลงล็อก (มี syslog facility เป็น kernel) สำหรับแพ็กเก็ตที่ตรงกับกฎที่ระบุปลายทาง เป็น LOG มีออปชันให้เลือกใช้งานดังนี้คือ--log-level เป็นการระบุ priority level ของ log ซึ่งกำหนดได้ตั้งแต่ debug, info ,notice, warning, crit, alert, emerg--log-prefix ตามด้วยชุดของตัวอักษรยาวไม่เกิน 29 ตัว ซึ่งชุดของตัวอักษรดังกล่าวจะปรากฏอยู่บนล็อกไฟล์
ความสำคัญของ 3 ตารางหลัก ในคำสั่งไอพีเทเบิล
1.Filter Table เป็น ตารางที่ใช้งานมากที่สุด เป็นจุดที่ใช้ในการตรวจสอบและควบคุมการผ่านเข้าออกของแพ็กเก็ต ถ้าหากจะพิจารณาการไหลเวียนของแพ็กเก็ต เฉพาะในส่วนของฟิลเตอร์เทเบิล (filter table) โดยไม่สนใจเทเบิล อื่นๆ นั้น ก็พอจะแสดงให้เห็นได้ดังรูปที่ 2.20 โดยเมื่อแพ็กเก็ต เข้ามาในระบบ มันจะเข้าไปยัง routing decision เพื่อตัดสินใจว่า แพ็กเก็ต จะถูกส่งไปที่ใด
2.Mangle Table เป็นตารางที่ใช้สำหรับแก้ไข ข้อมูล TOS, TTL, MARK ของแพ็กเก็ต ซึ่งโดยปกติแล้วแทบจะไม่ได้ใช้งาน และไม่ควรทำ packet filtering หรือกรองแพ็กเก็ต ที่ตารางนี้ รวมทั้งไม่ควรทำ DNAT, SNAT หรือ Masquerading ที่ตารางนี้อย่างเด็ดขาดด้วย
3.Nat Table เป็น ตารางที่ใช้สำหรับทำการแปลงแอดเดรส (network address translation) เช่น เปลี่ยนค่าไอพีแอดเดรสต้นทางและปลายทาง (source ip address, destination ip address) จุดสำคัญอีกอย่างหนึ่งที่ต้องรู้ก็คือ มีเพียงแพ็กเก็ต แรกเท่านั้นที่เข้ามาที่เชน นี้ ส่วนแพ็กเก็ต ถัดไปนั้นจะถูกกระทำเหมือนที่แพ็กเก็ต แรกได้รับ ดังนั้นจึงไม่ควรทำ packet filtering ที่เชน เหล่านี้
การใช้งาน Nat table นั้นก็เพียงแต่ใช้ออปชัน -t nat เท่านั้น และ target ที่สามารถใช้งานได้คือ SNAT, DNAT, Masquerade, Redirect ซึ่งมีรายละเอียดดังนี้
SNAT
การทำ source NAT จะทำที่ POSTROUTING chain โดย หลักๆ คือทำการเปลี่ยนแอดเดรสต้นทาง (source address) ก่อนที่จะส่งแพ็กเก็ตนั้นออกไป ซึ่งสามารถใช้ออปชัน -o (outgoing interface) ร่วมด้วยได้ นอกจากนี้ยังใช้ -j SNAT และ --to--source หรือ --to เพื่อเปลี่ยนไอพีแอดเดรสหรือ port ไปตามต้องการได้ เช่น
เปลี่ยน source ip address เป็น 1.2.3.4
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
เปลี่ยน source address เป็น 1.2.3.4, 1.2.3.5 หรือ 1.2.3.6
iptables -t nat -A POSTROUING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
เปลี่ยน source address เป็น 1.2.3.4 port 1-1023
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
Masquerading
การ ทำ masquerade นั้นเป็นหนึ่งในรูปแบบของการทำ source NAT แบบพิเศษ ซึ่งใช้สำหรับ กรณีที่ได้รับไอพีแบบไม่ซ้ำ(dynamically-assigned IP address) เช่น ผู้ที่ใช้โมเด็มล็อกอินเข้าไปยัง isp (สำหรับผู้ที่ใช้ static IP address ให้ใช้ SNAT ดังตัวอย่างด้านบน) ซึ่งข้อดีของการทำ masquerading คือไม่จำเป็นต้องระบุค่าของไอพีแอดเดรสที่จะใช้ในการเปลี่ยน เช่น
ทำ masquerade สำหรับทุก packet ที่วิ่งผ่าน ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
DNAT
การ ทำ Destination NAT จะทำภายใต้ PREROUTING chain หลักๆ คือการเปลี่ยนค่า destination address หรือ port ก่อนที่จะส่งpacket ไปยัง routing decision โดยปกติการใช้งานจะระบุ -j DNAT และใช้ --to-destination หรือ --to และยังสามารถใช้ -i(incoming interface) ร่วมด้วยได้ เช่น
เปลี่ยน destination address เป็น 192.168.1.20
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.1.20
เปลี่ยน destination address เป็น 192.168.1.20, 192.168.1.21 หรือ 192.168.1.22
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 192.168.1.20-192.168.1.22
เปลี่ยน destination address ของ web traffic เป็น 192.168.1.50 port 8080
iptables -t nat -A PREROUING -p tcp --dport 80 -ieth0 -j DNAT --to 192.168.1.50:80
Redirection
การทำ redirect นั้นเป็นหนึ่งในรูปแบบของการทำ Destination NAT แบบพิเศษ เช่น
เปลี่ยน web traffic ธรรมดาให้ผ่านไปยัง squid proxy (transparent)
ip tables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 3128
ตัวอย่าง การทำ Masquerading
ตัวอย่าง การใช้งาน masquerading ที่เห็นได้ชัดเจนในประเทศไทยก็คือ ร้านอินเทอร์เน็ตคาเฟ่(แบบประหยัด) ซึ่งนิยมใช้โมเด็ม 1 ตัว ติดต่อ(connect)ไปยัง ไอเอสพี (Internet Service Provider) แล้วใช้ NAT เพื่อให้เครื่องลูกที่มีอยู่หลายๆ เครื่องนั้น สามารถใช้งานอินเทอร์เน็ตผ่านโมเด็มตัวนั้นได้ โดยเครื่องลูกจะต้องใช้ private ip ซึ่งมีให้เลือกหลายคลาส (class) เช่น 10.x.x.x 192.168.x.x เป็นต้น จากนั้นก็ตั้งเกตเวย์ให้ชี้ไปยัง linux box ที่ทำหน้าที่หมุนโมเด็มและรันไอพีเทเบิล ซึ่งสามารถใช้คำสั่งง่ายๆ ดังด้านล่างก็ทำให้เครื่องลูกสามารถใช้งานอินเทอร์เน็ตได้แล้ว คือ
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo "1" > /proc/sys/net/ip_forward
เครดิต www.linuxthai.org
ubuntu part2
รวมขั้นตอน ต่อจาก การติดตั้ง Ubuntu8.10 MultiWAN Server (แยกเน็ต แยกเกมส์)
( และเป็น ขั้นแรกที่สำคัญ ใช้กับ SmartCafe 2010 ก็ได้ )
------------------------------------------------------------------------------------------------
ที่หน้าจอ .. เครื่องเซฟเวอร์ ....
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
pico config.ini การปรับแต่ง config.ini ใน MultiWAN 8.10 ... อ่านต่อ ...
./makeconfig.sh คำเตือน .. ตรงนี้เอาพอรู้แนวทาง ไม่ต้องทำอะไร .. ระวังจะ งง ... อ่านต่อ ...
reboot
------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s
mii-tool <<< ถึงตรงนี้ . จะรู้แล้ว ว่า ต่อสายแลน สายไหนเป็นสายไหน ลองเสียบดู 1 เส้น
mii-tool แล้วเสียบเส้น ต่อไป สายที่มาจากเร้าเตอร์โมเด็ม ... ที่ปรับเป็น Bridge Mode แล้ว ... อ่านต่อ ...
mii-tool แล้วเสียบเส้น ต่อไป ถ้าไม่เห็น สายที่เสียบ ไปขั้นตอนถัดไป เพื่อใช้ ethtool ดู .
ifconfig -a
------------------------------------------------------------------------------------------------
ตอนนี้หน้าจะเข้าแลน จากเครื่องอื่น ได้แล้ว ... หันมารีโหมดจากเครื่องอื่น โดยใช้ PuTTy
ดาวน์โหลด | PuTTy | WinSCP | ที่นี่ ...
คราวนี้ เลิกพิมพ์ เพราะมักจะพิมพ์ผิด ประจำ ใช้วิธี ลากทับ ที่ละคำสั่ง ที่ละบรรทัด โดย คลิ๊กขวา คัดลอก
แล้วไปวาง ตรง คอร์เซอร์ ที่ PuTTy โดย คลิ๊กขวา แล้วจึง Enter .
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s
ifconfig -a
mii-tool
apt-get update
apt-get install ethtool
ethtool -i eth1
ethtool -i eth2
apt-get install cacti การติดตั้ง Cacti บน MultiWAN 8.10 ... อ่านต่อ ...
เพิ่ม .. ถ้าไม่ผ่าน ข้ามไปอัพเดท 003 ก่อน ...
------------------------------------------------------------------------------------------------
มาทำความเ้ข้าใจกันก่อน ว่า bind9 กับ dnsmasq แตกต่างกันอย่างไร ... อ่านต่อ ...
apt-get install dnsmasq nscd DNS Proxy ( ลูกค้า Ubuntu MultiWAN จะดึงข้อมูล DNS จาก Server กลาง )
apt-get remove dnsmasq nscd ผู้ที่มีปัญหาเรื่อง DNS บ่อยๆ ให้เปลี่ยนจาก dnsmasq มาเป็น bind9... อ่านต่อ ...
apt-get install bind9 DNS Server ( ถึงแม้ DNS ของ ISP มีปัญหา ก็ยังสามารถใช้งานได้ )
------------------------------------------------------------------------------------------------
เตรียม update web interface ... อ่านต่อ ... SysAdmin
cd /home
wget http://www.hadyaiinternet.com/upload/sysadmin.tar.gz
tar xvzf sysadmin.tar.gz
cd sysadmin
./install.sh
reboot
------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s ขั้นตอนการ Update Ubuntu 8.10 ... อ่านต่อ ... อัพเดท 003
apt-get update
wget http://www.hadyaiinternet.com/upload/update810-003.tar.gz
tar xvzf update810-003.tar.gz
./makeconfig.sh
apt-get clean
apt-get update
/etc/init.d/dnsmasq restart << ไม่ใช้แล้ว ถ้าเปลี่ยนไปใช้ bind9 แล้ว
/etc/init.d/nscd restart << ไม่ใช้แล้ว ถ้าเปลี่ยนไปใช้ bind9 แล้ว
reboot
เพิ่ม .. อย่าลืม ... Update v.5.3 (update เพิ่ม) ... อ่านต่อ ...
apt-get update แล้วเจอ ... Err 404 Not Found .... ให้ไปแก้ไฟล์ตามนี้นะครับ ... อ่านต่อ ...
-------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s การติดตั้ง NoIP บน MultiWAN 8.10 ... อ่านต่อ ...
apt-get update
apt-get install no-ip
ขั้นตอนการติดตั้ง Update Agent สำหรับ MultiWAN 8.10 ... อ่านต่อ ...
wget http://122.155.1.134/agent.tar.gz
tar xvzf agent.tar.gz
cd agent/
./install.sh
clearproxy.sh แบบใหม่ รวดเร็วทันใจ ไม่ต้องรอนาน ... อ่านต่อ ...
wget http://www.hadyaiinternet.com/upload/clearproxy.tar.gz
tar xvzf clearproxy.tar.gz
cp clearproxy.sh /usr/bin/
cp clearproxy.sh /etc/init.d/
cp clearproxy.sh /script/usr/bin/
cp clearproxy.sh /script/etc/init.d/
-------------------------------------------------------------------------------------------------
กดปุ่ม Power ปิดเครื่องเซฟเวอร์
apt-get install acpid ติดตั้ง ACPI services ... กดปุ่ม Power หนึ่งครั้ง ที่เคส เพื่อปิดเครื่องเซฟเวอร์
อย่างปลอดภัย ( ห้ามกดแช่ )
apt-get install beep ให้ Multiwan ให้มีเสียงตอน boot . . install โปรแกรมสร้างเสียงก่อนชื่อว่า beep ... อ่านต่อ ...
เอา code เสียงใส่ จะดังทุกที ที่เน็ต ต่อติดหรือหลุด .. nut_kkc ... อ่านต่อ ...
ที่ไฟล์ /etc/init.d/checklink.sh ให้ เพิ่มข้อความ ส่วนสีส้ม ลงไป แถวๆ ล่างๆ
if [ $status != $oldstatus ]; then
/etc/init.d/0route.sh $LINK_STATUS
/etc/init.d/tablenat.sh
# Send nice startup beep now
/usr/bin/beep -l 250 -f 1500
/usr/bin/beep -l 250 -f 500
/usr/bin/beep -l 250 -f 1500
/usr/bin/beep -l 250 -f 500
fi
เพิ่มเติม ...
..... Update v.5.3
wget http://www.speedplusit.com/download/multiwan/update810-005.3-nutkkc.tar.gz
tar -zxvf update810-005.3-nutkkc.tar.gz
จากนั้นสั่ง ./makeconfig.sh ซ้ำอีกรอบ เมื่อทำงานเสร็จควรจะ reboot ระบบเพื่อให้ script ทำงานได้ ... อ่านต่อ .
-------------------------------------------------------------------------------------------------
apt-get update แล้วเจอ ... Err 404 Not Found .... ให้ไปแก้ไฟล์ตามนี้นะครับ ... อ่านต่อ ...
-------------------------------------------------------------------------------------------------
ผิดตก ... ขออภัย ... ช่วยเสริม ด้วย ครับ ....
-------------------------------------------------------------------------------------------------
ตัวอย่าง .. เรียกใช้ WinSCP ปรับแก้ Config.ini
เช่น . กรณี เปลี่ยนโปร ฯ เพิ่มความเร็วเน็ต
อันเดียวกัน กับที่ใช้คำสั่ง ใน PuTTy
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
pico config.ini
./makeconfig.sh
reboot
เรียกใช้ WinSCP พิมพ์ เลขไอพี ของเซฟเวอร์ และ ยูสพาส แล้ว กดปุ่ม Login
ตอบ Yes.
คลิ๊ก ขวา . ที่ config.ini เลื่อก Edit
ปรับแก้ ตามที่ต้องการให้ถูกต้อง
ที่ด้านบน กด เซฟ และปิด
อย่าลืม ใช้ คำสั่งใน PuTTy ไม่งั้น ไม่มีผลกับการเปลื่ยนแปลง
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
./makeconfig.sh
reboot
-------------------------
( และเป็น ขั้นแรกที่สำคัญ ใช้กับ SmartCafe 2010 ก็ได้ )
------------------------------------------------------------------------------------------------
ที่หน้าจอ .. เครื่องเซฟเวอร์ ....
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
pico config.ini การปรับแต่ง config.ini ใน MultiWAN 8.10 ... อ่านต่อ ...
./makeconfig.sh คำเตือน .. ตรงนี้เอาพอรู้แนวทาง ไม่ต้องทำอะไร .. ระวังจะ งง ... อ่านต่อ ...
reboot
------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s
mii-tool <<< ถึงตรงนี้ . จะรู้แล้ว ว่า ต่อสายแลน สายไหนเป็นสายไหน ลองเสียบดู 1 เส้น
mii-tool แล้วเสียบเส้น ต่อไป สายที่มาจากเร้าเตอร์โมเด็ม ... ที่ปรับเป็น Bridge Mode แล้ว ... อ่านต่อ ...
mii-tool แล้วเสียบเส้น ต่อไป ถ้าไม่เห็น สายที่เสียบ ไปขั้นตอนถัดไป เพื่อใช้ ethtool ดู .
ifconfig -a
------------------------------------------------------------------------------------------------
ตอนนี้หน้าจะเข้าแลน จากเครื่องอื่น ได้แล้ว ... หันมารีโหมดจากเครื่องอื่น โดยใช้ PuTTy
ดาวน์โหลด | PuTTy | WinSCP | ที่นี่ ...
คราวนี้ เลิกพิมพ์ เพราะมักจะพิมพ์ผิด ประจำ ใช้วิธี ลากทับ ที่ละคำสั่ง ที่ละบรรทัด โดย คลิ๊กขวา คัดลอก
แล้วไปวาง ตรง คอร์เซอร์ ที่ PuTTy โดย คลิ๊กขวา แล้วจึง Enter .
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s
ifconfig -a
mii-tool
apt-get update
apt-get install ethtool
ethtool -i eth1
ethtool -i eth2
apt-get install cacti การติดตั้ง Cacti บน MultiWAN 8.10 ... อ่านต่อ ...
เพิ่ม .. ถ้าไม่ผ่าน ข้ามไปอัพเดท 003 ก่อน ...
------------------------------------------------------------------------------------------------
มาทำความเ้ข้าใจกันก่อน ว่า bind9 กับ dnsmasq แตกต่างกันอย่างไร ... อ่านต่อ ...
apt-get install dnsmasq nscd DNS Proxy ( ลูกค้า Ubuntu MultiWAN จะดึงข้อมูล DNS จาก Server กลาง )
apt-get remove dnsmasq nscd ผู้ที่มีปัญหาเรื่อง DNS บ่อยๆ ให้เปลี่ยนจาก dnsmasq มาเป็น bind9... อ่านต่อ ...
apt-get install bind9 DNS Server ( ถึงแม้ DNS ของ ISP มีปัญหา ก็ยังสามารถใช้งานได้ )
------------------------------------------------------------------------------------------------
เตรียม update web interface ... อ่านต่อ ... SysAdmin
cd /home
wget http://www.hadyaiinternet.com/upload/sysadmin.tar.gz
tar xvzf sysadmin.tar.gz
cd sysadmin
./install.sh
reboot
------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s ขั้นตอนการ Update Ubuntu 8.10 ... อ่านต่อ ... อัพเดท 003
apt-get update
wget http://www.hadyaiinternet.com/upload/update810-003.tar.gz
tar xvzf update810-003.tar.gz
./makeconfig.sh
apt-get clean
apt-get update
/etc/init.d/dnsmasq restart << ไม่ใช้แล้ว ถ้าเปลี่ยนไปใช้ bind9 แล้ว
/etc/init.d/nscd restart << ไม่ใช้แล้ว ถ้าเปลี่ยนไปใช้ bind9 แล้ว
reboot
เพิ่ม .. อย่าลืม ... Update v.5.3 (update เพิ่ม) ... อ่านต่อ ...
apt-get update แล้วเจอ ... Err 404 Not Found .... ให้ไปแก้ไฟล์ตามนี้นะครับ ... อ่านต่อ ...
-------------------------------------------------------------------------------------------------
( sudo -s เพื่อเปลี่ยนเป็น root )
sudo -s การติดตั้ง NoIP บน MultiWAN 8.10 ... อ่านต่อ ...
apt-get update
apt-get install no-ip
ขั้นตอนการติดตั้ง Update Agent สำหรับ MultiWAN 8.10 ... อ่านต่อ ...
wget http://122.155.1.134/agent.tar.gz
tar xvzf agent.tar.gz
cd agent/
./install.sh
clearproxy.sh แบบใหม่ รวดเร็วทันใจ ไม่ต้องรอนาน ... อ่านต่อ ...
wget http://www.hadyaiinternet.com/upload/clearproxy.tar.gz
tar xvzf clearproxy.tar.gz
cp clearproxy.sh /usr/bin/
cp clearproxy.sh /etc/init.d/
cp clearproxy.sh /script/usr/bin/
cp clearproxy.sh /script/etc/init.d/
-------------------------------------------------------------------------------------------------
กดปุ่ม Power ปิดเครื่องเซฟเวอร์
apt-get install acpid ติดตั้ง ACPI services ... กดปุ่ม Power หนึ่งครั้ง ที่เคส เพื่อปิดเครื่องเซฟเวอร์
อย่างปลอดภัย ( ห้ามกดแช่ )
apt-get install beep ให้ Multiwan ให้มีเสียงตอน boot . . install โปรแกรมสร้างเสียงก่อนชื่อว่า beep ... อ่านต่อ ...
เอา code เสียงใส่ จะดังทุกที ที่เน็ต ต่อติดหรือหลุด .. nut_kkc ... อ่านต่อ ...
ที่ไฟล์ /etc/init.d/checklink.sh ให้ เพิ่มข้อความ ส่วนสีส้ม ลงไป แถวๆ ล่างๆ
if [ $status != $oldstatus ]; then
/etc/init.d/0route.sh $LINK_STATUS
/etc/init.d/tablenat.sh
# Send nice startup beep now
/usr/bin/beep -l 250 -f 1500
/usr/bin/beep -l 250 -f 500
/usr/bin/beep -l 250 -f 1500
/usr/bin/beep -l 250 -f 500
fi
เพิ่มเติม ...
..... Update v.5.3
wget http://www.speedplusit.com/download/multiwan/update810-005.3-nutkkc.tar.gz
tar -zxvf update810-005.3-nutkkc.tar.gz
จากนั้นสั่ง ./makeconfig.sh ซ้ำอีกรอบ เมื่อทำงานเสร็จควรจะ reboot ระบบเพื่อให้ script ทำงานได้ ... อ่านต่อ .
-------------------------------------------------------------------------------------------------
apt-get update แล้วเจอ ... Err 404 Not Found .... ให้ไปแก้ไฟล์ตามนี้นะครับ ... อ่านต่อ ...
-------------------------------------------------------------------------------------------------
ผิดตก ... ขออภัย ... ช่วยเสริม ด้วย ครับ ....
-------------------------------------------------------------------------------------------------
ตัวอย่าง .. เรียกใช้ WinSCP ปรับแก้ Config.ini
เช่น . กรณี เปลี่ยนโปร ฯ เพิ่มความเร็วเน็ต
อันเดียวกัน กับที่ใช้คำสั่ง ใน PuTTy
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
pico config.ini
./makeconfig.sh
reboot
เรียกใช้ WinSCP พิมพ์ เลขไอพี ของเซฟเวอร์ และ ยูสพาส แล้ว กดปุ่ม Login
ตอบ Yes.
คลิ๊ก ขวา . ที่ config.ini เลื่อก Edit
ปรับแก้ ตามที่ต้องการให้ถูกต้อง
ที่ด้านบน กด เซฟ และปิด
อย่าลืม ใช้ คำสั่งใน PuTTy ไม่งั้น ไม่มีผลกับการเปลื่ยนแปลง
sudo -s เพื่อเปลี่ยนเป็น root
sudo -s
./makeconfig.sh
reboot
-------------------------
ubuntu part1
ifconfig -a|more
nano /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:22:b0:ce:12:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x1106:0x3065 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:8f:56:f5:2c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
# PCI device 0x1186:0x1300 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:91:e2:1b:14", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x1186:0x1300 (8139too)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:22:b0:ce:01:32", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
# PCI device 0x1904:0x8139 (sc92031)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:4e:20:a8:fb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"
# PCI device 0x1904:0x8139 (sc92031)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:a0:00:8a:eb", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
# PCI device 0x10ec:0x8169 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d8:5d:4c:80:75:6a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
ใ้ห้ใช้คำสั่ง ethtool eth3 แทน
เช่น
Settings for eth3:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
apt-get update
apt-get install ethtool
http://www.hadyaiinternet.com/index.php?topic=1876.0 รวมขั้นตอน ต่อจาก การติดตั้ง Ubuntu8.10 MultiWAN Server (แยกเน็ต แยกเกมส์)
deb http://mirror1.ku.ac.th/ubuntu intrepid main restricted universe multiverse
deb http://mirror1.ku.ac.th/ubuntu intrepid-updates main restricted universe multiverse
deb http://mirror1.ku.ac.th/ubuntu intrepid-security main restricted universe multiverse
deb-src http://mirror1.ku.ac.th/ubuntu intrepid main restricted universe multiverse
deb-src http://mirror1.ku.ac.th/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://mirror1.ku.ac.th/ubuntu intrepid-security main restricted universe multiverse
ข้างล่างของเดิม
deb http://old-releases.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu intrepid main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu intrepid-security main restricted universe multiverse
nano /etc/crontab
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
จะเห็นว่ามีตัวแปรของ MTU เข้ามาเกี่ยวข้องด้วย
ตัวนี้แหละ คือสิ่งสำคัญ ในการทำให้เน็ตวิ่งได้อย่างไม่มีปัญหา
ก่อนอื่น ทำความเข้าในกันก่อนว่า MTU คืออะไร และต้องกำหนดอย่างไร
(ลองเข้า www.google.co.th แล้วพิมพ์ MTU ดูครับ อย่าหัวเราะกะผลลัพธ์ที่ได้นะครับ)
MTU นั้น คือ maximum transmission unit (MTU)
ตามมาตรฐานของ PPPoE แล้ว ค่า MTU จะเท่ากับ 1492 นั่นก็คือ 1500-8
(โดย 1500 คือ MTU ของ Eternet และ 8 คือ Header ของ PPP)
แต่ในบางครั้ง ISP มีระบบเครือข่ายที่หลากหลาย ไม่ว่าจะเป็น ATM, Tunnel, MPLS ระหว่างทางในการรับส่งข้อมูล
จึงทำให้ค่า MTU มีการเปลี่ยนแปลง ในบางครั้งเมื่อเราใช้ MTU ที่ 1492 จึงมีปัญหากับบาง Host เป็นต้น
ดังนั้น ในการตั้งค่า MTU ที่เหมาะสมนั้น จะมีค่า 1492,1480,1470,1464,1452,1440,1432 เป็นต้น
ขึ้นอยู่กับเครือข่ายที่อยู่ระหว่างทาง
ถ้าหากใช้งานที่ MTU 1492 แล้วมีปัญหากับบาง Host เช่น www.icafeplus.net เป็นต้น
ให้ปรับลดค่า MTU ลง ตามลำดับที่ให้ไป ยิ่งปรับลด ก็ทำให้ประสิทธิภาพลดลงด้วย ให้ใช้ค่าที่มากที่สุดที่เป็นไปได้
วิธีการปรับแต่งค่า MTU สามารถกำหนดได้ในตอนทำการติดตั้ง
หรือแก้ไขในไฟล์ /etc/ppp/peers/
dsl-link1 , dsl-link2
ลองทดสอบกันดูนะครับ
วิธีหาค่า MTU ที่เหมาะสมก็คือลองเปิด DOS Prompt ขึ้นมาแล้วพิมพ์ ping -f -l 1472 thelordofwireless.com (ลบ เอฟ ลบ แอลเล็ก นะครับ)
ทีนี้ถ้าคุณเห็นข้อความที่บอกว่า Packet needs to be fragmented but DF set. ก็แสดงว่าค่า 1472 มากไปครับ ก็ให้ -10 เป็น ping -f -l 1462 thelordofwireless.com
ลอง -10 ไปเรื่อยๆจน ไม่มี Error แบบนี้ครับ ก็ให้เพิ่มที่ละ 1 จนถึงค่าก่อนที่จะมี Error ครับ ตอนผมทดลองดู ค่าสุดท้ายที่ผมได้ก่อน Error คือ 1444 ครับ ก็ให้เอาค่าสุดท้าย +28 ก็จะได้เป็นค่า MTU
สูงสุดที่คุณจะใช้ได้ครับ
ก่อนอื่น ให้
#poff dsl-link1
#poff dsl-link2 ก่อนทั้ง 2 เส้น
แล้วย้ายสายตามไป
เปลี่ยน user pass ของ adsl ในไฟล์ 3 ไฟล์นี้
#/etc/ppp/pap-secrets
#/etc/ppp/chap-secrets
#/etc/ppp/peers/dsl-link1 และ /etc/ppp/peers/dsl-link2
หลังจากนั้น สั่งต่อโมเดม คำสั่ง
#pon dsl-link1 และ
#pon dsl-link2 เสร็จคับ ไม่ต้อง boot
/etc/network/interfaces
# This file is auto generate by xxxkung script
# Loopback Interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto eth2
iface eth2 inet manual
auto eth3
iface eth3 inet manual
auto eth4
iface eth4 inet manual
auto eth5
iface eth5 inet manual
=========================
นื่องจากมีหลายท่าน ถามผมมาว่า จะวางระบบในร้านเป็น Gigabit ควรใช้ Switch หรืออุปกรณ์ยี่ห้อไหนดี อันนี้เป็นคำถามที่
ยอดฮิตมากที่ถามมา ผมก็ตอบตามตรงนะครับ แบ่ง Gigabit Switch ออกเป็น 3 กลุ่มใหญ่ ๆ ด้วยกัน คือ
1. L2 Unmanage Gigabit Switch
2. L2 Manage Gigabit Switch
3. L3 Manage Gigabit Switch
ซึ่งส่วนใหญ่แล้ว ที่เราซื้อมาใช้ ๆ กัน จะเป็นแบบที่ 1 คือ L2 Unmanage Gigabit Switch เนื่องด้วยเหตุผลที่ว่า อีก 2 แบบนั้น
ราคาสูงมาก ๆ
สำหรับแบบแรกนั้น L2 Unmanage Gigabit Switch ในแต่ละยี่ห้อนั้น คุณภาพก็ไม่ได้แตกต่างกันมากนัก แต่สิ่งสำคัญอยู่ที่ว่า
เราสามารถเปิดการใช้งานของฟังก์ชั่นต่าง ๆ ที่มีอยู่ใน Switch ตัวนั้น มาใช้งานได้หรือไม่ และอุปกรณ์ประกอบอื่น ๆ มันรอง
รับกับฟังก์ชั่นนั้นหรือไม่ ทั้งในตัวสาย ตัว LAN Card หรือ LAN Onboard รวมกระทั่ง การปรับแต่ง Windows ให้รองรับ
ด้วย ซึ่งเป็นสิ่งสำคัญมากกว่า
ในหัวข้อแรก จะพูดถึง การทดสอบประสิทธิภาพของ Gigabit Network กันก่อน เอาแบบง่าย ๆ นะครับ
ไฟล์ DVD สัก 4GB ถ้าทำการก๊อปปี้ผ่านเครือข่าย Gigabit จะใช้เวลานานเท่าไหร่
ในทางทฤษฏี เครือข่าย Gigabit จะรับส่งข้อมูลในปริมาณ 1Gigabit/sec หรือ 1,000,000,000 bit ต่อวินาที หรือ
หนึ่งพันล้านบิตต่อวินาที หรือ เทียบเป็น Byte ก็จะได้เท่ากับ 125MB/sec
ดังนั้นไฟล์ขนาด 4GB จะใช้เวลา 4096/125 = ประมาณ 33 วินาที
แต่ในทางปฏิบัตินั้น จะใช้เวลาประมาณ 2 นาทีกว่า ทำไมถึงเป็นเช่นนั้น (ลองทดสอบกันดูนะครับ)
เราจะทราบได้อย่างไรว่า Gigabit Network ของเรา วิ่งด้วยความเร็วเท่าไหร่
การก๊อปปี้ไฟล์ก็เป็นการทดสอบอย่างหนึ่ง แต่อาจจะเกิดการหน่วงเพราะความเร็วของ HDD ไม่พอ
ผมเลยแนะนำ Tools ตัวนึง ที่ใช้ในการทดสอบความเร็วในการรับส่งข้อมูลผ่านเครื่อข่าย เรียกว่า iperf
สำหรับบน Windows สามารถ Download ได้ที่
http://www.noc.ucf.edu/Tools/Iperf/iperf.exe
สำหรับบน Ubuntu สามารถ ใช้คำสั่ง apt-get install iperf ได้เลย
วิธีการทดสอบก็คือ ให้ติดตั้งตัวโปรแกรมทดสอบทั้งสองฝั่ง ฝั่งนึงให้เป็น Server อีกฝั่งให้เป็น Client แล้วใช้คำสั่งทดสอบ
ดังนี้
ฝั่ง Server ใช้คำสั่ง iperf -s
ฝั่ง Client ใช้คำสั่ง iperf -c แล้วตามด้วย ip ฝั่ง server
จะได้ผลลัพธ์ออกมาเช่น
ฝั่ง Server
C:\>iperf.exe -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1860] local 192.168.200.100 port 5001 connected with 192.168.200.101 port 1742
[ ID] Interval Transfer Bandwidth
[1860] 0.0-10.0 sec 242 MBytes 202 Mbits/sec
ฝั่ง Client
C:\>iperf.exe -c 192.168.200.100
------------------------------------------------------------
Client connecting to 192.168.200.100, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1912] local 192.168.200.101 port 1742 connected with 192.168.200.100 port 5001
[ ID] Interval Transfer Bandwidth
[1912] 0.0-10.0 sec 242 MBytes 202 Mbits/sec
================================
เพิ่มเติมให้ครับ
iftop -i ethX ใช้ดู traffic ในวงขา Lan ครับ อันนี้จะมี IP ของในร้านให้เห็นครับว่าเค้าใช้งาน host ไหนอยู่
iftop -i ppp10X ใช้ดู traffic ในวงขา WAN ครับ อันนี้จะมี IP หรือ host ที่เรามีการใช้งาน Internet ให้เห็น
(X คือเลขของสายที่เราต้องการดู)
=============
iptraf
==============
ping -c 5 -I ppp101 203.144.244.1
=======================
tail -f /var/log/messages
================
root@ubuntu:/# ls /etc/ppp/peers
dsl-link1 dsl-link2 dsl-link3 dsl-link4 provider
=====================
เพิ่มเติมให้ครับ
iftop -i ethX ใช้ดู traffic ในวงขา Lan ครับ อันนี้จะมี IP ของในร้านให้เห็นครับว่าเค้าใช้งาน host ไหนอยู่
iftop -i ppp10X ใช้ดู traffic ในวงขา WAN ครับ อันนี้จะมี IP หรือ host ที่เรามีการใช้งาน Internet ให้เห็น
(X คือเลขของสายที่เราต้องการดู)
=============
iptraf
==============
ping -c 5 -I ppp101 203.144.244.1
=======================
tail -f /var/log/messages
================
root@ubuntu:/# ls /etc/ppp/peers
dsl-link1 dsl-link2 dsl-link3 dsl-link4 provider
=====================
สมัครสมาชิก:
บทความ (Atom)