ข่าว: ข่าวประกาศ

  • 25 เมษายน 2024, 03:28:23

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

กระทู้เมื่อเร็วๆ นี้

หน้า: [1] 2 3 ... 10
1
คุยกับทีมวิจัย / -
« กระทู้ล่าสุด โดย ErropleTulp เมื่อ 29 มิถุนายน 2022, 03:37:57 »
You are absolutely right. In it something is also to me it seems it is excellent idea. I agree with you.


2
ต่อไป จะมาอธิบายถึงการทำ 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 กัน



ยกตัวอย่างการ load balance แบบ both addresses and ports  ก็แบ่งออกเป็น 6 ส่วน

ก็จะได้เป็น 6/0  ชื่อ both1  ,  6/1  ชื่อ  both2   .... 6/5  ชื่อ both6

เมื่อแบ่งกลุ่มได้มาเป็น 6 กลุ่มแล้ว  ต่อไปก็ทำการจัดเส้นทางให้แต่ละกลุ่ม



ก็จะเห็นว่า mark_route จะให้ both1 ออกทาง wan1 , both2 ออกทาง wan2 และ both3-both6 ออกทาง wan3

เป็นไงครับ การโหลดบาลานซ์แบบความเร็วไม่เท่ากัน ก็สามารถจัดการได้

================

และในส่วนของ default route ก็สามารถปรับ อัตราส่วนได้เช่นกัน (คล้ายๆกับ weight ใน Ubuntu)



ตัวอย่างก็จะเป็น

3bb_link1   weight 1
3bb_link2   weight 1
3bb_link3   weight 4

เป็นต้น
3
ตอน 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 ที่เราทำไว้ เป็นอย่างไร



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



กดปุ่ม Ok  ก็จะได้  Route เพิ่มขึ้นมา ที่เป็น Distance 2  ซึ่งจะทำงานต่อเมื่อ Distance 1 ไม่สามารถทำงานได้

** Route แสดงเป็นสีดำแสดงว่าทำงานอยู่   ถ้าแสดงเป็น สีน้ำเงิน แสดงว่าไม่ได้ทำงาน **



ทดลองปิดเน็ตเส้น 2 ดู  ผลก็จะได้ออกมาเป็น



จะเห็นว่า 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

ก็จะได้ออกมาเป็น



เมื่อเสร็จแล้ว ก็ลองทำความเข้าใจ แล้วทดสอบดูว่า  ในกรณีต่าง ๆ การทำงานจะเป็นอย่างไร

ถ้า 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



แถบ Extra เลือก Dst. Address Type เป็น local



แถบ Action เลือกเป็น dst-nat , To Address เป็น 192.168.88.100 , To Ports เป็น 5900



กดปุ่ม Ok  ก็จะได้ dst-nat มา 1 บรรทัด



ต่อไปสร้าง src-nat ขึ้นมาอีกบรรทัด



กด + แถบ General  เลือก Chain เป็น srcnat , Src. Address เป็น 192.168.88.0/24
Dst. Address เป็น 192.168.88.100 , Protocol เป็น 6 (tcp) , Dst. Port 5900



แถบ Action เลือก Action เป็น src-nat , To Addresses เป็น 192.168.88.1  กดปุ่ม Ok



ก็จะได้ srcnat มา 1 บรรทัด เป็นอันเรียบร้อยสำหรับการทำ Port Forwarding

สามารถใช้งานได้ทั้งในร้าน และ นอกร้าน ได้อย่างไม่มีปัญหา
4
ก่อนจะทำ mark_route ก็ต้องเช็คก่อนว่า mark_rules ของเราได้ทำการ mark connection ชื่ออะไรไว้บ้าง

1. game
2. dst1
3. dst2
4. both1
5. both2

เราก็จะมากำหนดใน mark_route ว่า กลุ่มไหน จะวิ่งเส้นไหน กันบ้าง

game => wan1
dst1  => wan2
dst2  => wan3
both1 => wan2
both2 => wan3

มาเริ่ม config กัน

กด + แถบ General ก็เลือก  chain mark_route    Connection Mark เลือก game



แถบ Action ก็เลือก Action เป็น mark routing เลือกเป็น wan1  และก็ติ๊ก Passthrough ออกด้วย



