Take Control of Your Home Networking

สัปดาห์ที่ผ่านมาลองปรับอุปกรณ์ Network ในบ้านเล่นครับ เลยอยากมาลองเล่าให้ฟัง

อุปกรณ์ network เดิม

อุปกรณ์ในบ้านผมที่ต่อเน็ตได้มีเกือบ 15 ชิ้นแล้วครับ และ router ทรูเองก็ปล่อยสัญญาณไม่ถึงชั้นบ้านบางจุด ก็เลยมีอีกตัววางไว้ที่บันได (แต่ไม่ได้เดินสายขึ้นไปเลยอยู่ที่ชั้น 1 นี่แหละ)

ปัญหาคือ port LAN หลัง router ผมมันเต็มแล้ว เวลาจะ print ผมก็เลยต้องสลับสายอย่างอื่นออกชั่วคราว ตอนหลังก็เลยว่าจะจัดการระบบใหม่ครับ และอีกปัญหาหนึ่งเคยเขียนไปแล้วสองปีก่อน แต่จะมาเปิด PC ทำ routing อีกก็จะเปลืองไฟเกินไป

จัดบ้าน!

ปัญหาที่ไม่เห็นใน network map คืออุปกรณ์มันสายรุงรังมากครับ ผมกับแม่เลยตัดสินใจว่าจะรื้อที่ว่างอุปกรณ์ network ใหม่หมดเลย โดยเปลี่ยนจากโต๊ะคอมพิวเตอร์เป็นชั้นวางของแทน แล้วซื้อตู้ rack มาวาง อุปกรณ์ก็เลยจะเป็นระเบียบขึ้นเยอะมากกกก

และในฝั่ง network เองผมก็อยากจะลองเล่นของ enterprise สักหน่อย ก็เลยลองจัดมาดังนี้ครับ

  • TP-Link SG-1008 Rack mounted Gigabit Switch 1,600 บาท (ซื้อมาปุ๊บวันที่ของมาส่ง King IT ประกาศเลิกขาย TP-Link เลย ซึ่งกล่องที่ผมได้เป็นของ King IT)
  • Mikrotik RB750Gr3 (hEX) 2,790 บาท
  • Ubiquiti UniFi AP-AC-LITE 4,050 บาท

(จริงๆ ไม่ค่อยอยากซื้อของที่มีปัญหา GPL Compliance สักเท่าไร แต่เหมือนว่าอุปกรณ์ network แทบทุกเจ้าก็มีปัญหาเรื่อง GPL Compliance หมดล่ะ)

Enterprise มั้ยล่ะ…

อุปกรณ์ network ก็มีตัวเลือกหลายอย่างครับ บางคนอาจจะบอกว่าใช้ของ Asus ก็ได้ หรือ AIS ก็ขาย D-Link 8 เสาอยู่ แต่ความแตกต่างที่ชัดเจนของของเล่น enterprise กับของ consumer คืออุปกรณ์แต่ละตัวมันมีหน้าที่เดียวครับ

  • hEX เป็น router อย่างเดียว (และเป็น switch 5 port)
  • UniFi เป็น access point อย่างเดียว ทำหน้าที่แบบ router ไม่ได้เลย และมีพอร์ทเดียว

ทีนี้ network map อันใหม่จะเป็นแบบนี้ครับ

Bridge mode

ก่อนอื่นพอเรามี router เราก็ไม่ควรจะทำ double NAT ครับ ซึ่งก็ทำได้โดยการเข้าไปแก้ที่ router ทรู แต่รุ่นที่ผมใช้อยู่มันใช้ไม่ได้ ก็เลยต้องติดต่อไปทาง support ซึ่งสองวันเค้าก็มาเปลี่ยนให้เป็น EPC3928D

ลองเล่น hEX

ถัดมาก็ต้อง config router ตัวใหม่ครับ ซึ่ง interface ของ Mikrotik ก็ทำมาให้ไม่ผิดหวังจริงๆ (ลอง Demo เล่นเองได้)

