CCNP-การ Redistribute Route หรือการโยน Route ระหว่าง Routing Protocol คนละชนิดกัน


ก่อนที่จะกล่าวถึงรายละเอียดของการ redistribute route ระหว่าง routing protocol ที่แตกต่างกันนั้น ผมขออ้างถึงบทความเก่า บทความหนึ่ง นั่นก็คือ 
OSPF process id บน Cisco router ตอนที่ 3: ตอน 1 network 2 routing protocol (EIGRP and OSPF)
โดยอ้างถึง URL ตามนี้ครับ
//www.bloggang.com/mainblog.php?id=likecisco&month=23-06-2011&group=3&gblog=4

ซึ่งบทความดังกล่าวข้างบน จะเป็นบทความที่เกี่ยวข้องกับ 1 network (network ที่อยู่ภายใต้ 1 AS [Autonomous System] หรือภายใต้การดูแลของ Administrator กลุ่มเดียวกัน) แต่ run 2 routing protocol และโดย default แล้ว routes (หรือ subnet) ระหว่าง routing protocol ทั้งสองที่แตกต่างกัน จะไม่ถูกประกาศ หรือโยนข้ามหากัน โดยในบทความดังกล่าวข้างบน ได้มีการอ้างถึงการ redistribute route  แต่ไม่ได้มีการกล่าวถึงรายละเอียดเอาไว้

ดังนั้นในบทความนี้จะกล่าวถึงเรื่องการ redistribute route ข้ามกันไป ข้ามกันมา ระหว่าง 2 routing protocol (หรือ การประกาศ subnet ข้ามกันระหว่าง routing protocol สอง protocol ที่ต่างกัน) โดย routing protocol ทั้งสองถูกดูแลอยู่ภายใน AS เดียวกัน หรืออยู่ภายใต้การดูแลของ Administrator กลุ่มเดียวกัน 
======================================
Note: ในความเป็นจริงแล้ว routing protocol 1 protocol ในทาง Cisco router แล้ว จะเรียก routing protocol 1 protocol ว่า 1 routing process ซึ่งในกรณีของ routing protocol OSPF แล้ว บน Cisco router มันจะมี routing protocol OSPF ได้หลายๆ process เช่น

R2# show run

router ospf 100
 network X.X.X.X Y.Y.Y.Y area Z
!
router ospf 200
  network A.A.A.A B.B.B.B area C

โดยตัวอย่างที่จะทำให้ท่านเข้าใจในเรื่องของ OSPF process นั้น หากท่านสนใจ ท่านสามารถเข้าไปอ่านได้ที่ 

OSPF process id บน Cisco router ตอนที่ 4 (ตอนจบ): ตอน 1 router 2 OSPF process id


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

เอาล่ะ เรามาเข้าเรื่องของบทความนี้กันครับ!!!

สำหรับเรื่องการ Redistribute Route ผมจะขอยกตัวอย่างโดยมี Router ต่อกันอยู่ 3 ตัว ดังรูปที่ 1 ข้างล่างครับ

รูปที่ 1: แสดงตัวอย่างการ redistribute route ระหว่าง routing protocol 2 protocol (2 IGP domain)


โดยปกติแล้ว R2 จะเห็น routing entries (network) ทั้งหมด (เห็นทั้ง 10.0.0.0/8 และ 172.16.0.0/16) เพราะ ทั้ง R1 และ R3 จะ update routing ไปให้กับ R2

- แต่ R1 จะไม่เห็น subnet 172.16.0.0/16 ที่อยู่ข้างหลัง R3
- และ R3 เอง ก็จะไม่เห็น subnet 10.0.0.0/8 ที่อยู่ข้างหลัง R1 ด้วยเช่นกัน 
- เพราะอะไรน่ะหรือ????

เพราะโดย default แล้ว R2 จะไม่ประกาศ network ที่เรียนรู้มาจาก Routing Protocol (Routing Process) นึง (เช่น ospf) ให้กับอีก Routing Protocol (Routing Process) นึง (เช่น rip) 

แต่ถ้าต้องการให้ R1 เห็น 172.16.0.0/16 และให้ R3 เห็น 10.0.0.0/8 แล้วนั้น เราสามารถทำได้ครับ โดยการ configure ที่ R2 เพิ่มเติมด้วยคำสั่ง redistribute ดังนี้ครับ

บน R2# show run
!
router ospf 100
redistribute rip subnets
!
router rip
redistribute ospf 100 metric 5

router ospf 100
  redistribute rip subnets