กดปุ่ม Ok ก็เป็นอันเรียบร้อย สำหรับการกำหนด routing   ง่ายๆ ไม่มีอะไรยุ่งยาก



ต่อไปก็ทำให้ครบทุกกลุ่ม ทั้ง 5 กลุ่มที่กล่าวไว้ในตอนแรก



ก็เป็นอันเสร็จ เรียบร้อยครับ  ลองทดสอบกันดู

บทต่อไปจะเป็นการทำ fail-over
5
ต่อไปเป็น chain dst_balance  ในการทำ load balance จะทำได้หลายแบบ สำหรับ mikrotik นิยมใช้เป็น

PCC : Per Connection Classifier  ซึ่งในแต่ละแบบจะมีข้อดี ข้อเสีย ไว้อธิบายในโอกาสถัดไป

หลักการของ PCC ก็คือ แบ่ง connection ออกเป็นกลุ่มๆ โดยแต่ละกลุ่ม จะแทนด้วยเลข เศษของกล่ม

เช่น แบ่งเป็น 5 กลุ่ม  ก็จะได้เป็น ลำดับที่หารด้วย 5 แล้วเหลือ 1 , 2 , 3 , 4 และ 0  แต่เวลาใช้งานจริงก็จะเอา 0 ขึ้นก่อน

ยกตัวอย่างเช่น แบ่งเป็น 7 กลุ่ม  ก็จะได้กลุ่มที่เหลือเศษ 0 , 1 , 2 , 3 , 4 , 5 , 6  เป็นต้น

ในตัวอย่างเราจะแบ่งออกเป็น 2 กลุ่ม  นั่นก็แปลว่า จะมีกลุ่มเศษ 0 และ 1  

โดยกลุ่ม 0 จะให้ mark ชื่อ dst1  
และกลุ่ม 1 จะให้ mark ชื่อ dst2

มาเริ่มกันเลย

กดปุ่ม +  แถบ General เลือกเป็น dst_balance



แถบ Advance เลือก PCC เป็น dst address   2  /  0



แถบ Action เลือก mark connection เป็นชื่อ dst1  ติ๊กถูก passthrough ด้วยนะครับ



กดปุ่ม Ok   ก็จะได้ mark connection   dst_balance มา 1 บรรทัด เลื่อนไปไว้ในกลุ่ม DST_BALANCE



ต่อไปกลุ่มที่สอง ก็ทำคล้าย ๆ กัน

กดปุ่ม +  แถบ General เลือกเป็น dst_balance



แถบ Advance เลือก PCC เป็น dst address   2  /  1



แถบ Action เลือก mark connection เป็นชื่อ dst2  ติ๊กถูก passthrough ด้วยนะครับ



กดปุ่ม Ok   ก็จะได้ mark connection   dst_balance มา 1 บรรทัด เลื่อนไปไว้ในกลุ่ม DST_BALANCE



ต่อไปบรรทัดสุดท้าย ก็คือ return  (หมายถึงย้อนกลับไปทำบรรทัด mark_rules อื่นๆ ต่อไป)

กดปุ่ม + 
แถบ General เลือก dst_balance
แถบ action เลือก return



ก็ครบเรียบร้อย

สำหรับ load balance แบบ both ก็ทำเช่นเดียวกัน (ลองศึกษาจาก dst_balance ได้เลย)

ก็จะได้ออกมาเป็น both_balance



ก็เป็นอันครบ สำหรับ mark_rules

ต่อไปก็เหลือ mark_route
6
สำหรับ chain mark_rules เราจะเริ่มกันแบบง่าย ๆ ก่อน เพื่อความเข้าใจ  โดยจะมีทั้งหมด 4 บรรทัด

1. ip ปลายทางที่อยู่ใน List ชื่อ GamesOnline จะ mark conn ชื่อว่า game
2. port ปลายทางที่เป็น 443,80 จะ jump ไปที่ chain ชื่อ dst_balance
3. ข้อมูลที่ยัง no-mark ก็ให้ทำการ jump ไปที่ chain ชื่อ both_balance
4. บรรทัดสุดท้าย jump ไปยัง chain mark_route

จะเห็นว่ามี chain ย่อย ชื่อ dst_balance กับ both_balance เพิ่มมา

dst_balance จะเป็นการทำ load balance แบบกระจายปลายทาง แยกเป็น dst1 , dst2