หน้าแรกของ Mikrotik เหมาะกับมือใหม่มากๆ ครับ ซึ่งก็จะคล้ายๆ กับ router ทั่วๆ ไป เซตหน้านี้ปุ๊บก็สามารถเริ่มใช้งานได้เลย (จริงๆ ตามภาพนี่ก็ค่าเริ่มต้นเลยครับ ยกเว้น IP range นะ) แต่ของจริงๆ มันอยู่ที่หน้าอื่นๆ ครับ

หน้า interfaces นี่เจ๋งมากครับ เอาจริงๆ ไม่ต้อง config อะไรเลย (ผมแค่เปลี่ยนชื่อให้รู้ว่าพอร์ทไหนคืออะไรแค่นั้น) แต่ตัวเลขที่เห็นมันขยับเป็น real time ครับ ทำให้รู้ได้เลยว่าใครใช้เน็ตเท่าไรอยู่กันบ้าง และสามารถดูได้ด้วยว่า port ไหนที่เชื่อมต่อเป็น Gigabit อยู่บ้าง

จุดที่พอจะเล่นหน้านี้ได้คือ Master port ครับ ซึ่งใน default setup จะให้ port 3-5 ชี้ master port ไปที่ port 2 (port 1 เป็น WAN) โดยในคู่มืออธิบายว่า port ที่เป็น slave จะทำบางอย่างไม่ได้ (เช่น firewall) แต่มันจะใช้ hardware switching ทำให้ packet วิ่งได้อย่างรวดเร็ว ซึ่งถ้าเราไปดูในหน้า bridge ที่มันสร้างให้ก็จะเห็นว่า bridge เชื่อมแค่ port เดียว เหตุผลที่เค้าเซต bridge ให้ด้วยคือเพื่อใช้ RSTP ป้องกัน loop ครับ

ของเล่นถัดมาคือ DHCP Lease ครับ ตรงนี้เราจะเห็นเลยว่ามีอุปกรณ์อะไรในบ้านที่ต่ออยู่บ้าง (ซึ่งปกติ router ทั่วไปก็มีหมดแหละ) และทำ static IP ให้แต่ละตัวได้ (อันนี้ router บางรุ่นมี แต่ที่ผมใช้อยู่เดิมไม่มี)

อันที่น่าปรับคือผมปรับให้ DHCP เป็น authoritative คือค่าปกติ DHCP server จะรอประมาณ 2 วินาที (เผื่อมี DHCP server อื่น) แต่พอปรับเป็น yes แล้วจะทำให้ไม่ต้องรอ

DNS นี่ไม่มีอะไรให้ปรับเท่าไรครับ (ผมปรับ DNS เอาของทรูออกเป็นของ Google แทนแค่นั้น) แต่จะบอกว่าจากที่เคยใช้มาการมี local DNS caching ทำให้เน็ตเร็วขึ้นอย่างเห็นได้ชัดเลยครับ อาจจะวัดด้วย speedtest ไม่ได้ แต่เข้าเว็บทั่วๆ ไปจะเห็นเลย

Firewall

มาถึงของเล่นเด็ดเลยคือ firewall ครับ ผมมั่นใจว่า consumer router ไม่มี firewall ระดับนี้แน่ๆ คือเขียนกฎได้เต็มที่เลย ทีนี้ firewall ของ Mikrotik ก็มีเรื่องน่าสนใจเยอะครับ

เรื่องแรกคือจะเห็นว่ามีหลายแท็บมากๆ แท็บ NAT ปกติไม่ต้องไปยุ่ง เพราะมันจะเซตให้แล้ว แต่ที่น่าเล่นคือ Filter Rules กับ Mangle ครับ

Filter Rules คือ Firewall ทั่วๆ ไปนี่แหละ ซึ่งปกติแล้วมันจะมีกฎนึงให้คือ fasttrack forward (ในภาพคือแถวที่ 2) อันนี้แนะนำให้ปิดไปก่อนครับ โดยกฎนี้แปลว่า connection ที่ connect ติดแล้วจะข้าม firewall ไปเลย ซึ่งจะทำให้ทำ QoS ไม่ติด แต่ข้อดีคือมันจะเร็วขึ้น

