Virtual SAN Clustering is not enabled on this host

จากที่เจอปัญหา ESXi ทำให้ต้อง reset ค่า Config ทั้งหมด และ Add Node เข้าสู่ Cluster ใหม่ แต่ปัญหาคือ ตัว Node ที่เพิ่มเข้าไปใหม่นั้น มองไม่เห็น vSAN Storage และเมื่อเราใช้คำสั่ง get vasn ผ่านทาง SSH ตามนี้

 esxcli vsan cluster get

ผลลัพท์ที่ได้ : Virtual SAN Clustering is not enabled on this host

วิธีการแก้ไข: ให้ SSH ไปยัง ESXi Node อื่นที่อยู่ใน Cluster และใช้คำสั่ง esxcli vsan cluster get เพื่อเรียกค่า vSAN จากนั้นให้มองหาค่า Sub-Cluster UUID: และ Copy ไว้ และกลับมายัง Node ที่มองไม่เห็น vSAN และใช้คำสั่งนี้

 esxcli vsan cluster join -u UUID

ใส่ค่า UUID ที่เราได้มาจาก Node อื่น หากสำเร็จ จะไม่ขึ้น Error อะไรออกมา ให้ลองใช้คำสั่ง get อีกครั้ง จะพบว่า Node ใหม่ เชื่อมต่อเข้าไปยังระบบ vSAN Storage เรียบร้อยแล้ว

เร่งสปีด Time Machine ใน macOS ให้เร็วขึ้น 10 เท่า

สำหรับผู้ที่ใช้งาน macOS และใช้งานระบบ Time Machine สำหรับ Backup ข้อมูล จะพบเจอกับปัญหาหนึ่ง คือ มันจะ Backup ช้าม๊ากกกก….

วิธีการเร่งความเร็วของ macOS Time Machine ให้เร็วขึ้นระดับ 10 เท่ากันเลย ให้เปิด Terminal ขึ้นมา และรันคำสั่งนี้

sudo sysctl debug.lowpri_throttle_enabled=0

ผลลัพท์ที่ได้ มันจะทำให้การ Backup เร็วขึ้นครับ เพราะว่ามันไปปิดโหมด Low Priority นั่นเอง, ถ้า Backup เสร็จแล้ว จะปรับระบบกลับเหมือนเดิม ก็ใส่ค่า 1 เข้าไปแทน

sudo sysctl debug.lowpri_throttle_enabled=1

Happy for used macOS 🙂

วิธีตั้งค่า DNS Server ใน Windows/macOS/Linux/iOS/Android

DNS - Domain Name System

เกริ่นนำก่อน: โดยปกติแล้ว เมื่อเราเชื่อมต่ออินเตอร์เน็ต ไม่ว่าจะเป็นในคอมพิวเตอร์ หรือโทรศัพท์ ผู้ให้บริการจะทำการแจกจ่าย DNS Server มาให้เราได้ใช้งานแบบอัตโนมัติอยู่แล้ว ไม่อย่างนั้นเราจะใช้งานอินเตอร์เน็ตไม่ได้ เพราะไม่สามารถ Reslove IP ของ Server ผ่านชื่อโดเมนได้ คือถ้าเราจะใช้ Service อะไรก็ตามที่เป็นชื่อโดเมน เช่น xvlnw.com เป็นต้น เราจะเรียกใช้งานไม่ได้เลย เพราะเราจะไม่ได้หมายเลข IP ปลายทาง และเชื่อมต่อไปยัง Server ที่ถูกต้อง

DNS Server ทำการแปลงชื่อโดเมน => IP address และอุปกรณ์ของเราจะทำการเชื่อมต่อไปยัง IP ที่ได้มาอีกที นี่คือขั้นตอนการทำงานของระบบ DNS Server เบื้องต้น

แต่เมื่อบางที ความต้องการของเรามากกว่า DNS มาตรฐานที่ทางผู้ให้บริการอินเตอร์เน็ต หรือ ISP ส่งมาให้เรา เราก็ต้องหา Solution เสริมขึ้นมา เช่น เปลี่ยนไปใช้ DNS จากผู้ให้บริการเจ้าอื่นๆ ที่พ่วงคุณสมบัติพิเศษเข้ามา เช่น 1.1.1.2 ที่ Block Domain ที่เป็น Malware, Ransomware ได้ด้วย หรือจะใช้ 1.1.1.3 ที่ Block เว็บสำหรับผู้ใหญ่พ่วงเข้ามาด้วย (เหมาะสำหรับเด็ก) โดยเป็นของ Cloudflare โดยที่เราไม่ต้องไปไล่นั่งอัพเดต DNS เองเลย

หรือหากต้องการ Customize มากกว่านั้น ยังมี Software จัดการ DNS Server เอง อย่างเช่น Pi-hole ที่น่าสนใจ เพราะเป็น Open Source และเราสามารถที่จะ Block เว็บไซต์ผ่านทางชื่อโดเมนได้ด้วยตัวเอง

วิธีตั้งค่า DNS Server ใน Windows

ไปที่ Network and Sharing Center > เลือก Internet Connection ของเรา > Properties > เลือก IPv4 และคลิก Properties > ในส่วนของ Use the following DNS Server addresses: กรอกหมายเลข IP ของ DNS Server 1 ช่องต่อ 1 หมายเลข IP (หากมี IPv6 ด้วย ให้เลือก IPv6 และคลิ Properties เหมือนกับ IPv4​)