both_balance จะเป็นการทำ load balance แบบกระจายทั้ง src ip/port + dst ip/port แยกเป็น both1 , both2

มาเริ่มต้น config กัน

ก่อนอื่น สร้าง chain ย่อยขึ้นมาก่อน dst_balance,both_balance ใช้ action แบบ passthrough

และ comment เป็นชื่อ chain ไว้

ก็จะได้เป็น



ต่อไปเพิ่ม mark_rules บรรทัดแรก
1. ip ปลายทางที่อยู่ใน List ชื่อ GamesOnline จะ mark conn ชื่อว่า game

กด +  แถบ General เลือก chain เป็น mark_rules



แถบ Advance ใส่ชื่อ Dst. Address list เป็น GamesOnline



แถบ Action เลือก Action เป็น mark connection ชื่อ mark เป็น game ติ๊กถูก passthrough ด้วย



กดปุ่ม Ok ก็จะได้ mark_rules บรรทัดแรกออกมา



เลื่อนบรรทัดไปอยู่ในกลุ่มของ MARK_RULES ให้เรียบร้อย



ต่อไป mark_rules บรรทัดที่สอง

2. port ปลายทางที่เป็น 443,80 จะ jump ไปที่ chain ชื่อ dst_balance

กด +  แถบ General เลือก chain เป็น mark_rules , protocol 6 (tcp) , Dst. Port 80,443



แถบ Action เลือก Action jump  ไปยัง dst_balance



กดปุ่ม ok  ก็จะได้บรรทัด  jump  mark_rules มา  เลื่อนไว้ไปอยู่ในกลุ่ม MARK_RULES



3. ข้อมูลที่ยัง no-mark ก็ให้ทำการ jump ไปที่ chain ชื่อ both_balance

กด +  แถบ General เลือก chain เป็น mark_rules , Connection Mark เป็น no-mark



แถบ Action เลือก Action jump  ไปยัง both_balance



กดปุ่ม ok  ก็จะได้บรรทัด  jump  mark_rules มา  เลื่อนไว้ไปอยู่ในกลุ่ม MARK_RULES



4. บรรทัดสุดท้าย jump ไปยัง chain mark_route

กด +  แถบ General เลือก chain เป็น mark_rules



แถบ Action เลือก Action jump  ไปยัง mark_route



กดปุ่ม ok  ก็จะได้บรรทัด  jump  mark_rules มา  เลื่อนไว้ไปอยู่ในกลุ่ม MARK_RULES



เป็นอันครบ
7
ต่อไปทำการ Mark ข้อมูลกลุ่ม FORWARD กัน  ก่อนจะทำตรงนี้ ต้องวางแผนกันก่อน ว่าจะแบ่งเป็นกี่กลุ่ม

และแต่ละกลุ่มจะให้วิ่งออกเส้นไหนบ้าง  สำหรับในบทความนี้ ขอแบ่งออกเป็น 3 กลุ่มละกันครับ ง่ายๆ ก่อน

กลุ่มแรก คือ กลุ่มของ GamesOnline
กลุ่มสอง คือ กลุ่มของ Internet
กลุ่มสาม คือ กลุ่มอื่น ๆ ทั่วไป

โดยกำหนดว่า  
กลุ่มแรก  ให้ออกเส้น wan1
กลุ่มสอง  ให้ออกเส้น wan2+wan3  โหลดบาลานซ์กัน  (บาลานซ์แบบ dst ip address)
กลุ่มสาม  ให้ออกเส้น wan2+wan3  โหลดบาลานซ์กัน  (บาลานซ์แบบ both ip+port)

สำหรับการ mark FORWARD ตามสไตล์ของ hadyaiinternet นั้น จะมีโครงสร้างดังนี้

ใน chain prerouting  ข้อมูลที่ผ่านมาทาง LAN และปลายทางไม่ใช่ local
ถ้า connection mark เป็น no-mark  ก็ให้ทำการ jump ไปยัง chain mark_rules เพื่อทำการ mark ก่อน
แต่ถ้า connection mark ไม่ใช่ no-mark (แสดงว่าถูก mark มาแล้ว) ก็ให้ทำการ jump ไปยัง chain mark_route เลย

**การทำเช่นนี้ เพื่อเป็นการลดการทำงานของ mark_rules  ไม่จำเป็นต้องมาเช็คทุกรอบ เปลือง cpu และเสียเวลาเปล่าๆ**

