ติดตั้ง OpenWrt ลง M.2 NVMe เพื่อเป็น Router และ Firewall บนเครื่อง x86/x64
Table of contents
Intro
บทความนี้เป็นการติดตั้ง OpenWrt ลงบนเครื่องที่ใช้ CPU x86/x64 โดยให้ Boot ผ่าน M.2 NVMe ซึ่งตามปกติ OpenWrt สามารถติดตั้งลงบน Drive Bootable ได้หลายรูปแบบ เช่น HDD, SSD, mSATA, M.2, M.2 NVMe และแม้กระทั้งบน Flash drive (USB)
โดยการติดตั้ง OpenWrt ร่วมกับ M.2 NVMe นั้นจะเป็นวิธีที่ OpenWrt สามารถทำงานได้ รวดเร็วที่สุด
ในบรรดา Storage อื่น ๆ ที่ได้กล่าวมาข้างต้นเป็นเพราะความสามารถของ I/O ของ M.2 NVMe นั้นมี Speed ที่เร็วว่าชนิดอื่น ๆ
บทความนี้เป็นการติดตั้ง OpenWrt ลงบนเครื่องที่ใช้ CPU x86/x64 ซึ่งที่จริง OpenWrt ก็รองรับการทำงานบน CPU หลายชนิด เช่น ARM64 ดังนั้นในกรณีของ CPU x86/x64 สามารถทำงานได้ทั้งบน CPU ของ Intel และ AMD
ท่านใดที่อยากทดลองติดตั้ง OpenWrt สามารถหา PC เครื่องเก่า หรือเป็น Mini PC ที่ไม่กินไฟฟ้ามาก หรือแม้กระทั้งสามารถจำลองการติดตั้งบน Vmware ก็ได้เช่นกัน
OpenWrt 18.06.1 login screen from: https://en.wikipedia.org/wiki/OpenWrt
OpenWrt คืออะไร
OpenWrt คือระบบปฏิบัติการ (Operating System) โอเพนซอร์ส (Open Source) ขนาดเล็กที่ถูกออกแบบมาเพื่อใช้ในอุปกรณ์เครือข่าย (Networks) และไร้สาย (Wireless Networking) เช่น เราเตอร์ (Router), อุปกรณ์ เข้าถึงอินเทอร์เน็ต (Access Point), อุปกรณ์ควบคุมการเข้าถึงเครือข่าย (Firewall), อุปกรณ์เก็บข้อมูล (Network Storage), และอุปกรณ์อื่น ๆ ที่ใช้ในระบบเครือข่าย โดย OpenWrt มีจุดเด่นในด้านความสามารถในการปรับแต่งได้ (Customizability) ใช้งานได้ฟรี (Open Source) และความยืดหยุ่น (Flexibility) ที่สูง ซึ่งสามารถปรับแต่งและกำหนดค่าตามความต้องการของผู้ใช้ได้อย่างอิสระ
Router Firewall by OpenWrt on x86 at my home
OpenWrt เหมาะสำหรับใคร
จากการใช้งาน OpenWrt การค้นคว้าข้อมูล ลองผิด ลองถูก ด้วยตัวเองมาสักพักหนึ่ง เพื่อติดตั้งระบบภายในบ้านจึงขอสรุปความเหมาะสมการใช้งาน OpenWrt ดังนี้
- OpenWrt เหมาะผู้ที่ชื่นชอบการปรับแต่ง และการตั้งค่าเอง เพราะ Software มีความยืดหยุ่นสูง และใช้งานได้ฟรี (Open Source)
- OpenWrt เหมาะสำหรับผู้ที่ต้องการทำ Custom build สิ่งนี้อาจจะไม่คุ้นในไทยเท่าไหร่ แต่ที่ต่างประเทศนิยมทำกันเยอะมากในชุมชน Homelab โดยหากต้องการสเปคเครื่องที่สูง (เพราะเราสามารถกำหนดสเปค Hardware ได้เอง) ขึ้นอยู่กับความต้องการได้
- OpenWrt เหมาะสำหรับองค์กรที่ต้องการลดค่าใช้จ่ายในการจัดซื้อ Software และ Hardware เนื่องจาก OpenWrt มีสามารถทำตัวเองเป็น Router Firewall หรือทำเป็น Managed Switch ที่จัดการได้ทั้ง L2, L3 หรือทำเป็น VPN Server
- OpenWrt พัฒนามาจาก Base on Linux ดังนั้น จึงเป็นข้อดีสำหรับใครที่คุ้นชินกับการใช้โครงสร้างแบบ Linux อีกทั้งสามารถใช้ Software ที่มีบน Linux ส่วนใหญ่ได้ เช่น htop, nano, vim, docker หรือเหมาะสำหรับผู้ที่ต้องการพัฒนา Package ของตนเองเพื่อนำไปรันบน Router
- เนื่องจากวัตถุประสงค ์การพัฒนา OpenWrt ก็เพื่อทำงานกับ Router Hardware ขนาดเล็กที่สเปคเครื่องไม่สูงมาก ดังนั้นจึงเป็นข้อดี เนื่องจาก OpenWrt ทำงานโดยใช้ทรัพยากรเครื่องไม่สูง และสามารถทำงานกับ Hardware รุ่นเก่าที่สเปคไม่สูงได้ดีมาก
- OpenWrt เป็น Base on Linux ดังนั้น จึงสามารถรัน Docker ได้ในตัว มีประโยชน์หากต้องการรัน Software อื่น ๆ ที่ต้องการพร้อมกับเป็น Router ในตัวเอง
- ด้วยความที่ OpenWrt เป็น Software แบบ Open Source ที่แจกจ่ายให้ใช้ได้ฟรี ๆ มีความยืดหยุ่นสูง และสามารถเอาไปพัฒนาต่อได้ฟรี ก็เลยมีผู้ผลิต Router นำเอา OpenWrt ไปพัฒนาต่อเพื่อเป็น Firmware ของตนเอง เช่น Google Nest WiFi, Xiaomi Router, LINKSYS Router, TP-Link Router
OpenWrt ไม่เหมาะสำหรับใคร
- OpenWrt ไม่เหมาะกับผู้ที่ ชอบการปรับแต่งรายละเอียดเอง เพราะแม้ว่ามี OpenWrt GUI ให้ Managements ได้ก็ตาม แต่บางครั้งผู้ใช้ OpenWrt จำเป็นการต้องใช้คำสั่ง Command Line เองเพื่อสั่งงานต่าง ๆ บน Router
- OpenWrt ไม่เหมาะกับผู้ใช้มือใหม่ โดยเฉพาะถ้าเป็น Firmware ต้นฉบับ (Stock ROM) ที่ไม่ได้มีการปรับแต่งใด ๆ เมื่อติดตั้งเสร็จจะไม่มีหน้าจัดการ (GUI) ใด ๆ เลย ดังนั้นต้องต้องอาศัยการอ่าน Documents และสั่งงานผ่าน Command Line
- OpenWrt เป็น Software ที่เสถียรสูง แต่ก็มีปัญหาอื่น ๆ ได้บ่อย ๆ เช่นกัน ถ้าจัดการได้ไม่ดีพอ ดังนั้นจำเป็นต้องอาศัยความรู้ Linux Command Line ค่อนข้างเยอะเข้าไปจัดการ ถ้าหน้า GUI ไม่สามารถทำได้ เพื่อแก้ปัญหาเองในบางครั้ง
- การแก้ปัญหาต่าง ๆ บน OpenWrt ต้องค้นคว้าเองถึงแม้ว่า OpenWrt Forum จะมีขนาดใหญ่ และนักพัฒนาบน OpenWrt GitHub ม ีชุมชนที่แข็งแกร่ง แต่ส่วนใหญ่จะเป็นผู้ใช้งานต่างประเทศ และไม่ค่อยมีกลุ่มผู้ใช้งานภาษาไทย ดังนั้นถ้ามีปัญหาใด ๆ จากการใช้งานต้องหาข้อมูล และแก้ไขปัญหาด้วยตัวเอง
- สุดท้ายค่อนข้างสำคัญต้องเข้าใจว่า OpenWrt ไม่ใช่ Customer software บาง Package ที่ติดตั้ง Add-on (พัฒนาโดยนักพัฒนาอื่น ๆ) ที่ไม่ใช่ Package หลักอาจจะเกิดปัญหาบ้าง และผู้ใช้ควรรู้ว่าต้องแก้ไขปัญหาเองอย่างไร ดังนั้นการใช้งานบางอย่างจึงไม่ได้ง่ายเหมือนของยี่ห้ออื่น ๆ อีกทั้ง Features บางอย่างไม่ใช่ว่าไม่มี ก็มีและทำได้ แต่ต้องทำเอง ดังนั้นผู้ใช้ต้องมีประสบการณ์การใช้งานในระดับหนึ่ง และต้องมีความรู้เกี่ยวกับ Networks พอสมควรถึงจะสามารถจัดการระบบได้ดีได้
นอกเหนือจาก OpenWrt แล้วมี OS ตัวอื่น ๆ ใดบ้างที่น่าสนใจ
- pfSense, OPNsense เป็น Open source และฟรี แต่เป็นระบบ FreeBSD (ไม่ใช่ Linux)
- OpenWrt, Tomato เป็น Open source และฟรี เป็นระบบ Linux
- Mikrotik ส่วนใหญ่ขายพร้อมกับ Hardware แต่ก็สามารถติดตั้งลงเครื่อง x86 ได้ โดยมีตัวที่สามารถใช้งานได้ฟรี (จำกัดคุณสมบัติ) และแบบที่ซื้อ License ใช้งาน
- VyOS เป็น Open source และฟรี เป็นระบบ Linux