Enhance Interior Gateway Routing Protocol (EIGRP)
  • EIGRP นั้นถือได้ว่าเป็นเราติ้งโปรโตคอลที่มีความรวดเร็วสูงสุดของซิสโก้ในการค้นหาเส้นทางภายใน Intra-AS (Interior Routing Protocol: เราติ้งโปรโตคอลภายใน Autonomous System) ซึ่งในเราติ้งโปรโตคอลแบบ EIGRP นี้ จะเป็นการนำเอาข้อดีของการเราติ้งแบบ Distance Vector และ Link State มาผสมผสานกัน (ในหนังสือบางเล่มจะเรียกเราติ้งโปรโตคอลแบบนี้ว่า "Hybrid" (ลูกผสม) หรือ Advanced Distance Vector) โดยที่เราติ้งโปรโตคอลแบบ EIGRP นี้จะใช้เทคนิคที่เรียกว่า "Diffusing Computations (DUAL)" ซึ่งจะได้กล่าวต่อไป ในการค้นหาเส้นทาง และการอัพเดตเราติ้งเทเบิลที่รวดเร็ว รวมถึงการรับรู้ต่อเส้นทางที่ไม่สามารถใช้งานได้อย่างรวดเร็วอีกด้วย และที่สำคัญคือ เราติ้งโปรโตคอลแบบ EIGRP นี้ เป็นเราติ้งโปรโตคอลเฉพาะของทางซิสโก้ (Cisco's Proprietary) ดังนั้น เราจึงไม่อาจที่จะรันเราติ้งโปรโตคอลแบบ EIGRP ร่วมกับเราเตอร์จากเวนเดอร์อื่นๆ ที่ไม่ใช่ซิสโก้ได้
    *ในเราติ้งโปรโตคอล EIGRP นี้ มีค่า Administrative Distance คือ 90 ในแบบ Intra-AS และ 170 เมื่อมีการเราท์ออกนอก AS ของตน

    กระบวนการทำงานของ EIGRP
    ในเราติ้งโปรโตคอลแบบ EIGRP นี้ จะมีส่วนประกอบหลักๆ ในการทำงานอยู่ 4 ส่วน ได้แก่
    • [li]Protocol-Dependent Modules[/li]
      [li]Reliable Transport Protocol (RTP)[/li]
      [li]Neighbor Discovery/Recovery[/li]
      [li]Diffusing Update Algorithms (DUAL)[/li]

    Protocol-Dependent Modules
    ในเราติ้งโปรโตคอลแบบ EIGRP นี้ จะมีการรองรับโมดูลของ Routed Protocols (เช่น IP, IPX, AppleTalk) มาโดยเฉพาะ เช่น ในโมดูลของ IPX EIGRP ก็จะสามารถที่จะแลกเปลี่ยนข้อมูลการเราติ้งกับ IPX RIP ได้ทันที โดยที่โปรโตคอลของ EIGRP จะทำการ "Route Distribution" ให้เองโดยอัตโนมัติ หากว่าทั้งสองโปรเซสนี้อยู่ภายใต้ Autonomous System เดียวกัน ซึ่งจะนำไปสู่การคำนวณเส้นทางแบบ DUAL ในโปรเซสของ EIGRP โดยในโมดูลของ EIGRP นี้จะทำการ Encapsulation ลงไปใน Network Layer Protocol เช่น โมดูลของ EIGRP IPX ก็จะทำการ Encapsulation ลงไปในแพคเกตของ IPX ในชั้นเลเยอร์ที่ 3 ของ OSI 7 Layer Model

    Reliable Transport Protocol
    RTP ในเราติ้งโปรโตคอลแบบ EIGRP นี้ จะเป็นการการันตีในการส่งแพคเกต EIGRP ไปถึงกลุ่มของเราเตอร์ที่รัน EIGRP นี้ โดยการใช้อัลกอริทึมเฉพาะของทางซิสโก้ ก็คือ "Reliable Multicast" โดยแพคเกตของ EIGRP ที่รับส่งกันในหมู่ของเราเตอร์ที่รันเราติ้งโปรโตคอลนี้ จะส่งไปยังแอดเดรส 224.0.0.10 ซึ่งเป็นมัลติคาก์สแอดเดรสเฉพาะของ EIGRP โดยที่เราเตอร์ที่รัน EIGRP นี้ แพคเกตที่เราเตอร์ต้นทางส่งไปนั้น จะมีการบันทึกหมายเลข Sequences Number ลงไปในแพคเกต โดยที่หมายเลข Sequences No. นี้จะเพิ่มขึ้นทุกครั้งที่เราเตอร์ต้นทางมีการส่งแพคเกต ด้วยเทคนิคของ Sequences No. นี้เองที่ทำให้มันรู้ว่าแพคเกตนั้นๆ เป็นแพคเกตที่ซ้ำ (Duplicate) หรือเป็นแพคเกตที่เก่ากว่าที่มันได้รับหรือไม่
    หากว่าเราเตอร์ต้นทางไม่ได้รับการตอบรับกลับมาจากเราเตอร์เพื่อนบ้าน มันจะทำการสลับไปส่งแพคเกต EIGRP ในแบบ Unicast แทน ซึ่งจะทำการส่งซ้ำ (Retransmission) ถึง 16 ครั้ง ก่อนที่มันจะแน่ใจว่า เราเตอร์เพื่อนบ้านนั้นได้ตายลงไปแล้ว ดังนั้นเราจึงเรียกพฤติกรรมในการส่งแพคเกตของ EIGRP นี้ว่าเป็น "Reliable Multicast" โดยที่แพคเกตของ EIGRP จะมีโปรโตคอลฟิลด์หมายเลข 88 ใน IP Header และมีประเภทของแพคเกตดังนี้
    • [li]Hello ในในการค้นหาเราเตอร์เพื่อนบ้านและเช็คสถานะ Hello Packet นี้จะส่งแบบมัลติคาก์ส ไม่จำเป็นต้องมีการการันตีของข้อมูล[/li]
      [li]Acknowledgement (ACKs) เป็นการตอบกลับ Packet ที่ส่งแบบ Unicast โดยที่ต้องการการันตีในการส่งถึงเราเตอร์ต้นทาง[/li]
      [li]Update เป็นการส่งอัพเดตของเราติ้งเทเบิลให้แก่เราเตอร์เพื่อนบ้าน มันไม่เหมือนกันกับเราติ้งโปรโตคอลแบบ RIP ก็คือมันจะทำการส่งเราติ้งเทเบิลออกไปเมื่อเราเตอร์เพื่อนบ้านนั้นมีการเปลี่ยนแปลงเท่านั้น หรือเมื่อมันได้ทำการฟอร์มความสัมพันธ์กับเราเตอร์เพื่อนบ้านเป็นครั้งแรกเท่านั้น มันจะทำการส่งแบบ Unicast หากว่าเราเตอร์เพื่อนบ้านเพียงตัวเดียวต้องการข้อมูลเราติ้งเทเบิลของมัน แต่มันจะทำการส่งเราติ้งเทเบิลแบบมัลติคาก์ส หากว่าเราเตอร์เพื่อนบ้านหลายๆ ตัวต้องการข้อมูลเหมือนๆ กัน เป็นการลดทราฟฟิกที่เกิดขึ้นในระบบ โดยที่แพคเกต Update นี้ต้องการการันตีการส่งของข้อมูล[/li]
      [li]Query and Reply ถูกใช้โดยโปรเซสของ DUAL อัลกอริทึมในการขอข้อมูลที่จำเป็นในการคำนวณของมัน โดยที่ Query Packet สามารถที่จะเป็น Unicast หรือ Multicast ก็ได้ แต่ Packet Reply นั้น จำเป็นที่จะต้องเป็น Unicast เสมอ โดยที่ทั้ง Query และ Reply Packet นี้จำเป็นที่จะต้องมีการการันตีการส่งของข้อมูล[/li]

    image
    ^ข้อมูลภายใน Hello Packet^

    *เวลาในการรอการตอบกลับก่อนที่ โปรเซสของ EIGRP จะตัดสินใจว่า จะใช้การส่งแบบมัลติคาส์กหรือยูนิคาส์ก มันจะคำนวณออกมาจากค่าของ Smooth Round Trip Time (SRTT) ของโปรโตคอล TCP

    Neighbor Discovery/Recovery
    เราเตอร์ที่รัน EIGRP จะใช้วิธีการส่งแพคเกตแบบมัลติคาส์กไปที่แอดเดรส 224.0.0.10 ซึ่งเป็นแอดเดรสเฉพาะของ EIGRP หากตัวอย่างของเรามี เราเตอร์ A และ เราเตอร์ B สมมติว่าเราเตอร์ A ได้รับแพคเกตมาจากเราเตอร์ B แล้ว มันจะทำการเพิ่ม IP Address ของเราเตอร์ B ลงไปในตารางเพื่อนบ้านของตนเอง (จะได้กล่าวถึงตารางเพื่อนบ้านในหัวข้อถัดไป) และเราเตอร์ B ก็จะทำการเพิ่ม IP Address ของเราเตอร์ A ลงไปในตารางเพื่อนบ้านของตนเองเช่นเดียวกัน หลังจากนั้น มันก็จะทำการแลกเปลี่ยนเราติ้งเทเบิลกันด้วยแพคเกต Update ซึ่งเมื่อเน็ตเวิร์กอยู่ในสภาวะคงที่ (Converged) แล้ว มันจะทำการส่ง Hello Packet เพื่อคอยถามกันอยู่ตลอดว่า เราเตอร์อีกฝั่งยังมีชีวิตอยู่หรือไม่ ซึ่งหากว่าเราเตอร์นั้นไม่ได้รับแพคเกต Hello ตามเวลาที่กำหนด มันจะประกาศไปยังเราเตอร์ตัวอื่นๆ ว่า ไม่สามารถไปถึงเส้นทางนั้นๆ ผ่านเราเตอร์ที่ดาวน์ลงไปได้ ทำให้ข้อมูลของเราเตอร์ตัวดังกล่าวถูกลบออกจากตารางเพื่อนบ้านออกไป ซึ่ง ระยะเวลาของ Hello Packet (Hello Interval) นี้ จะอยู่ที่ 5 วินาที ในเนตเวิร์กแบบ Ethernet หรือเนตเวิร์กที่มีสปีดสูงกว่า T1 (ค่าดีฟอลท์) แต่หากมีความเร็วต่ำกว่านี้ Hello Interval จะเท่ากับ 60 วินาที ซึ่ง แพคเกต Hello นี้ จะประกอบไปด้วย
    • [li]EIGRP Version Number - เวอร์ชันของ EIGRP[/li]
      [li]AS Number - หมายเลขของ Autonomous System[/li]
      [li]Hold Value - ระยะเวลาที่ เราเตอร์ EIGRP จะรอดูสถานะของเพื่อนบ้านว่ายังมีชีวิตอยู่หรือไม่[/li]
      [li]K-Values - กลไกการถ่วงน้ำหนักของเราติ้งโปรโตคอล EIGRP (จะนำเสนอในหัวข้อถัดๆ ไป)[/li]

    image
    ^กระบวนการในการค้นหาเราเตอร์เพื่อนบ้านที่รัน EIGRP^

    เราสามารถที่จะเปลี่ยนเวลาในการรอคอย Hello Packet นี้ได้ด้วยคำสั่ง ip hold-time eigrp ซึ่ง ระยะของการ Hold Time นี้ โดยดีฟอลท์จะเป็น 3 เท่าของ Hello Interval ซึ่งนั่นหมายถึง เราเตอร์ที่รัน EIGRP จะรับรู้ถึงการเปลี่ยนแปลงในลิงก์ได้ภายใน 15 วินาที ซึ่งถือว่าเร็วมากเมื่อเทียบกับ 180 วินาทีใน RIP

    Diffusing Update Algorithms (DUAL)
    DUAL เป็น อัลกอริทึมในการคำนวณหาเส้นทางที่ดีที่สุดของ EIGRP มันมีจุดเด่นที่สุดอยู่ที่ สปีดในการเข้าสู่สภาวะคงที่ (Convergence) ของเราเตอร์ที่รัน EIGRP ด้วยกัน ก่อนที่จะเข้าสู่เทคนิคในการคำนวณของ DUAL ก็จะมีการกล่าวถึงโปรเซสในการฟอร์มความสัมพันธ์ระหว่างเราเตอร์ EIGRP กันก่อนดังนี้
    • [li]เมื่อเราเตอร์สตาร์ทขึ้นมา เราเตอร์จะใช้ Hello Packet ในการค้นหาเราเตอร์เพื่อนบ้านที่รัน EIGRP ในมัลติคาส์กแอดเดรส 224.0.0.10[/li]
      [li]เมื่อทำการฟอร์มความสัมพันธ์ได้แล้ว จะเรียกเราเตอร์เพื่อนบ้านนี้ว่า "Adjacency Router" และทำการแลกเปลี่ยนเราติ้งเทเบิลกัน และเก็บรายชื่อและ IP Address ของเราเตอร์เพื่อนบ้านนี้ ลงไปใน ตาราง Neighbor Table ของตนเอง[/li]
      [li]ในเส้นทางแต่ละเส้นที่เราเตอร์แต่ละตัวได้รับมา จะถูกคำนวณด้วยผลลัพธ์ของระยะทางจากตัวมันเองไปยังอินเทอร์เฟซที่ติดต่อกับเพื่อนบ้าน บวกด้วยระยะทางรวมของเราเตอร์เพื่อนบ้านไปยังปลายทาง[/li]
      [li]เส้นทางที่มีค่า Cost ที่ต่ำที่สุดจากตัวมันเองไปยังซับเน็ตปลายทาง จะถูกเรียกว่า Feasible Distance (FD) หรือก็คือ RD/AD + metric จากตัวมันเองไปยังเราเตอร์เพื่อนบ้าน ซึ่ง route นี้จะถูกบันทึกลงใน Routing Table และถูกเรียกว่า Successor ในขณะที่เส้นทางอื่นๆ ที่อยู่ภายใน Topology Table จะถูกเรียกว่า Feasible Successor[/li]
      [li]เส้นทางในการไปถึงปลายทาง โดยการประกาศมาจากเราเตอร์เพื่อนบ้าน จะเรียกว่า Advertised Distance (AD) หรือ Reported Distance (RD) ซึ่งจะทำการเทียบว่า มีค่ามากกว่า FD หรือไม่ หากว่า AD น้อยกว่า FD นั่นถือได้ว่า เส้นทางนั้นไม่มีการบวกค่าวนกลับมา ซึ่งเป็นสาเหตุที่ทำให้เกิดเราติ้งลูปได้ เส้นทางนั้นๆ จะถูกนำไปใส่ใน ตารางโทโปโลยี (Topology Table)[/li]
      [li]EIGRP จะเลือกเส้นทางหลัก และเส้นทางสำรองไว้ใน Topology Table (เป็นไปได้สูงสุด 6 เส้นทางต่อหนึ่งซับเน็ตแอดเดรสปลายทาง) และ เส้นทางที่ดีที่สุดในการที่จะไปถึงปลายทางจากทั้งหมด จะมาจากการคำนวณดังต่อไปนี้[/li]

    EIGRP จะมีพารามิเตอร์ 5 ตัวในการคำนวณได้แก่
    • [li]K1 = Bandwidth: เป็นค่าแบนด์วิดธ์ที่ต่ำสุดระหว่างเร้าเตอร์ต้นทางและเร้าเตอร์ปลายทาง[/li]
      [li]K2 = Load: เป็นค่าโหลดที่สูงที่สุดระหว่างเร้าเตอร์ต้นทางและเร้าเตอร์ปลายทาง[/li]
      [li]K3 = Delay[/li]
      [li]K4 = Reliability[/li]
      [li]K5 = MTU[/li]

    http://www.msit.mut.ac.th/newweb/phpfile/show.php?Qid=1246

    EIGRP route status ใน Topology Table จะเปลี่ยน ACTIVE ต่อเมื่อมันไม่มี Feasible Successor (Backup
    http://www.siamnetworker.com/board/index.php?topic=639

    Summarization
    http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094cb7.shtml#summarization


    You can use these ways to troubleshoot the EIGRP connectivity problem.
    1. Whether EIGRP is enabled for the proper networks.
    2. Whether the K values of EIGRP neighbors is the same.
    3. Whether EIGRP autonomous number is the same.

    When an EIGRP topology change is detected, Order of events when there is a FS.
    1. DUAL is notified.
    2. The neighbor adjacency is deleted.
    3. Remove all topology entries learned from that neighbor.
    4. The feasible route is used.

    Implementing and Verifying EIGRP
    Verifying EIGRP: show ip eigrp topology
    Router# show ip eigrp topology<br />IP-EIGRP Topology Table for process 77<br />Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,<br />&nbsp; &nbsp; &nbsp;  r - Reply status<br />P 172.16.90.0 255.255.255.0, 2 successors, FD is 0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.80.28 (46251776/46226176), Ethernet0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.81.28 (46251776/46226176), Ethernet1<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.80.31 (46277376/46251776), Serial0<br />P 172.16.81.0 255.255.255.0, 1 successors, FD is 307200<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.81.28 (307200/281600), Ethernet0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.80.28 (332800/307000), Serial0<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; via 172.16.80.31 (332800/307000), Serial1

    • [li]In the statement "IP-EIGRP Topology Table for process 77", process 77 here means AS 77[/li]
      [li]There are 3 paths to reach network 172.16.81.0/24 but there is only 1 path in the routing table (because there is only 1 successor) so the path with least FD will be chosen -> path via 172.16.81.28 with a FD of 307200 will be chosen[/li]
      [li]The AD can be found by viewing the second number within the parentheses, which is this case is 281600, 307000, etc.[/li]

    Active and Passive State
    A destination in the topology table can be marked either as Passive or Active. A Passive state is a state when the router has identified the successor(s) for the destination. The destination changes to Active state when current successor no longer satisfies the Feasibility Condition and there are no feasible successors identified for that destination (i.e. no backup routes are available). The destination changes back from Active to Passive when the router received replies to all queries it has sent to its neighbors. Notice that if a successor stops stisfying the Feasibility Condition but there is at least one feasible successor available, the router will promote a feasible successor with the lowest total distance (the distance as reported by the feasible successor plus the cost of the link to this neighbor) to a new successor and the destination remain in the Passive state.

    Verifying EIGRP: show ip eigrp traffic
    R1#show ip eigrp traffic<br />IP-EIGRP Traffic Statistics for AS 1<br />&nbsp; Hellos sent/received: 481/444<br />&nbsp; Updates sent/received: 41/32<br />&nbsp; Queries sent/received: 5/1<br />&nbsp; Replies sent/received: 1/4<br />&nbsp; Acks sent/received: 21/25<br />&nbsp; Input queue high water mark 2, 0 drops<br />&nbsp; SIA-Queries sent/received: 0/0<br />&nbsp; SIA-Replies sent/received: 0/0<br />&nbsp; Hello Process ID: 113<br />&nbsp; PDM Process ID: 73

    To examine the number of various EIGRP packets sent and received, use this command, as illustrated in the above.

    You can see that router R1 has sent 481 and received 444 hello messages, sent 41 and received 32 update messages, sent 5 query message and received 1 query messages, sent 1 reply messages and received 4 reply message, and sent 21 ACK messages and received 25 ACK messages.

    In one more times using this command, the "Queries sent/received" & Replies sent/received" are still the same -> the network is stable.

    For more details about this command, please check the Cisco IOS IP Routing: EIGRP Command Reference via the following link:
    http://www.cisco.com/en/US/docs/ios/iproute_eigrp/command/reference/ire_s1.html


    Configuring Advanced EIGRP Options
    EIGRP Route Summarization: Automatic

    • [li]Purpose: Smaller routing tables, smaller updates[/li]
      [li]Automatic summarization:
      [list][li]On major network boundaries, subnetwork are summarized to a single classful (major) network.[/li]
      [li]Automatic summarization occurs by default.[/li]
    [/li][/list]
    EIGRP Unequal-Cost Load Balancing
    Router(config-router)#variance [multiplier]
    • [li]Allows the router to include routes with a metric smaller than the multiplier value times the minimum metric route to that destination[/li]
      [li]If multiplier is 1, it means that it support Equal cost path.[/li]

    Variance Example

    image

    • [li]Router E chooses router C to get to network Z, because it has lowest FD of 20.[/li]
      [li][/li]

    Load balancing is proportional to the bandwidth. For example, If have 2 paths, first path has FD equals 30. The FD of second path equals 20. The total FD is 50 and the ratio of traffic between the two paths is 3/5 : 2/5.

    Configuring WAN Links
    • [li]EIGRP supports different WAN links:
      [list][li]Point-to-point links[/li]
      [li]NBMA
      [list][li]Multipoint links[/li]
      [li]Point-to-point links[/li]
    [/li][/list][/li]
    [li]EIGRP uses up to 50% of the interface bandwidth by default; this bandwidth utilization can be changed. The primary benefit of controlling EIGRP's bandwidth usage is to avoid losing EIGRP packets, which could occur when EIGRP generates data faster than the interface line can absorb it. This is of particular benefit on Frame Relay networks, where the access interface bandwidth and the PVC capacity may be very different.

    For example, in our Frame Relay topology a Hub is connected with 4 Spoke routers. The main Frame Relay interface on Hub router is 512Kbps which is not enough to use for 6 links of 128 Kbps ( = 768 Kbps).
    image
    The solution here is we can use 512 / 6 = 85 Kbps on each subinterface of Hub by using bandwidth 85 command.
    For example:

    Hub(config)#interface Serial0/0.1 point-to-point
    Hub(config-subif)#bandwidth 85

    Also on Spoke routers we need to set this value. For example on Spoke1:

    Spoke1(config)#interface Serial0/1.0 point-to-point
    Spoke1(config-subif)#bandwidth 85

    Notice that by default, EIGRP limits itself to use no more than 50% of the configured interface bandwidth. In this case EIGRP will not use more than 42.5 Kbps (50% of 85 Kbps).

    For more information about implementing EIGRP over Frame Relay, please read[/li][/list]
    http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094063.shtml


    Configuring EIGRP in an Enterprise Network

    Basic Configure EIGRP Authentication
    key chain fred<br /> key 2 *key-id ต้องเหมือนกันทั้งสองฝั่ง<br />&nbsp; key-string whehe<br />interface g1/0/1<br /> ip authentication key-chain eigrp 9 fred<br /> ip authentication mode eigrp 9 md5

    EIGRP & RIPv2 IOS authentication
    http://cciethebeginning.wordpress.com/2011/04/27/eigrp-ripv2-ios-authentication


    สงสัยตรงไหนถามได้เลยคับ 8)