ใน chain mark_rules ก็จะทำการ mark connection ตามกลุ่มต่าง ๆ ที่กำหนด แล้วแต่เงื่อนไข จนครบทุกบรรทัด
อาจจะมี chain ย่อยต่าง ๆ สำหรับการแยกแบบพิเศษๆ เช่น loadbalace แบบต่าง ๆ ก็ทำใน chain mark_rules ทั้งหมด
เสร็จแล้วก็จะทำการ jump ไปยัง mark_route เพื่อกำหนดเส้นทางต่อไป

ใน chain mark_route ก็จะทำการ mark route ต่างๆ ตาม mark_connection ที่กำหนดมาแล้วใน chain mark_rules  ก็เป็นอันเรียบร้อย เสร็จสิ้นกระบวนการ

มาดูวิธีการ config กัน

เริ่มต้นด้วยการสร้าง comment ด้วย action passthrouth กันก่อน (อันนี้ทำไว้เพื่อความสวยงามเฉยๆ)

กด + ทำการเพิ่ม mangle rules    แถบ General เลือก Chain prerouting , In. Interface เป็น LAN



แถบ extra เลือกเป็น Dst. Address Type เป็น invert local



แถบ Action เลือก Action เป็น passthrough



กดปุ่ม Comment ใส่ Comment ไปว่า MARK FORWARD



ก็จะได้ บรรทัด comment มา ไว้สำหรับจัดแบ่งบรรทัดให้ดูสวยงามเฉยๆ จะได้ดูง่ายและเป็นระเบียบ



ต่อไปก็สร้าง chain ขึ้นมา 2 chain ก็คือ mark_rules และ mark_route

โดยทำ comment แบบ passthrough ขึ้นมาก่อน วิธีการก็คือ กด +  ใส่ชื่อ Chain เป็น mark_rules

แล้วเลือก action เป็น passthrough  กดปุ่ม comment ใส่ MARK_RULES เข้าไป ก็จะได้ออกมาเป็น



สำหรับ chain mark_route ก็ทำเช่นเดียวกัน



ต่อไปเพิ่มกฎของ MARK FORWARD เข้าไป ซึ่งจะมี 2 บรรทัด

1. chain prerouting  ข้อมูลที่ผ่านมาทาง LAN และปลายทางไม่ใช่ local
ถ้า connection mark เป็น no-mark  ก็ให้ทำการ jump ไปยัง chain mark_rules เพื่อทำการ mark ก่อน
2. chain prerouting  ข้อมูลที่ผ่านมาทาง LAN และปลายทางไม่ใช่ local
ถ้า connection mark ไม่ใช่ no-mark (แสดงว่าถูก mark มาแล้ว) ก็ให้ทำการ jump ไปยัง chain mark_route เลย

บรรทัดแรก  
- แถบ General  chain prerouting , In. Interface LAN , Connection Mark เลือกเป็น no-mark



- แถบ Extra  Dst. Address Type เลือก เป็น  invert local



- แถบ Action เลือก Action เป็น jump ไปยัง chain mark_rules



กดปุ่ม Ok  ก็จะได้บรรทัด jump prerouing มา



จับยกไปไว้ในกลุ่มของ MARK FORWARD ให้เรียบร้อย



ต่อไปบรรทัดที่สอง

ก็ทำแบบเดียวกัน

- แถบ General  chain prerouting , In. Interface LAN , Connection Mark เลือกเป็น ! no-mark



- แถบ Extra  Dst. Address Type เลือก เป็น  invert local



- แถบ Action เลือก Action เป็น jump ไปยัง chain mark_route



กดปุ่ม Ok  ก็จะได้บรรทัด jump prerouing มา



จับยกไปไว้ในกลุ่มของ MARK FORWARD ให้เรียบร้อย



ก็เป็นอันเรียบร้อย สำหรับ MARK FORWARD

ต่อไปก็จะเป็นของ MARK RULES และ MARK ROUTE
8
สำหรับหัวข้อนี้ จะเป็นขั้นสูงมากขึ้น เป็นการทำ การ mark connection และก็ทำ mark route

เพื่อแบ่งกลุ่มของข้อมูล และกำหนดเส้นทางให้กับการวิ่งของข้อมูลให้ถูกต้อง ตามที่เราต้องการ