กฎที่เหลือที่ผมเขียนเพิ่มก็จะมี block ไม่ให้เข้าหน้า router (แต่ปิดไปก่อน) และ block อุปกรณ์ IoT ไม่ให้ต่อเน็ตได้เพื่อความปลอดภัย

สำหรับหน้า Mangle ไว้ mark packet ที่วิ่งผ่านไปผ่านมาสำหรับการทำ QoS ครับ โดยกฎที่ผมใช้ก็คือ

  • TCP ACK packet size 40 ให้ mark packet ไว้ในกลุ่ม tcp
  • Packet ที่ออกจาก IP ของ TV ให้ mark packet ไว้ในกลุ่ม tv
  • Packet ที่ต่อ UDP port 53 ให้ mark packet ไว้ในกลุ่ม dns
  • Connection TCP port 80, 443 ให้ mark connection ไว้ในกลุ่ม http
  • Connection TCP port 22 ให้ mark connection ไว้ในกลุ่ม ssh
  • Connection TCP port 1935 (rtmp) ให้ mark connection ไว้ในกลุ่ม streaming
  • Connection UDP port 500, 4500 ให้ mark connection ไว้ในกลุ่ม voip (พอร์ทนี้สำหรับ 4G Voice over WiFi ครับ)
  • Connection UDP port 6250,5062,5060,12000-64000,3478,3479 ให้ mark connection ไว้ในกลุ่ม gaming (สำหรับเกม Overwatch)
  • Connection TCP port 1119,3724,6113 ให้ mark connection ไว้ในกลุ่ม gaming (สำหรับเกม Overwatch)
  • Connection UDP port 27015-28999,27005 ให้ mark connection ไว้ในกลุ่ม gaming (สำหรับเกม Dota 2)

สำหรับ connection mark แนะนำให้ตั้ง connection state = new ไว้ด้วยครับ เพื่อลด load ทั้งนี้ RouterOS สามารถ track connection ของ UDP ได้ด้วยครับแม้มันจะเป็น connectionless โดยนิยามของ new คือเมื่อมีการส่ง packet แรกออกมาจากฝั่งใดฝั่งหนึ่ง

สำหรับ connection mark และ packet mark จะต่างกันแบบนี้ครับ

  • Connection mark จะ mark ที่ connection ซึ่งเราสามารถดูได้ที่ tab connections ด้านบนเลย เราเลยทำครั้งเดียวตอน connect ก็พอ ไม่ต้องทำบ่อยๆ
  • Packet mark จะ mark ที่ packet ซึ่งต้องทำทุก packet ก็เลยจะต้องมีกฎเอา connection mark มาแปะที่ packet markอีกทีนึง เนื่องจาก QoS จะอ่านที่ packet mark เท่านั้น และถ้าเอากฎ connection mark มาทำใน packet mark เลยก็จะช้า

Queues

หน้าสุดท้ายที่จะปรับคือ Queue Trees ครับ ตรงนี้จะใช้ packet mark ที่เราสร้างไว้ก่อนหน้านี้มาจัดลำดับ ซึ่งที่ผมจัดก็คือ

  • 1 – DNS + TCP ความสำคัญสูงสุด
  • 2 – Gaming (ใน Firewall จะมีอีกกฎนึงว่า gaming ให้ fasttrack connection เลยเพื่อลด ping ตรงนี้เลยไม่ค่อยได้ใช้)
  • 3 – VoIP
  • 4 – SSH + TV ผมหวังว่า TV จะไม่กินเน็ตเยอะนะ
  • 5 – HTTP (จากกฎเมื่อกี้จะรวม HTTPS ด้วย)
  • 8 – Streaming + อื่นๆ (Streaming นี่หลักๆ เขียนไว้ดักสตรีมออกครับ ไม่เกี่ยวกับดู video streaming เท่าไร ยกเว้น MyLive ที่ใช้ RTMP อยู่)

