Hadyai Internet R&D LAB
ผลงานของ Hadyai Internet R&D LAB => คุยกับทีมวิจัย => ข้อความที่เริ่มโดย: admin ที่ 03 มีนาคม 2017, 05:24:35
-
ตอน 3 จะมาศึกษาถึงเรื่องของ fail-over เน็ต 3 เส้น ถ้าเกิดเส้น 1 ดาวน์ จะเกิดอะไรขึ้นบ้าง ข้อมูลจะวิ่งไปเส้นไหน
และจะมีการเปลี่ยนแปลงอะไรเกิดขึ้นบ้าง ก็จะอธิบายในหัวข้อนี้
จบแล้วก็จะเป็นเรื่องของการ forward port จะ forward กล้องวงจรปิด forward port เกมส์ หรืออื่นๆ จะต้องทำอย่างไร
---------
จากตัวอย่างการ config ก่อนหน้านี้ ถ้าเกิดเน็ตเส้น 1 ดาวน์ จะเกิดอะไรขึ้น เราก็ต้องมาพิจารณา mark route ที่เราทำไว้
ก่อนหน้านี้
game => wan1
dst1 => wan2
dst2 => wan3
both1 => wan2
both2 => wan3
จะเห็นว่า ถ้า wan1 ดาวน์ ข้อมูลกลุ่ม game จะไม่สามารถออกทาง wan1 ได้ แล้วเกิดอะไรขึ้น?
ข้อมูล game จะออกไม่ได้?
ไม่ใช่ครับ ข้อมูลเกมส์ก็จะออก default route แทน ยังจำได้ไหมครับ default route ที่เราทำไว้ เป็นอย่างไร
(http://www.hadyaiinternet.com/images/mt/102.png)
default route ก็คือ gateway ทั้ง 3 wan ถ้า wan1 ดาวน์ไป ก็จะเหลือ wan2 และ wan3
ดังนั้นข้อมูล game จะวิ่งสุ่มระหว่าง wan2 กับ wan3 นั่นเอง ส่วนข้อมุลกลุ่ม dst1,dst2,both1,both2 ก็ยังออก
wan2 และ wan3 ตามปกติเหมือนเดิม
งงไหมครับ ถ้าเข้าใจแล้ว งั้นลองทดสอบว่า ถ้า wan2 ดาวน์บ้างล่ะ จะเกิดอะไรขึ้น
game => wan1
dst1 => wan2 default route
dst2 => wan3
both1 => wan2 default route
both2 => wan3
ข้อมูลกลุ่ม dst1 และ both1 จะวิ่ง default route แทน ซึ่งก็คือ ออก wan1 และ wan3 แบบสุ่ม
ถ้าเข้าใจแล้ว ต่อไปจะเป็นการกำหนดเส้นให้กับข้อมูล ในกรณีที่เส้นที่กำหนดไว้เกิด ดาวน์
เช่น กรณี wan2 ดาวน์ ต้องการให้ dst1 และ both1 วิ่งออก wan3 เท่านั้น
ในกรณีนี้ เราจะสร้าง route ขึ้นมา โดยกำหนด distance เป็น 2 ไว้สำรอง wan2
ทำดังนี้ เข้าไปที่เมนู IP Route กด +
Gateway เป็น interface wan3 , Check Gateway เป็น ping , Distance เป็น 2 , Routing Mask เป็น wan2
(http://www.hadyaiinternet.com/images/mt/103.png)
กดปุ่ม Ok ก็จะได้ Route เพิ่มขึ้นมา ที่เป็น Distance 2 ซึ่งจะทำงานต่อเมื่อ Distance 1 ไม่สามารถทำงานได้
** Route แสดงเป็นสีดำแสดงว่าทำงานอยู่ ถ้าแสดงเป็น สีน้ำเงิน แสดงว่าไม่ได้ทำงาน **
(http://www.hadyaiinternet.com/images/mt/104.png)
ทดลองปิดเน็ตเส้น 2 ดู ผลก็จะได้ออกมาเป็น
(http://www.hadyaiinternet.com/images/mt/105.png)
จะเห็นว่า 3bb_link2 ขึ้น unreachable (แปลว่า ไม่สามารถทำงานได้)
Routing Mask wan2 Distance 2 ก็จะขึ้นมาทำงานแทน โดยข้อมูลจะวิ่งออกทาง 3bb_link3
ตามที่เราได้กำหนดไว้ จะไม่วิ่งแบบสุ่ม
พอจะเข้าใจการทำงานไหมครับ ถ้าเข้าใจแล้ว ให้กำหนด Route ดังนี้
Routing Mask wan1 Distance 2 ให้ออกเส้น 3bb_link2
Routing Mask wan2 Distance 2 ให้ออกเส้น 3bb_link3 (ทำไปแล้ว)
Routing Mask wan3 Distance 2 ให้ออกเส้น 3bb_link2
Routing Mask wan1 Distance 3 ให้ออกเส้น 3bb_link3
Routing Mask wan2 Distance 3 ให้ออกเส้น 3bb_link1
Routing Mask wan3 Distance 3 ให้ออกเส้น 3bb_link1
ก็จะได้ออกมาเป็น
(http://www.hadyaiinternet.com/images/mt/106.png)
เมื่อเสร็จแล้ว ก็ลองทำความเข้าใจ แล้วทดสอบดูว่า ในกรณีต่าง ๆ การทำงานจะเป็นอย่างไร
ถ้า wan1 down ถ้า wan2 down ถ้า wan3 down
ถ้า wan1,wan2 down
ถ้า wan1,wan3 down
ถ้า wan2,wan3 down
จะเป็นอย่างไร ลองศึกษาดูต่อนะครับ
=================================
ต่อไปเรื่องการ forward port
การ forward port นั้นจะทำใน IP->Firewall ในส่วนของ NAT
การ forward port มี 2 บรรทัด คือ การเปลี่ยน dst-nat และเปลี่ยน src-nat
1. ถ้าเรียกใช้งานเข้ามาทาง Internet ผ่าน WAN ก็จะใช้วิธีการ dst-nat ทำการเปลี่ยนปลายทางไปยังเครื่องที่กำหนด
2. ถ้าเรียกใช้งานภายใน Network ผ่าน LAN ก็จะใช้วิธีการ src-nat ทำการเปลี่ยนต้นทางเป็น IP ของ server
ยกตัวอย่างเช่น
ต้องการ forward port 5900 => 192.168.88.100:5900
ก็ทำการ config ดังนี้ เข้าไปเมนู IP->Firewall เลือก แถบ NAT
กด + แถบ General เลือก Chain เป็น dstnat , Protocol เป็น 6 (tcp) , Dst. Port 5900
(http://www.hadyaiinternet.com/images/mt/107.png)
แถบ Extra เลือก Dst. Address Type เป็น local
(http://www.hadyaiinternet.com/images/mt/108.png)
แถบ Action เลือกเป็น dst-nat , To Address เป็น 192.168.88.100 , To Ports เป็น 5900
(http://www.hadyaiinternet.com/images/mt/109.png)
กดปุ่ม Ok ก็จะได้ dst-nat มา 1 บรรทัด
(http://www.hadyaiinternet.com/images/mt/110.png)
ต่อไปสร้าง src-nat ขึ้นมาอีกบรรทัด
(http://www.hadyaiinternet.com/images/mt/111.png)
กด + แถบ General เลือก Chain เป็น srcnat , Src. Address เป็น 192.168.88.0/24
Dst. Address เป็น 192.168.88.100 , Protocol เป็น 6 (tcp) , Dst. Port 5900
(http://www.hadyaiinternet.com/images/mt/112.png)
แถบ Action เลือก Action เป็น src-nat , To Addresses เป็น 192.168.88.1 กดปุ่ม Ok
(http://www.hadyaiinternet.com/images/mt/113.png)
ก็จะได้ srcnat มา 1 บรรทัด เป็นอันเรียบร้อยสำหรับการทำ Port Forwarding
สามารถใช้งานได้ทั้งในร้าน และ นอกร้าน ได้อย่างไม่มีปัญหา
-
ต่อไป จะมาอธิบายถึงการทำ load balance ในกรณีที่ internet แต่ละเส้นความเร็วไม่เท่ากัน
ยกตัวอย่างเช่น
มี internet ทั้งหมด 3 เส้น ความเร็วไม่เท่ากันเลย
เส้นที่ 1 ความเร็ว 30M
เส้นที่ 2 ความเร็ว 50M
เส้นที่ 3 ความเร็ว 200M
ถ้าในกรณีที่ทั้ง 3 เส้นเท่ากัน เราก็จะแบ่งข้อมูลเป็น 3 ส่วน โดยแบ่งไป เส้นละ 1 ส่วน
แต่ถ้าในกรณีตัวอย่าง เราก็จะทำการแบ่งข้อมูลเป็น 6 ส่วน
โดยให้
เส้นที่ 1 30M 1 ส่วน
เส้นที่ 2 50M 1 ส่วน
เส้นที่ 3 200M 4 ส่วน
มาดูวิธีการ config กัน
(http://www.hadyaiinternet.com/images/mt/114.png)
ยกตัวอย่างการ load balance แบบ both addresses and ports ก็แบ่งออกเป็น 6 ส่วน
ก็จะได้เป็น 6/0 ชื่อ both1 , 6/1 ชื่อ both2 .... 6/5 ชื่อ both6
เมื่อแบ่งกลุ่มได้มาเป็น 6 กลุ่มแล้ว ต่อไปก็ทำการจัดเส้นทางให้แต่ละกลุ่ม
(http://www.hadyaiinternet.com/images/mt/115.png)
ก็จะเห็นว่า mark_route จะให้ both1 ออกทาง wan1 , both2 ออกทาง wan2 และ both3-both6 ออกทาง wan3
เป็นไงครับ การโหลดบาลานซ์แบบความเร็วไม่เท่ากัน ก็สามารถจัดการได้
================
และในส่วนของ default route ก็สามารถปรับ อัตราส่วนได้เช่นกัน (คล้ายๆกับ weight ใน Ubuntu)
(http://www.hadyaiinternet.com/images/mt/116.png)
ตัวอย่างก็จะเป็น
3bb_link1 weight 1
3bb_link2 weight 1
3bb_link3 weight 4
เป็นต้น