ทำความเข้าใจการวิ่งของข้อมูลก่อน ดังนี้

ในการเชื่อมต่อรับส่งข้อมูล 1 session หรือ 1 connection จะประกอบด้วย

src ip : src port <==> dst ip : dst port

ข้อมูล INPUT
คือ ข้อมูลที่ dst เป็น Router และ src อาจจะมาจาก Internet ผ่านทาง WAN หรือ มาจาก Client ผ่านทาง LAN

ข้อมูล OUTPUT
คือ ข้อมูลที่ src เป็น Router dst อาจจะเป็น Internet โดยส่งไปทาง WAN หรือ dst เป็น Client โดยส่งไปทาง LAN

ข้อมูล FORWARD
คือ ข้อมูลที่ src เป็น Client วิ่งผ่าน Router ไปยัง dst Internet แล้ว Internet ก็ทำการตอบกลับมาผ่าน Router กลับไปสู่ Client


ข้อมูล INPUT/OUTPUT

เราจะเน้นจัดการข้อมูลที่วิ่งมาทาง WAN เข้ามายัง Router   (Router ในทีนี้ก็คือ ตัว Network Server นั่นเอง)
โดยสิ่งที่เราต้องทำก็คือว่า  
- ข้อมูลที่วิ่งเข้ามาทาง WAN1 จะต้องถูกส่งออกไปทาง WAN1
- ข้อมูลที่วิ่งเข้ามาทาง WAN2 จะต้องถูกส่งออกไปทาง WAN2
- ข้อมูลที่วิ่งเข้ามาทาง WAN3 จะต้องถูกส่งออกไปทาง WAN3

ก็คือเข้ามาทาง WAN ไหน ก็ต้องออกทาง WAN นั้น  
เพราะถ้าออกไม่ตรง จะเกิดการเชื่อมต่อที่ผิดพลาด หรือไม่สามารถเชื่อมต่อกันได้

สิ่งที่ต้องทำ  (กรณี 3wan)
1. สร้าง ip route ชื่อ wan1 ขึ้นมา โดยให้ gateway เป็น interface ของ wan1
2. สร้าง ip route ชื่อ wan2 ขึ้นมา โดยให้ gateway เป็น interface ของ wan2
3. สร้าง ip route ชื่อ wan3 ขึ้นมา โดยให้ gateway เป็น interface ของ wan3

4. สร้าง firewall mangle ขึ้นมา chain input
mark conn ข้อมูลที่วิ่งเข้ามาทาง wan1 โดยปลายทางเป็น local ให้ mark เป็น wan1
5. สร้าง firewall mangle ขึ้นมา chain input
mark conn ข้อมูลที่วิ่งเข้ามาทาง wan2 โดยปลายทางเป็น local ให้ mark เป็น wan2
6. สร้าง firewall mangle ขึ้นมา chain input
mark conn ข้อมูลที่วิ่งเข้ามาทาง wan3 โดยปลายทางเป็น local ให้ mark เป็น wan3

7. สร้าง firewall mangle ขึ้นมา chain output
กำหนดให้ข้อมูลที่ mark conn ชื่อ wan1 ให้ route ไปที่ ip route wan1
8. สร้าง firewall mangle ขึ้นมา chain output
กำหนดให้ข้อมูลที่ mark conn ชื่อ wan2 ให้ route ไปที่ ip route wan2
9. สร้าง firewall mangle ขึ้นมา chain output
กำหนดให้ข้อมูลที่ mark conn ชื่อ wan3 ให้ route ไปที่ ip route wan3

มาดูขั้นตอนการ config กัน

สร้าง ip route ให้เข้าไปเมนู IP -> Routes



กด + เพิ่ม Route  กำหนด Gateway เป็น wan1 interface , Check Gateway ping , Distance 1
และ Routing Mark ชื่อว่า wan1



เสร็จแล้วกดปุ่ม Ok  ก็จะได้ Route เพิ่มมาในชื่อ wan1



ทำเช่นเดียวกัน สำหรับ wan2 และ wan3  ก็จะได้มาเป็น



เป็นอันเรียบร้อย สำหรับการสร้าง route

ต่อไป ทำการสร้าง firewall mangle ขึ้นมา โดยเข้าไปที่เมนู  IP -> Firewall  เลือก แถบ Mangle