คือ ดูด route ของ rip เข้ามาไว้ใน ospf 100 และที่ต้องใส่คำว่า subnets เพราะถ้าไม่ใส่คำสั่งนี้แล้ว R2 จะไม่โยน route ใดๆ ที่เป็นแบบ subnet เข้าไปใน ospf 100 แต่จะทำการเลือกโยนเฉพาะ route ที่เป็นแบบ major network ตาม class เท่านั้นเข้าไปเข้าไปใน ospf 100 และเมื่อเราใช้คำสั่ง show ip route บน R3 แล้วเราจะพบแต่เฉพาะ route ที่เป็นแบบ major network เท่านั้น ดังนั้น เราจึงควรเพิ่มคำสั่ง หรือ option command "subnets" นี้ด้วยทุกครั้งเวลาที่มีการ redistribute routes จาก routing protocol ใดๆ เข้าไปสู่ ospf

ตัวอย่าง กรณีที่เราไม่ได้ใส่ option command "subnets" จะมี message เตือนว่า "% Only classful networks will be redistributed"

R2(config-router)# redistribute rip    
% Only classful networks will be redistributed

router rip
  redistribute ospf 100 metric 5
คือ ดูด route ของ ospf 100 เข้ามาไว้ใน rip และที่ต้องใส่คำว่า metric 5 เพื่อเป็นการ set ค่า metric = 5 ให้กับ route ที่ R2 จะโยนเข้าไปใน rip เพราะถ้าไม่ใส่ คำสั่ง "metric 5" นี้แล้ว R2 จะโยน route ที่ถูกดูดมาจาก ospf 100 เข้าไปสู่ rip network ด้วยค่า metric = infinity (โดย default) ซึ่งท้ายสุดแล้วที่ R1 เมื่อทำการ show ip route command เราจะไม่พบ route ใดๆ (172.16.0.0/16) ที่ถูกโยนมาจาก ospf 100 เลย เนื่องจากกฏของ maximum hop count ของ rip ที่มีค่า metric ได้ไม่เกิน 15 นั่นเอง ดังนั้นจึงควรใช้คำสั่ง "metric 5" หรือ "metric X" เมื่อ X มีค่าน้อยกว่า 15 นี้ด้วยทุกครั้งเวลามีการ redistribute route จาก ospf เข้าไปสู่ rip

สำหรับ Option ของการ Redistribute Route เข้าสู่ OSPF Domain นั้น ท่านสามารถติดตามได้จากบทความตาม URL ข้างล่างนี้ครับ

//www.bloggang.com/mainblog.php?id=likecisco&month=23-10-2011&group=3&gblog=9


โดยปกติแล้วการใช้คำสั่ง redistribute ดังตัวอย่างข้างบน จะเป็นการ redistribute route ทั้งหมดข้ามหากันและกันระหว่างสอง routing protocol ซึ่งในบางครั้ง เราไม่ต้องการ redistribute route ทั้งหมดข้ามหากัน แต่เราต้องการเพียง redistribute บาง route เท่านั้นข้ามไป

ซึ่งในการ redistribute route ก็ยังมี option เพิ่มเติมอีก นั่นก็คือ เราสามารถ filter ได้ว่า route ไหนที่ต้องการจะโยนข้ามไป และ route ไหนที่เราไม่ต้องการจะโยนข้ามไป ซึ่ง option ดังกล่าวมีให้เลือกใช้หลายตัว เช่น route-map และ distribute-list รวมไปถึงเรื่องของการคัดกรอง route ด้วยการใช้ prefix-list หรือใช้ access-list เพื่อที่จะใช้ในการคัดกรองว่า route ไหนบ้างที่เราจะให้ redistribute และ route ไหนบ้างที่เราจะไม่ให้ redistribute ซึ่งเรื่องของการ filter route คงต้องกล่าวกันในบทอื่นครับ

สิ่งที่ต้องพึงระวังในการใช้ command "redistribute"!!!

ด้วยเหตุผลของ High Availability หรือการทำ Redundancy แล้ว การที่มี router เพียงตัวเดียวที่รับผิดชอบในการ redistribute route ระหว่าง routing protocol 2 domain (2 routing protocol หรือ 2 IGP domain) อาจจะมีความเสี่ยงในเรื่องของ Single Point of Failure ซึ่งจากรูปตัวอย่างข้างบน (รูปที่ 1) แล้ว จะเห็นได้ว่า หาก router R2 ได้ failure ลงไปแล้ว จะทำให้การสื่อสารข้ามกันระหว่าง 2 IGP domain (ระหว่าง RIP กับ OSPF) มีความล้มเหลว 