วิธีตั้งค่า DNS Server ใน macOS

ไปที่ Open Network Preferences.. > Network > DNS > DNS Servers: กรอกหมายเลข IP ของ DNS Server ซึ่งหากมี IPv6 ด้วย เราก็สามารถกรอกเพิ่มตรงนี้ได้เลย

วิธีตั้งค่า DNS Server ใน Linux

ใน Linux นั้น เราสามารถแก้ไขไฟล์ /etc/resolv.conf ด้วย Editor ผ่านทาง Command line ครับ

# Edit file
nano /etc/resolv.conf

# Cloudflare DNS
nameserver 1.1.1.2
nameserver 1.1.1.1

วิธีตั้งค่า DNS Server ใน iOS/Android

สำหรับใน Mobile ผมจะแนะนำเป็น Application เพื่อความง่ายในการใช้งานและตั้งค่านะครับ แยกเป็น 2 กรณี คือ ต้องการใช้ Safety DNS โดยไม่ได้มีความรู้ในการทำ DNS Server เอง แนะนำเป็น Cloudflare DNS และหากต้องการกรอกหมายเลข IP DNS Server เอง แนะนำเป็น Trust DNS

Cloudflare DNS:

หมายเหตุ: Cloudflare App มีโหมด WARP ซึ่งเป็นลักษณะของ Full VPN ทำให้เราสามารถเข้าเว็บไซต์ที่โดน Block ภายในประเทศไทยได้ด้วยนะครับ 🙂

Trust DNS:

Security Header ของมันต้องมี

Header ที่ควรจะมีใน Nginx config เพื่อเพิ่มความปลอดภัยให้กับเว็บไซต์ของเรา เอาไปไว้ในส่วนของ server { … } นะครับ

# Security headers
add_header X-Frame-Options           "SAMEORIGIN" always;
add_header X-XSS-Protection          "1; mode=block" always;
add_header X-Content-Type-Options    "nosniff" always;
add_header Referrer-Policy           "no-referrer-when-downgrade" always;
add_header Content-Security-Policy   "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

แล้วถ้าไม่ได้ใช้ Nginx หละ ทำยังไง? เราสามารถใช้ .htaccess rewrite rule ใน Apache ได้ครับ

# Security headers
Header add X-Frame-Options           "SAMEORIGIN" always;
Header add X-XSS-Protection          "1; mode=block" always;
Header add X-Content-Type-Options    "nosniff" always;
Header add Referrer-Policy           "no-referrer-when-downgrade" always;
Header add Content-Security-Policy   "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'" always;
Header add Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

สามารถใช้ได้กับทุกเว็บ ทุก CMS เช่น WordPress เป็นต้น ทดสอบ HTTP Header Validation ได้ที่ลิงก์ https://securityheaders.com

สำหรับความหมายของแต่ละค่า ลองเอาไปค้นหาเพิ่มเติมกันดูนะครับ

Pi-hole ตอนที่ 5: ทดสอบ DNSSEC

เอาหละ เมื่อเรา Install & Config ตัวระบบ Pi-hole ของเราเรียบร้อยแล้ว สิ่งหนึ่งที่ผมให้ความสำคัญมากก็คือ ระบบ DNSSEC เพราะมันจะเป็นมาตรฐานความปลอดภัยในปัจจุบันและอนาคตที่ควรจะคำนึงถึงอย่างมาก

สำหรับตอนที่ 5 เราจะมาดูวิธีการตรวจสอบ Pi-hole ของเรา ว่ารองรับการ Req DNSSEC หรือไม่?​ ในบทความนี้ผมจะใช้ macOS และคำสั่ง dig นะครับ และในที่นี้ ผมติดตั้ง Pi-hole ไว้ในเครื่องตัวเอง Docker เพราะฉะนั้น IP Pi-hole จึงเป็น 127.0.0.1 นะครับ

dig xvlnw.com @127.0.0.1

จะเห็นว่า เราจะได้ A Record กลับมา 3 ค่า และ SERVER เป็น 127.0.0.1#53 เป็น Port DNS (UDP) นะครับ

dig xvlnw.com @127.0.0.1 +dnssec

และเมื่อเราเพิ่ม +dnssec เข้าไป หาก DNS Server ของเรารองรับ DNSSEC ซึ่งในที่นี้เราใช้ Pi-hole อยู่ รองรับการเรียกใช้ จะมี RRSIG Record ส่งกลับมาเพิ่มจาก A Record ตามปกติครับ

และเมื่อเรามาดู DNS Query Log ในระบบ Pi-hole เราจะพบประวัติการร้องขอ DNS ตามรูปด้านล่างนี้

จะเห็นได้ว่า แถวแรก ในส่วนของ Status จะมีคำว่า SECURE อยู่ครับ ซึ่งมันคือการเรียกแบบ DNSSEC นั่นเอง ส่วนแถวที่ 2 จะเป็นการเรียกแบบปกติที่ไม่มีการเข้ารหัสนั่นเอง

เมื่อเราได้ DNS Server เรียบร้อยแล้ว เราสามารถตั้งค่านำไปใช้งานจริงๆได้เลย >> ดูวิธีการตั้งค่า DNS Server