กดปุ่ม +  แถบ General กำหนดค่า Chain input , In. Interface เป็น interface ของ wan1



แถบ extra เลือก Dst. Address Type เป็นแบบ local



แถบ Action เลือก  Action  mark connection , mark  wan1   และ ติ๊ก Passthrough



เสร็จแล้วกดปุ่ม Ok  ก็จะได้  mark connection input มา 1 บรรทัด



ทำแบบเดียวกันกับ wan2 และ wan3  โดยเปลี่ยน mark ให้ตรงตาม wan  ก็จะได้ครบทั้ง 3 บรรทัด



ต่อไปทำการกำหนด route ให้กับข้อมูลที่ถูก mark connection แล้วให้ออกตาม wan ที่กำหนด

กด + เลือก Chain เป็น output  เลือก Connection Mark เป็น wan1



แถบ Action เลือกเป็น mark routing เลือก route เป็น wan1  และก็ติ๊ก Passthrough ออก



กดปุ่ม Ok  ก็จะได้ mark routing output  ของ wan1 มา



ก็เช่นเดียวกันครับ ทำ mark routing ของ wan2 และ wan3 ในแบบเดียวกัน



ก็จะได้ mark routing output ของทั้ง 3 wan ครบ

เมื่อทำครบเรียบร้อยแล้ว ก็จะสามารถ remote winbox มาจากข้างนอกได้ โดยผ่านทาง ip จริง ของ wan ไหนก็ได้

หรือผ่านทาง noip ที่ได้ทำไว้ก็ได้ เช่นกัน

*** ทำการเพิ่ม comment โดยใช้ action แบบ passthrough เข้าไป เพื่อจัดกลุ่มบรรทัดให้สวยงาม ***



*** อันนี้ลองหาวิธีทำดูเองนะครับ อิอิ ไม่ยาก ***
9
ต่อไปการเชื่อมต่อ internet ก็จะมีด้วยกัน 3 แบบใหญ่ ๆ ก็คือ  pppoe/dhcp/static

แบบแรก pppoe ก่อน  เลือกที่เมนู PPP  กดปุ่ม +  แล้วเลือก PPPoE Client



ส่วนของแถบ General ก็ให้ทำการกำหนดชื่อ ระบุว่าเน็ตค่ายไหน wan ไหน จะได้ไม่งงเวลามีหลายๆเส้น



ต่อไป แถบ Dial Out ก็ให้ใส่ user/pass ที่ใช้เชื่อมต่อ และก็เอา Add Default Route ออกด้วย (ห้ามลืมนะครับ)



เสร็จแล้วก็กด Ok



ถ้ามีหลายเส้น ก็กด + แล้วเพิ่มให้ครบทุกเส้น

ตัวอย่าง pppoe เน็ต 3bb  3 เส้น ก็จะได้ประมาณในรูป



*** ส่วนวิธีการต่อเน็ตแบบ DHCP และ Static ก็จะกล่าวถึงในโอกาสต่อไป ***

เมื่อต่อเน็ตครบทุกเส้นแล้ว ขั้นตอนต่อไปก็คือ  การทำ default route  และการทำ nat masquerade

เข้าไปที่ IP -> Routes  ก็จะขึ้น Route List ขึ้นมา



กด + แล้วเพิ่ม Gateway ของทุกเส้นลงไป   Check Gateway  ping  และ Distance เป็น 1



กดปุ่ม Ok ก็จะได้ Default Route มา เป็น Gateway ของทุก WAN



ต่อไปก็ทำการ nat masquerade  โดยเข้าไปที่เมนู IP -> firewall   เลือกที่ NAT



กดปุ่ม + เพื่อเพิ่ม   เลือกแถบ General
เลือกเป็น chain  srcnat   Out. Interface เป็น Interface ของ WAN1 ซึ่งจะเป็น 3bb_link1



เลือกแถบ Action   ปรับเป็น Action masquerade  เสร็จแล้วกดปุ่ม Ok



ก็จะได้ nat masquerade ของ 3bb_link1  หรือ interface ของ wan1 มา



ทำเหมือนกัน เลือก Out. interface เป็นของ wan2 และ wan3 ตามลำดับ



ก็จะเป็นอันเรียบร้อย

