Network
น้องๆ เคยเจอไหม เน็ตหลุดตอนเล่นเกมสำคัญ หรือเว็บล่มตอนกำลังจะกดซื้อของลดราคา? นั่นแหละคือสิ่งที่ Network Redundancy พยายามป้องกัน สมัยผมทำร้านเน็ต SiamCafe นี่เรื่องใหญ่เลยนะ เพราะถ้าเน็ตล่มที ลูกค้าหายหมด รายได้ก็หดตาม
Network Redundancy ก็คือการที่เรามีระบบสำรอง เผื่อระบบหลักมีปัญหา เช่น มี Router 2 ตัว แทนที่จะมีตัวเดียว ถ้าตัวแรกเจ๊ง ตัวที่สองก็เข้ามาทำงานแทนได้ทันที ลูกค้าแทบจะไม่รู้สึกถึงความเปลี่ยนแปลงเลย
Hsrp (Hot Standby Router Protocol) และ Vrrp (Virtual Router Redundancy Protocol) เป็นเทคโนโลยีที่ช่วยให้เราสร้าง Network Redundancy ได้ง่ายขึ้น เปรียบเหมือนมีหัวหน้าทีม 2 คน ถ้าคนแรกป่วย คนที่สองก็ขึ้นมาเป็นหัวหน้าแทนได้เลย
ก่อนจะไปลงมือทำจริง เรามาปูพื้นฐานกันก่อนดีกว่า จะได้ไม่งงตอนลง Code นะ
IP Address คือบ้านเลขที่ของคอมพิวเตอร์แต่ละเครื่องใน Network ส่วน Default Gateway คือประตูทางออกของบ้าน ที่จะพาเราออกไปสู่โลกอินเตอร์เน็ต ลองนึกภาพตามนะ ถ้าไม่มี Default Gateway คอมพิวเตอร์เราก็เหมือนอยู่ในบ้านที่ไม่มีประตู ออกไปไหนไม่ได้เลย
ใน Hsrp/Vrrp เราจะสร้าง Virtual IP Address ขึ้นมาตัวหนึ่ง แล้วให้ Router ทั้งสองตัวแชร์ IP นี้กัน คอมพิวเตอร์ใน Network จะมอง Virtual IP นี้เป็น Default Gateway พอ Router ตัวหลักเสีย Router สำรองก็จะรับช่วงต่อ โดยใช้ Virtual IP เดิม ทำให้คอมพิวเตอร์ไม่ต้องเปลี่ยน Default Gateway เลย
Router ก็คืออุปกรณ์ที่เชื่อมต่อ Network ต่างๆ เข้าด้วยกัน และทำหน้าที่ส่งข้อมูล (packet) จาก Network หนึ่งไปยังอีก Network หนึ่ง สมัยก่อน Router ราคาแพงมาก แต่เดี๋ยวนี้ถูกลงเยอะ หาซื้อได้ง่ายตามร้านคอมพิวเตอร์ทั่วไป
Router ทำงานโดยการอ่าน Destination IP Address ใน Packet แล้วดูใน Routing Table ว่าจะส่ง Packet นี้ไปทางไหนต่อ Routing Table ก็เหมือนแผนที่ ที่บอกว่าถ้าจะไปที่นี่ ต้องไปทางไหน
Hsrp กับ Vrrp คล้ายกันมาก แต่ก็มีรายละเอียดที่แตกต่างกันเล็กน้อย หลักการคือเราต้อง Config Router 2 ตัว ให้ทำงานร่วมกัน โดยกำหนด Priority ให้ Router ตัวหนึ่งเป็นตัวหลัก (Active) และอีกตัวเป็นตัวสำรอง (Standby)
เมื่อ Router ตัวหลักมีปัญหา (เช่น ไฟดับ หรือ Link Down) Router ตัวสำรองก็จะเข้ามาทำงานแทน โดยรับ Virtual IP Address และ Virtual MAC Address ไป ทำให้คอมพิวเตอร์ใน Network ยังสามารถเชื่อมต่ออินเตอร์เน็ตได้ตามปกติ
มาดูตัวอย่างการ Config Vrrp บน Cisco Router กัน (Hsrp ก็คล้ายๆ กัน)
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
vrrp 1 ip 192.168.1.254
vrrp 1 priority 110
vrrp 1 preempt
อธิบาย Code:
interface GigabitEthernet0/0: กำหนด Interface ที่จะใช้ทำ Vrrpip address 192.168.1.1 255.255.255.0: กำหนด IP Address ของ Router ตัวนี้vrrp 1 ip 192.168.1.254: กำหนด Virtual IP Address ที่จะใช้ร่วมกันvrrp 1 priority 110: กำหนด Priority ให้ Router ตัวนี้ (ค่าสูงกว่าจะเป็นตัวหลัก)vrrp 1 preempt: ถ้า Router ตัวหลักกลับมาทำงานได้ ให้กลับมาเป็นตัวหลัก
interface GigabitEthernet0/0
ip address 192.168.1.2 255.255.255.0
vrrp 1 ip 192.168.1.254
vrrp 1 priority 100
vrrp 1 preempt
Router B Config คล้ายๆ กับ Router A แต่เปลี่ยน IP Address และ Priority (ให้น้อยกว่า Router A) นอกนั้นเหมือนกันหมด
หลังจาก Config เสร็จแล้ว ลอง Ping ไปที่ Virtual IP Address (192.168.1.254) ดู ถ้า Ping ได้แสดงว่าทุกอย่างทำงานถูกต้อง ลองปิด Router A ดู แล้ว Ping อีกครั้ง ถ้ายัง Ping ได้ แสดงว่า Router B ทำงานแทนแล้ว
อย่าลืมเข้าไปดู SiamCafe Blog นะ มีบทความดีๆ เกี่ยวกับ Network อีกเยอะเลย
นอกจาก Hsrp/Vrrp แล้ว ยังมีทางเลือกอื่นในการทำ Network Redundancy อีก เช่น Load Balancing หรือ Clustering แต่ Hsrp/Vrrp เป็นวิธีที่ง่ายและประหยัดที่สุด เหมาะสำหรับ Network ขนาดเล็กถึงขนาดกลาง
Load Balancing จะกระจาย Traffic ไปยัง Server หลายๆ ตัว เพื่อเพิ่มประสิทธิภาพและความทนทาน แต่ต้องใช้ Load Balancer ซึ่งมีราคาแพงกว่า
Clustering จะนำ Server หลายๆ ตัวมารวมกันเป็น Cluster และทำงานร่วมกัน ถ้า Server ตัวใดตัวหนึ่งเสีย Server ตัวอื่นก็จะเข้ามาทำงานแทนได้ทันที แต่ต้องใช้ Software เฉพาะทาง และ Config ค่อนข้างซับซ้อน
| คุณสมบัติ | Hsrp/Vrrp | Load Balancing | Clustering |
|---|---|---|---|
| ความซับซ้อน | ง่าย | ปานกลาง | ซับซ้อน |
| ค่าใช้จ่าย | ต่ำ | ปานกลาง | สูง |
| ความเหมาะสม | Network ขนาดเล็ก-กลาง | Network ขนาดใหญ่ | Application สำคัญ |
หวังว่าน้องๆ จะเข้าใจเรื่อง Network Redundancy มากขึ้นนะ ถ้ามีคำถามอะไร ถามมาได้เลย ยินดีตอบเสมอ และอย่าลืมแวะไปอ่านบทความอื่นๆ ใน SiamCafe Blog ด้วยนะ
เอาล่ะ มาถึงส่วนที่สำคัญที่สุด ประสบการณ์ตรงจาก SiamCafe สมัยก่อนเลยนะ เรื่อง Network Redundancy เนี่ย ไม่ใช่แค่ setup แล้วจบ ต้องดูแลกันยาวๆ ผมจะเล่าเคล็ดลับที่ใช้ได้จริงให้ฟัง
สมัยผมทำร้านเน็ตเนี่ย เรื่อง Monitoring นี่สำคัญสุดๆ เพราะ downtime คือหายนะ! เราใช้ Nagios คอยเช็คตลอดว่า HSRP/VRRP มัน failover จริงมั้ย ไม่ใช่แค่ตั้งค่าแล้วปล่อยจอย ต้องมี alert ทันทีที่เกิดปัญหา
# ตัวอย่าง Nagios config (simplified)
define service {
use generic-service
host_name router1
service_description HSRP Status
check_command check_snmp!-v 2c -C public -o 1.3.6.1.4.1.9.9.659.1.2.1.1.7.100 -r 1
}
code นี้เป็นแค่ตัวอย่างนะ ต้องปรับให้เข้ากับอุปกรณ์และ OID ที่เราใช้จริงๆ
เคยไหม แก้ config แล้วพังทั้งระบบ? ผมเคย! ตั้งแต่นั้นมาผมใช้ Git ควบคุม config router ทุกตัว เวลาพลาดก็ rollback ได้ง่ายๆ ชีวิตดีขึ้นเยอะ
# ตัวอย่างการใช้ Git
git init
git add .
git commit -m "Initial commit"
อย่าลืม commit บ่อยๆ และเขียน message ให้ชัดเจนนะ ว่าแก้ตรงไหน ทำอะไรไป
ก่อนจะเอา config ไปใส่ router จริง ผมจะ simulate ใน lab ก่อนเสมอ ใช้พวก GNS3 หรือ Eve-NG ช่วยได้เยอะ ลอง failover ดูว่ามันทำงานตามที่เราคิดไว้ไหม ลดความเสี่ยงไปได้เยอะเลย
เขียน diagram network ให้ละเอียด บอกว่า router ตัวไหนเป็น master เป็น backup IP อะไรบ้าง เขียน procedures failover ให้ชัดเจน เผื่อวันไหนไม่อยู่ ลูกน้องจะได้ทำตามได้
A: HSRP เป็นของ Cisco VRRP เป็น standard กลางๆ ใช้ได้กับ router หลายยี่ห้อ แต่หลักการทำงานคล้ายกัน คือมี Virtual IP และ Active/Standby Router
A: ตัว Active ควรตั้งสูงๆ เช่น 150 ตัว Standby ก็ลดหลั่นกันไป เช่น 100, 50 ถ้ามีหลายตัว
A: Preempt คือถ้า Active Router กลับมา online มันจะกลับมาเป็น Active อีกครั้ง ถ้าไม่เปิด preempt มันจะไม่กลับมา (แล้วแต่ config) ส่วนใหญ่เราจะเปิด preempt ไว้
A: Track Object คือการ monitor interface หรือ route อื่นๆ ถ้า interface down หรือ route หาย priority จะลดลง ทำให้ router ตัวอื่นได้เป็น Active แทน
A: แล้วแต่ config และอุปกรณ์ แต่ส่วนใหญ่ควรจะต่ำกว่า 3 วินาที ถ้า failover นานเกินไป user จะรู้สึกได้
Network Redundancy ด้วย HSRP/VRRP เป็นเรื่องสำคัญมากสำหรับธุรกิจที่ต้องการ uptime สูง แต่ต้องเข้าใจหลักการทำงาน ติดตั้งให้ถูกต้อง และ monitoring อย่างสม่ำเสมอ iCafeForex ก็ให้ความสำคัญกับเรื่องนี้มากๆ เพื่อให้ลูกค้าเทรดได้อย่างราบรื่น
หวังว่าบทความนี้จะเป็นประโยชน์นะ ลองเอาไปปรับใช้กันดู ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย SiamCafe Blog ยินดีช่วยเหลือเสมอ