(ลอกคำพูด บทความเก่า)
สืบเนื่องจากได้รับการแจก Wifi Range Extender TP-Link TL-WA850RE มาเพื่อใช้กระจายสัญญาณ Wifi ของบ้านพัก ที่เป็น GPON
ปัญหาคือ TP-Link มันกากกกกกกกกกก..............มากกกกกกกกกกกกกก กล่าวคือ
1. ปัญหา ping กากกกกก.......... เริ่มใช้งานก็ดีอยู่ ping ไป Gateway ได้ ราว 5-10ms แต่พอใช้ไปสัก 3-4 ชม. มันจะ ping ขึ้นเป็น 400-500ms รู้สึกได้เพราะใช้ Remote Desktop ตลอด เม้าส์มันจะกระตุก ๆ ๆ ๆ จนน่ารำคาญ วิธีแก้แสนง่าย (แต่ไม่ยั่งยืน) คือ สั่ง reboot หรือ ชักปลั๊กเสียบใหม่
2. ปัญหาเนตตัด แน่นอน ระบบ authen พรบ.กำหนดว่า "ของมันต้องมี" ถึงแม้จะตั้งเวลา TimeOut ให้ถึง 24 ชม. แต่มันก็ไม่คล่องตัว เพราะติดกล้องวงจรปิดไว้ดูผ่านเนตตอนไม่อยู่บ้าน แต่พอจะดูกลับ "ดูไม่ได้" เพราะ "เน็ตตัด" ช่างเจ็บกระดองใจจริง ๆ
เรื่องเนตตัดที่บ้านก็มี Router LinkSys WRT-350N อยู่ซื้อตอนทำวิจัยปี 51 รูดปรื๊ดมาตั้ง 6500 (ตอนนี้เสียดายตังค์มาก) ซึ่งลง DD-WRT v24sp2 เรียบร้อย ตั้งใจจะทำ auto login แต่ดันมาตายจากไปเสียก่อน
ระหว่างพยายามหา Router Linksys WRT54GL ในตำนานมาทำ autologin ก็พยายามหา firmware เพื่อแก้ปัญหา ping กากของ TP-Link ด้วย ก็ไปเจอในเว็บ TP-Link Official ว่า WA-850E ตัวนี้ "สามารถลง OpenSource firmware ได้" สนานกันสิคราวนี้
ลองไปหาข้อมูลพบว่า OpenWRT มี firmware รับรอง แต่ DD-WRT ยังไม่มีอย่างเป็นทางการ ส่วนตัวคุ้นชินกับ DD-WRT มากกว่า แต่ก็เพิ่งจะรู้ว่า เดี๋ยวนี้ OpenWRT มี "Luci WEB GUI" ให้การตั้งค่าง่ายสะดวกมากขึ้น ไม่ต้องออกแรงอัด command line ล้วน ๆ อย่างแต่ก่อน
วิธีการลง firmware OpenWRT ให้ TP-Link ตาม คลิป เลย
วิธีการทำ Wireless Client (Range Extender) ตาม คลิป นี้
ปัญหาที่เกิดคือ ถ้าจะใช้เป็น Range Extender เราจะต้องใช้ DHCP server ของเดิมที่แจกในวง แต่ OpenWRT ดันมี dnsmasq ที่ทำหน้าที่เป็นทั้ง DHCP Server และ DNS Server ให้อยู่แล้ว แต่มันดันแจก IP ที่ให้ DNS เป็นของตัว TP-Link เอง ซึ่งทำให้มัน resolv name server ไม่ได้ (จะไม่มีปัญหาถ้าทำเป็น Router mode แต่ขี้เกียจมานั่ง NAT) และอีกปัญหาคือตัว DNSmasq มันจะไปแจก IP ชนกับ DHCP Server ของ GPON ตัวหลัก อาจทำให้เน็ตเวิร์ครวนได้
พยายามทำ DNS Forwarder กับ DNS Relay แล้ว ไม่รอด 😭
แนวทางแก้ปัญหาคือ ก็ใช้ DNSmasq เป็น DHCP Server นั่นแหละ แต่เลี่ยงไปแจก IP ช่วง 150-200 ที่หวังว่าจะไม่ชนแทน ตั้งค่าดังนี้
1. ไปที่เมนู Network -> Interface เลือก LAN แล้วกด Edit จะเข้าหน้า Interface LAN
ที่ ส่วนบน Common Configuration -> Tab General Setup -> Use custom DNS servers ให้ใส่ DNS ที่ถูกต้องเข้าไป มันจะไปบันทึกในไฟล์ /tmp/resolv.conf.auto
2. ที่ส่วนล่าง DHCP Server -> Tab General Setup -> Start ใส่ช่วง IP เริ่มต้นจ่าย DHCP โดยให้เริ่มที่หมายเลข 150 , Limit ใส่จำนวน IP ที่จะจ่าย ตั้งไว้สัก 50 น่าจะเหลือเฟือแล้ว , Leasetime ใส่เวลาที่จะขอคืน IP ก็ตามเดิม 12h = 12 ชั่วโมง
4. อีกปัญหาคือตัว OpenWRT ถึงแม้จะยอมให้ตั้ง use Custom DNS แล้ว แต่ดันไม่ใช้ กลับไปใช้ DNS ที่ /etc/resolv.conf อย่างเคย วิธีแก้ง่าย ๆ คือไปเปลี่ยนค่าใน /etc/resolv.conf ซะให้ถูก แต่พอ reboot เครื่อง ค่าก็จะกลับมาเหมือนเดิม ทางแก้ง่าย ๆ ก็ตั้งให้มัน copy ไฟล์ /tmp/resolv.conf.auto ไปที่ /etc/resolv.conf ทุกครั้งที่มัน Startup ซะเลย ทำได้โดยไปที่เมนู System -> Startup ส่วน Local Startup ใส่คำสั่ง cp /tmp/resolv.conf.auto /etc/resolv.conf
เบ็ดเสร็จเรียบร้อย DNS ทำงานถูกต้องทั้งตัว Repeater และ DHCP Client ที่นี้ก็ยัด Script Auto Login ได้แล้ว แนวทางก็ลอก "บทความเก่า" ได้เลย แต่เปลี่ยน URL ที่คำสั่ง wget นิดหน่อย ใส่ Script เพื่อสร้าง AutoLogin Script ที่ Local Startup เช่นกัน
ได้ Script Auto Login ทุกครั้งที่ Startup แล้ว ก็สั่งให้มันทำงานทุก ๆ 3 นาที โดยไปที่เมนู System -> Schedule Task แล้วใส่ Script Crontab ตามภาพ
[แก้ไข 15/4/61 0935]
ไปเจอว่า Script Auto Login ไม่ทำงานเช็คดู Crontab ก็ทำงานให้ตามปกติ ลองรัน script autologin ที่ shell เองก็ทำงานได้ปกติ หาข้อมูลไปเจอ ลิงก์นี้ เป็นอาการเดียวกัน สรุปว่า ใช้ Script Cron แบบ DD-WRT ไม่ได้ ต้องเขียนใหม่แบบของ OpenWRT ถึงจะทำงานได้ แก้ไขโดยการเอาคำว่า "root" ออก ก็ใช้ได้แล้ว
[จบ แก้ไข]
ตอนนี้ลองมา 3 วันก็ถือว่านิ่งมีช่วงแรก ๆ ที่ ping ไป gateway มา ๆ หาย ๆ
[เพิ่มเติม 17/4/61 2324]
และแล้ว อาการ ping กากกกก..... Ping Time AVG > 400ms ก็กลับมา คงไม่เกี่ยวกับ firmware แล้วล่ะ เลยต้องหาวิธีแก้ ก็ใส่ script ไปง่าย ๆ เลยว่า ถ้า AVG ping time เกิน 350 ก็ให้ reboot เครื่องไปเลยแล้วกัน
[จบ เพิ่มเติม]
ป.ล. ตามคุณลักษณะโปรแกรมเมอร์ที่ดี จะต้องพัฒนาตัวเองอย่างสม่ำเสมอ ถ้าไม่เปลี่ยนภาษาก็เปลี่ยนเทคนิคการเขียนใช้ท่าใหม่ ๆ เห็นมี Script Auto Login ที่ใช้ curl ก็อยากลองใช้บ้าง แต่ใน busybox ไม่มี curl ให้ใช้ เลยถอยเพราะกระทบเวลางานหลักอื่นๆ มามากเกินไปแล้ว
กว่าจะเขียนจบได้ปาไป 3 วัน เริ่มเขียนทีไร ลูกกวนทุกที ไม่เหมือนเมื่อก่อนสมัยยังโสดทำรวดเดียวเสร็จ
สืบเนื่องจากได้รับการแจก Wifi Range Extender TP-Link TL-WA850RE มาเพื่อใช้กระจายสัญญาณ Wifi ของบ้านพัก ที่เป็น GPON
ปัญหาคือ TP-Link มันกากกกกกกกกกก..............มากกกกกกกกกกกกกก กล่าวคือ
1. ปัญหา ping กากกกกก.......... เริ่มใช้งานก็ดีอยู่ ping ไป Gateway ได้ ราว 5-10ms แต่พอใช้ไปสัก 3-4 ชม. มันจะ ping ขึ้นเป็น 400-500ms รู้สึกได้เพราะใช้ Remote Desktop ตลอด เม้าส์มันจะกระตุก ๆ ๆ ๆ จนน่ารำคาญ วิธีแก้แสนง่าย (แต่ไม่ยั่งยืน) คือ สั่ง reboot หรือ ชักปลั๊กเสียบใหม่
2. ปัญหาเนตตัด แน่นอน ระบบ authen พรบ.กำหนดว่า "ของมันต้องมี" ถึงแม้จะตั้งเวลา TimeOut ให้ถึง 24 ชม. แต่มันก็ไม่คล่องตัว เพราะติดกล้องวงจรปิดไว้ดูผ่านเนตตอนไม่อยู่บ้าน แต่พอจะดูกลับ "ดูไม่ได้" เพราะ "เน็ตตัด" ช่างเจ็บกระดองใจจริง ๆ
เรื่องเนตตัดที่บ้านก็มี Router LinkSys WRT-350N อยู่ซื้อตอนทำวิจัยปี 51 รูดปรื๊ดมาตั้ง 6500 (ตอนนี้เสียดายตังค์มาก) ซึ่งลง DD-WRT v24sp2 เรียบร้อย ตั้งใจจะทำ auto login แต่ดันมาตายจากไปเสียก่อน
ระหว่างพยายามหา Router Linksys WRT54GL ในตำนานมาทำ autologin ก็พยายามหา firmware เพื่อแก้ปัญหา ping กากของ TP-Link ด้วย ก็ไปเจอในเว็บ TP-Link Official ว่า WA-850E ตัวนี้ "สามารถลง OpenSource firmware ได้" สนานกันสิคราวนี้
TP-Link Official Site บอกว่าลง Third-party firmware ก็ได้นะ แต่ไม่รับประกันความปลอดภัย |
วิธีการลง firmware OpenWRT ให้ TP-Link ตาม คลิป เลย
วิธีการทำ Wireless Client (Range Extender) ตาม คลิป นี้
ปัญหาที่เกิดคือ ถ้าจะใช้เป็น Range Extender เราจะต้องใช้ DHCP server ของเดิมที่แจกในวง แต่ OpenWRT ดันมี dnsmasq ที่ทำหน้าที่เป็นทั้ง DHCP Server และ DNS Server ให้อยู่แล้ว แต่มันดันแจก IP ที่ให้ DNS เป็นของตัว TP-Link เอง ซึ่งทำให้มัน resolv name server ไม่ได้ (จะไม่มีปัญหาถ้าทำเป็น Router mode แต่ขี้เกียจมานั่ง NAT) และอีกปัญหาคือตัว DNSmasq มันจะไปแจก IP ชนกับ DHCP Server ของ GPON ตัวหลัก อาจทำให้เน็ตเวิร์ครวนได้
พยายามทำ DNS Forwarder กับ DNS Relay แล้ว ไม่รอด 😭
แนวทางแก้ปัญหาคือ ก็ใช้ DNSmasq เป็น DHCP Server นั่นแหละ แต่เลี่ยงไปแจก IP ช่วง 150-200 ที่หวังว่าจะไม่ชนแทน ตั้งค่าดังนี้
1. ไปที่เมนู Network -> Interface เลือก LAN แล้วกด Edit จะเข้าหน้า Interface LAN
ที่ ส่วนบน Common Configuration -> Tab General Setup -> Use custom DNS servers ให้ใส่ DNS ที่ถูกต้องเข้าไป มันจะไปบันทึกในไฟล์ /tmp/resolv.conf.auto
ตั้งค่า Use custom DNS servers |
ตั้งช่วงจ่าย IP ของ DHCP |
3. ที่ส่วนล่าง DHCP Server -> Tab Advance Settings -> DHCP-Option ให้ใส่ DNS Server ที่ถูกต้อง แต่ต้องใส่ตาม Pattern มัน ตามตัวอย่างใส่ 6, นำหน้า แล้วค่อยใส่ DNS Server <---- สำคัญมาก !!!
ตั้ง DHCP-Options เพื่อจ่าย DNS Server ที่ถูกต้องให้ DHCP client |
4. อีกปัญหาคือตัว OpenWRT ถึงแม้จะยอมให้ตั้ง use Custom DNS แล้ว แต่ดันไม่ใช้ กลับไปใช้ DNS ที่ /etc/resolv.conf อย่างเคย วิธีแก้ง่าย ๆ คือไปเปลี่ยนค่าใน /etc/resolv.conf ซะให้ถูก แต่พอ reboot เครื่อง ค่าก็จะกลับมาเหมือนเดิม ทางแก้ง่าย ๆ ก็ตั้งให้มัน copy ไฟล์ /tmp/resolv.conf.auto ไปที่ /etc/resolv.conf ทุกครั้งที่มัน Startup ซะเลย ทำได้โดยไปที่เมนู System -> Startup ส่วน Local Startup ใส่คำสั่ง cp /tmp/resolv.conf.auto /etc/resolv.conf
ใส่ Startup Script เพื่อให้ router ใช้ Custom DNS ทุกครั้งที่ reboot |
ใส่ Startup Script เพื่อให้สร้าง Script Auto Login |
ใส่ script แบบ DD-WRT ใช้ไม่ได้กับ OpenWRT |
ไปเจอว่า Script Auto Login ไม่ทำงานเช็คดู Crontab ก็ทำงานให้ตามปกติ ลองรัน script autologin ที่ shell เองก็ทำงานได้ปกติ หาข้อมูลไปเจอ ลิงก์นี้ เป็นอาการเดียวกัน สรุปว่า ใช้ Script Cron แบบ DD-WRT ไม่ได้ ต้องเขียนใหม่แบบของ OpenWRT ถึงจะทำงานได้ แก้ไขโดยการเอาคำว่า "root" ออก ก็ใช้ได้แล้ว
ใส่ Script Cron แบบ "OpenWRT เท่านั้น!!!" เพื่อให้ autologin ทำงานทุก 2 นาที |
[จบ แก้ไข]
ตอนนี้ลองมา 3 วันก็ถือว่านิ่งมีช่วงแรก ๆ ที่ ping ไป gateway มา ๆ หาย ๆ
[เพิ่มเติม 17/4/61 2324]
และแล้ว อาการ ping กากกกก..... Ping Time AVG > 400ms ก็กลับมา คงไม่เกี่ยวกับ firmware แล้วล่ะ เลยต้องหาวิธีแก้ ก็ใส่ script ไปง่าย ๆ เลยว่า ถ้า AVG ping time เกิน 350 ก็ให้ reboot เครื่องไปเลยแล้วกัน
|
ป.ล. ตามคุณลักษณะโปรแกรมเมอร์ที่ดี จะต้องพัฒนาตัวเองอย่างสม่ำเสมอ ถ้าไม่เปลี่ยนภาษาก็เปลี่ยนเทคนิคการเขียนใช้ท่าใหม่ ๆ เห็นมี Script Auto Login ที่ใช้ curl ก็อยากลองใช้บ้าง แต่ใน busybox ไม่มี curl ให้ใช้ เลยถอยเพราะกระทบเวลางานหลักอื่นๆ มามากเกินไปแล้ว
กว่าจะเขียนจบได้ปาไป 3 วัน เริ่มเขียนทีไร ลูกกวนทุกที ไม่เหมือนเมื่อก่อนสมัยยังโสดทำรวดเดียวเสร็จ
ความคิดเห็น
แสดงความคิดเห็น