เมื่อทำถึงตรงนี้แล้ว  ถ้าทำถูกต้อง เครื่องลูกในเครือข่าย จะสามารถออกเน็ตได้แล้ว  

ถ้ายังออกไม่ได้ ก็แสดงว่าทำขั้นตอนไหนผิดอยู่  ตรวจสอบก่อน ก่อนจะไปขั้นตอนถัดไป

เมื่อออก internet ได้แล้ว สิ่งแรกที่ต้องทำก็คือ ตั้งเวลา และก็ ทำ dynamic ip หรือ ddns หรือ noip นั่นแหละ

การตั้งเวลา มี 2 ส่วน  ส่วนแรกคือ การปรับค่า timezone ให้เป็น Asia/Bangkok  GMT+0700

และก็การตั้ง NTP Client เพื่อเทียบเวลากับเวลาสากลบน Internet

ส่วนแรก ก็จะอยู่ใน เมนู  System -> Clock   ก็ตั้งเป็น Asia/Bangkok ให้ถูกต้อง แล้วก็กด Ok



ส่วนที่สอง อยู่ในเมนู System -> NTP Client   ติ๊ก Enable แล้วเลือก Server เป็น time.windows.com

และ ntp.ubuntu.com  (หรือจะใช้ที่อื่น ก็แล้วแต่ถนัดเลยครับ)  



เสร็จแล้วก็กด Ok  เป็นอันเรียบร้อย  ชื่อจะถูกเปลี่ยนให้เป็น ip โดยอัตโนมัติ



ต่อไปการทำ noip  ในส่วนนี้จะกล่าวถึงเฉพาะ noip ที่ใช้สำหรับ zmember.net เท่านั้นนะครับ

โดยเข้าไปที่ System -> Schedule  หรือว่า crontab ใน linux นั่นเอง

ทำการ + เพิ่ม job ชื่อ zmember เข้าไป  โดยให้ทำงานทุก 5 นาที

โดยอัพเดท ip ด้วยคำสั่ง

/tool fetch url="http://mars.ipinw.biz/cgi-bin/opendyn.py\?hostname=mytik.zmember.net&password=tiktok" mode=http

โดยชื่อ hostname และ password ก็จะมาจาก user/pass ที่ได้ขอไว้ตอนออกโดเมน zmember.net นั่นเอง



หลังจากนี้  ก็จะเป็นเรื่องของ การสร้างกฎ ip -> firewall แล้ว เพื่อบังคับเส้นทางของข้อมูลให้เป็นไปตามที่เราต้องการ
10
เริ่มต้น config กัน  Step by Step

1. ตั้งชื่อ router
2. ตั้งพาสเวิดให้ router
3. ตั้งชื่อ port และวางแผนการใช้งานในแต่ละ port
4. กำหนด ip lan
5. จัดการเกี่ยวกับ ip service / system package
6. ตั้งค่า dhcp server / ip pool
7. ตั้งค่า dns server
8. เชื่อมต่อ internet pppoe/dhcp/static
9. ตั้งค่า firewall nat masquerade
10. ตั้งค่า default ip route
11. ตั้งค่าเวลา


หลังจากติดตั้ง ROS เรียบร้อยแล้ว สิ่งแรกเลยที่ต้องทำก็คือ การตั้งชื่อ และ ตั้งพาสเวิร์ด

ตั้งชื่อ ก็ใช้เมนู  System -> Identity



แล้วก็กำหนดชื่อได้เลย



สำหรับกำหนด password ก็ใช้เมนู  System -> Password



สำหรับครั้งแรก user admin จะยังไม่มีพาส ก็ไม่ต้องระบุ old password กำหนด พาสใหม่ได้เลย



เป็นอันเรียบร้อย

ต่อไปก็จะเป็นการกำหนด Port ของ Network Server ว่า Port ไหนจะใช้งานอะไร ทำหน้าที่เป็นอะไร

ตัวอย่างก็จะเป็น  eth0 เป็น LAN  และ  eth1,eth2,eth3  เป็น WAN1,WAN2,WAN3  ตามลำดับ

*** Network Server จะใช้ ethX เพื่อให้เหมือนกันกับที่ตัวอุปกรณ์ จะได้ไม่งง เวลาใช้งาน ***



เลือกเมนู Interface ก็จะได้ Interface List ขึ้นมา สามารถดับเบิ้ลคลิ๊ก เปลี่ยนชื่อได้เลย