ดังนั้นหลายๆ ท่านก็จะทำ redundancy โดยการเอา router 2 ตัวมาทำหน้าที่ในการ redistribute route ดังภาพตัวอย่างที่ 2 (R2 และ R4 ทำหน้าที่ redistribute route) ซึ่งผลที่ตามมาคือ หากท่านไม่ทำ policy หรือการกรอง route ให้ดี ท่านก็จะพบปัญหาเรื่อง routing loop ตามมาทันที (สังเกต step ที่เป็นวงกลมสี่เขียวขี้ม้า ตั้งแต่ step ที่ 1 ถึง step ที่ 5 แล้วจะวนไปเรื่อยๆ)

รูปที่ 2: แสดงตัวอย่างของ routing loop ที่เกิดจากการใช้ router สองตัวมาทำการ redistribute route 



จากภาพตัวอย่างที่ 2 ที่แสดงปัญหา routing loop แล้ว หากท่าต้องการแก้ปัญหาในเรื่อง routing loop แล้ว ในวิชาที่เกี่ยวกับ routing ในระดับ CCNP จะมีตัวอย่างการทำ policy เพื่อ filter หรือกรอง route ไม่ให้เกิดปัญหา routing loop 

ซึ่งมีวิธีหนึ่งที่วิชานี้ได้สอนเอาไว้ คือการทำ route tag โดยผมจะไม่ขอกล่าวในรายละเอียดของวิธีการป้องกันปัญหา routing loop ในบทความนี้ แต่อาจจะไปเขียนเป็นบทความใหม่ให้นะครับ คงต้องขอเวลาหน่อย ช่วงนี้งานยุ่งจริงๆ ^^"  
แต่... แต่หากใครพอมีความสามารถในด้านภาษาอังกฤษ และพอมีพื้นฐาน command อยู่บ้าง ท่านอาจจะลองเข้าไปศึกษาได้ตาม link นี้ก่อนนะครับ 

https://supportforums.cisco.com/document/32191/preventing-route-looping-using-route-tagging


ขอบคุณครับ
โก้-ชัยวัฒน์ (kochaiwat)




Create Date : 30 กันยายน 2554
Last Update : 21 มิถุนายน 2560 8:20:37 น.
Counter : 16705 Pageviews.

9 comments
  
เขียนได้ดีมากๆครับ สำหรับผู้เดินทางสาย network อย่างเราๆผมขอให้กำลังใจท่านต่อไปน่ะครับ

ขอบคุณมากครับ
โดย: CESKZ IP: 58.137.84.105 วันที่: 11 เมษายน 2555 เวลา:13:48:05 น.
  
Thank for share your knowledge kub
โดย: Navasun IP: 58.8.130.97 วันที่: 12 พฤษภาคม 2555 เวลา:13:16:22 น.
  
เขียนได้ใจความ มากๆครับ
โดย: CPE IP: 124.121.39.27 วันที่: 17 กันยายน 2555 เวลา:1:51:05 น.
  
ขอบคุณมากเลยค่ะสำหรับความรู้ดีๆ ตอนนี้ทำงานเน็ตเวิร์ค มาได้สักระยะแล้ว แต่ความรู้ยังน้อยมากๆ อยากเก่งกว่านี้ค่ะ
โดย: หางอึ่ง IP: 202.60.195.18 วันที่: 4 กุมภาพันธ์ 2556 เวลา:11:01:30 น.
  
^_^ สู้ๆครับอาจารย์
โดย: Ironman IP: 119.76.14.176 วันที่: 4 เมษายน 2558 เวลา:20:10:42 น.
  
ขอบคุณครับ
เขียนได้ดีและชัดเจนมากครับ มีความรู้เพิ่มขึ้นทุกครั้งที่ได้อ่านบทความของอาจารย์โก้ครับ ขอบคุณอีกครั้งครับ

โดย: Arnat IP: 203.148.188.80 วันที่: 20 ตุลาคม 2558 เวลา:12:24:31 น.
  
กระชับ เข้าใจง่ายดีมากเลยครับ
โดย: JR IP: 223.24.150.200 วันที่: 21 มิถุนายน 2560 เวลา:7:44:34 น.
  
ขอบคุณมากน่ะครับ เนื้อหาอ่านแ้ลวเข้าใจ ผมเอาไปแก้ปัญหาการเฃื่อมต่ออุปกรณ์ต่างยี่ห้อได้เลยครับ
โดย: สุธีสุข IP: 43.249.113.202 วันที่: 25 มกราคม 2561 เวลา:14:59:57 น.
  
ขอบคุณครับอาจารย์ ได้ความรู้มากครับ
โดย: apiwat IP: 124.120.201.155 วันที่: 24 กุมภาพันธ์ 2561 เวลา:22:26:29 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Likecisco.BlogGang.com

kochaiwat
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 693 คน [?]

บทความทั้งหมด