แต่ตอนนี้ก็ยังไม่เห็นผลของ QoS เท่าไรครับ เพราะไม่ได้ใช้เน็ตหนักขนาดที่ bandwidth ไม่พอขนาดนั้น

UniFi

ถัดมาลอง UniFi กันบ้างครับ ตัวนี้ Ars Technica อวยไว้พอสมควร และด้วยความเป็น enterprise มันจึงไม่มีหน้า web admin ให้เซตใดๆ ทั้งนั้น วิธีการติดตั้ง UniFi คือต้องโหลดโปรแกรม UniFi มาครับ แล้วเข้าที่หน้าเว็บของมัน ซึ่งก็ทำได้สวยเลย

พอเปิดมามันจะขึ้นให้ Adopt device ครับ (มันจะหาอุปกรณ์เจอเอง ปกติจะ IP 192.168.1.20) ซึ่งตอนแรกๆ ผมก็มีปัญหากับ subnet นิดหน่อย งมๆ ด้วยการ factory reset อยู่หลายทีเหมือนกัน

บน UniFi จะต่างกับ router ทั่วไปคือไม่ค่อยมีตัวเลือกให้ปรับเท่าไรครับ จะมีที่เกี่ยวข้องกับ Wireless อย่างเดียวมากกว่า เช่นปรับความแรง, channel และสามารถดู wireless client ได้ด้วย จะต่างกับ consumer router คือจะเห็น data transfer ด้วย (แต่เหมือนจะนับเฉพาะถ้าเรายังเปิดโปรแกรม UniFi ที่เครื่องเราอยู่)

New furniture

ความน่ารักของ UniFi คือไฟมันสวยมาก ลืมภาพ router ไฟกระพริบๆ ได้เลย เพราะ UniFi จะขึ้นไฟสีฟ้าตลอดเวลา ยิ่งพอปิดไฟนอนแล้วจะเหมือนมีไฟหรี่ๆ บอกตำแหน่งของบันไดชั้นล่างเลย

อีกอย่างนึงคือมันเป็น Power over Ethernet (PoE) ครับ นั่นแปลว่าไม่ต้องวาง adapter เกะกะแล้ว (ในภาพนั่นปลั๊กพัดลมกับหลอดไฟ) ผมสามารถเอา PoE injector ที่แถมมาในกล่องเสียบไว้ที่ข้าง switch แล้วเดินสายแลนมาได้เลย แถมพออยู่ข้าง switch ก็สามารถต่อกับ UPS ได้ด้วย

สำหรับ site survey router ตัวนี้ยังรู้สึกว่าสัญญาณไม่ต่างกับเดิมครับ (คงเพราะมันเป็นตัวล่างสุดด้วยล่ะ) และไอเดียของ Ubiquiti ไม่ใช่การใส่เสาเยอะๆ แรงๆ แต่เป็นการกระจาย access point หลายๆ ตัว ที่สามารถ manage รวมกัน

สรุปแล้ว network ใหม่ก็ทำให้มองเห็น network ได้มากกว่าเดิมเยอะครับ ดูได้เลยว่าใครใช้ bandwidth มากน้อยขนาดไหน (และ protocol ไหน) แถมยัง control ด้วย firewall ได้ด้วย

One thought on “Take Control of Your Home Networking”

  1. ดูเหมือนก้าวกระโดดจัง ไม่ลอง SoHo Router + DDWRT/Tomato ดูก่อนเหรอครับ ถ้า Client ไม่เยอะ เครื่องเดียวก็อยู่นะ มี GUI QoS/Firewall ให้ตั้งได้สัก 60-70% ของ Microtik หรือถ้าสายแข็งก็ Compile Module เพิ่มไม่ก็ต่อ Shell เข้าไปตั้งนู้นนี่เองได้เลย เป็น Linux หมดอยู่แล้ว

Comments are closed.