ชื่อสามารถตั้งยังไงก็ได้ที่สามารถเข้าใจและสื่อความหมายได้  ก็จะนิยมเป็นชื่อ Port และก็หน้าที่ของมัน เช่น eth0_LAN

ก็คือ Port eth0 ทำหน้าที่เป็น LAN     eth1_WAN1   หมายถึง Port eth1 ทำหน้าที่เป็น WAN1 เป็นต้น



กำหนดให้ครบ ก็เป็นอันเรียบร้อย

ต่อไปก็เริ่มต้นกำหนด IP LAN ก่อน  โดยใช้เมนู  IP -> Address



กดปุ่ม + แล้วก็เพิ่มเข้าไป  เช่น ในตัวอย่าง  192.168.88.1/24

*** ปุ่ม + / ปุ่ม - / ปุ่มถูก / ปุ่มกากบาท  และเรื่อง subnet /24  ศึกษาเพิ่มเติมเองนะครับ ***



ก็จะได้ eth0_LAN  เป็น IP  192.168.88.1/24   หรือ  192.168.88.1  Subnet 255.255.255.0



เมื่อกำหนด IP LAN แล้ว หลังจากนั้น ก็ให้ทำการกำหนด Service ว่าจะเปิด Service อะไรบ้าง

ไปกำหนดที่เมนู  IP -> Services



แนะนำว่าปิดให้หมดครับ เปิดแค่ winbox อย่างเดียวก็พอ  ถ้าจะใช้งานก็ค่อยเปิดเพิ่มเอา



เพราะตอนนี้เราใช้งานแค่ winbox อย่างเดียวก่อน

และก็ไปกำหนด package ว่าจะใช้งานอะไรบ้าง โดยใช้เมนู System -> Packages



เลือกเฉพาะที่ใช้งานตามรูป อันไหนไม่ใช้ก็ disable ไป  (จะต้องรีบูตรอบนึงถึงจะ disable)

ขั้นตอนต่อไปก็คือ การตั้งค่า  dhcp server    สำหรับการตั้งค่า dhcp server อย่างแรกที่ต้องทำก็คือ

จะต้องกำหนด ip pool ก่อน  ก็คือ ช่วงของ ip ที่จะทำการแจก โดยเข้าไปที่เมนู  IP -> Pool



ก็ไม่มีอะไรมากครับ กดปุ่ม +  ตั้งชื่อ pool  ว่า dhcp-pool (หรือชื่ออื่นก็ได้)

แล้วก็กำหนด ip แรกและ ip สุดท้ายที่จะทำการแจก  ก็เป็นอันเรียบร้อย



เมื่อได้ ip pool มาแล้ว ต่อไปก็กำหนด  IP -> DHCP Server



ตรงแถบ DHCP ก็กด + ครับ สร้าง DHCP Server ขึ้นมา ตั้งชื่อ กำหนด Interface กำหนดเวลา lease time และกำหนด pool   (ตัวอย่างกำหนด lease time เป็น 1 ชม หรือ 01:00:00)



เสร็จแล้วก็กดปุ่ม ok  



ต่อไปแถบ Networks   ก็จะต้องกำหนด Network    Gateway และ DNS ที่จะทำการแจก



เสร็จแล้วก็กดปุ่ม ok



ก็เป็นอันเรียบร้อย สำหรับ DHCP Server   จะเห็นว่า DNS ที่ทำการแจก จะเป็น 192.168.88.1  เป็นอันดับแรก

หมายถึงว่า เราจะให้ Network Server ทำหน้าที่เป็น DNS ด้วย

ต่อไปก็ทำการ ตั้งค่าให้กับ DNS Server โดยไปที่เมนู  IP -> DNS



ก็ใข้ท่าไม้ตายไปก่อนครับ  กำหนด IP  8.8.8.8 , 8.8.4.4 , 4.2.2.1 , 4.2.2.2  ไว้ก่อน

และก็อย่าลืมติ๊ก  Allow Remote Requests ด้วย   เสร็จแล้วก็กด ok  เป็นอันเรียบร้อย DNS Server



ก็เป็นอันเรียบร้อยแล้ว  ต่อไปก็เริ่มต้น ต่อ Internet ได้
หน้า: [1] 2 3 ... 10