{"id":19317835,"url":"https://github.com/queeniecplusplus/ccnp_igrp","last_synced_at":"2026-03-01T18:01:52.733Z","repository":{"id":104588163,"uuid":"275090154","full_name":"QueenieCplusplus/CCNP_IGRP","owner":"QueenieCplusplus","description":"Interior Gateway Routing Protocol","archived":false,"fork":false,"pushed_at":"2020-06-26T08:54:37.000Z","size":59,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T04:45:02.342Z","etag":null,"topics":["ccnp"],"latest_commit_sha":null,"homepage":"https://github.com/QueenieCplusplus/QuickGoThru#ccnp","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QueenieCplusplus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-26T06:37:13.000Z","updated_at":"2020-06-26T08:54:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd80781e-584b-4ac4-bf5e-6c5116831841","html_url":"https://github.com/QueenieCplusplus/CCNP_IGRP","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/QueenieCplusplus/CCNP_IGRP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FCCNP_IGRP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FCCNP_IGRP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FCCNP_IGRP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FCCNP_IGRP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QueenieCplusplus","download_url":"https://codeload.github.com/QueenieCplusplus/CCNP_IGRP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QueenieCplusplus%2FCCNP_IGRP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29977966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ccnp"],"created_at":"2024-11-10T01:16:23.701Z","updated_at":"2026-03-01T18:01:52.705Z","avatar_url":"https://github.com/QueenieCplusplus.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# CCNP IGRP\nInterior Gateway Routing Protocol\n\n# Convergence, 收斂的方法\n\n# 水平分割\n\n* Split Horizon Update, 水平分割更新法\n\n(移除不正確資訊)\n\n 水平分割使指閘道器會紀錄所接收到的路徑資訊是由哪一個網路介面而來的，同時不可將此路徑傳回給同樣的網路介面，避免造成迴圈。\n \n 當 GW 1 （ RouterC E0 ）和 Net 1 中斷時，GW 2 (Router A s0) 經由 GW 1 到達 Net 1 時，距離為 2，一旦中斷，GW 2 不會再對 GW 1 廣播這條路徑，GW 1 也停止廣播此網路至 Net 1 的路徑，經過幾回合路徑更新後，各個閘道會發現此網路 Net 1 是 unreachabel，便不會造成迴圈了。\n \n 路由器 A 和 路由器 B 的 192.168.4.0 這網段是由路由器 C 所學習來的，所以不會反向更新路徑。\n \n                                               \n                                                \n                                  Router A           \n                                  \n                                     GW2\n                                 s0      s1\n                                 /         \\\n                 192.168.1.0    /           \\  192.168.3.0\n                               /             \\\n                              /               \\\n                            s1   s0 ----- s1   s0    \n                                                \n                                 192.168.2.0\n                                                       GW1\n                       Router B             Router C    E0 ---X--- E0  Router D\n                       \n                                                         192.168.4.0\n                       \n                       \n    +--------------------------+                  \n    |      Routing Table A     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.1.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.2.0| s0  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| s0  |    2   |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table B     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.2.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |    1   |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table C     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.2.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |  down  |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table D     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.4.0| E0  | 0/down |\n    +-----------+-----+--------+\n    \n \n# 觸發更新 \n    \n* Poison Reverse + * Triggered Updates, 毒性逆向 ＋ 觸發更新\n\n(移除不正確資訊)\n\n此法規定原本最先廣播該路徑的 GW 遇到路徑中斷時，必須將路徑修改至無限長 (= 16)，此資訊亦將保留若干週期。觸發更新則是當閘道器收到故障通知時，會立刻廣播，不會等到下一個路徑更新時方才廣播。\n\n實際觀察路由表變化，來知曉 Poison Reverse 的運作機制，倘若 路由器 C 介面 E0 線路中斷， metric 值會變成 infinite，路由器 B 會送 Poison Reverse 給路由器 C ，告知此網段無法存取 unaccessable。\n\n    \n   \n      \n    +--------------------------+                  \n    |      Routing Table B     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.2.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |infinite|\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table C     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.2.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |infinite|\n    +-----------+-----+--------+\n \n\n# 延長時間\n   \n* Hold Down Timer, 倒數計時更新法\n\n（防止迴路）\n\n此更新方式是用來解決故障資訊比正當資訊傳送的慢的問題，原理是讓故障資訊保持充足時間傳送，當閘道器收到此網路 unreachable 時，一定時間內，例如 60 秒內，閘道器不會再接收關於這網路的路徑資訊。\n\n缺點是，此法會造成迴圈，使得網路效率大減。\n\n可見實際路由表變化，來觀察 Hold Down Timer 的運作機制，當路由器 C 介面 E0 線路中斷後，介面 E0 的 metric 值改成 down，並且通知路由器 B，再通知路由器 A，AB 都在 Holddown 時間過後，方才更新路由表。\n\n\n                                                \n                                  Router A           \n                                  \n                                     GW2\n                                 s0      s1\n                                 /         \\\n                 192.168.1.0    /           \\  192.168.3.0\n                               /             \\\n                              /               \\\n                            s1   s0 ----- s1   s0    \n                                                \n                                 192.168.2.0\n                                                       GW1\n                       Router B             Router C    E0 ---X--- E0  Router D\n                       \n                                                         192.168.4.0\n                       \n                        \n    +--------------------------+                  \n    |      Routing Table A     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.1.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.2.0| s0  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| s0  |    2   |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table B     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.2.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |    1   |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table C     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.2.0| s1  |    0   |\n    +-----------+-----+--------+\n    |192.168.3.0| s0  |    0   |\n    +-----------+-----+--------+\n    |192.168.1.0| s1  |    1   |\n    +-----------+-----+--------+\n    |192.168.4.0| E0  |  down  |\n    +-----------+-----+--------+\n    \n    \n    +--------------------------+                  \n    |      Routing Table D     |\n    +--------------------------+\n    |    IP     | Int | Metric |   \n    +-----------+-----+--------+\n    |192.168.4.0| E0  | 0/down |\n    +-----------+-----+--------+\n    \n\n\n# IGRP = Cisco RIP\n\n距離向量的，distance vector，然而與 RIP 不同之處在於：\n\n(1) 不受限於 15 個 hops，適用於大型互聯網路。\n\n(2) 提供 4 個路徑，藉以節省頻寬。\n\n(3) 每 90 秒廣播一次。\n\n(4) 不支援 VLSM。\n\n\n# IGRP 的參考用參數\n\n(影響 metric value/hops count)\n\n1. Bandwidth 頻寬\n\n2. Delay 時間\n\n3. Load 負載\n\n4. MTU 最大傳送單元（傳輸位元組）\n\n5. Reliability 可靠度、可信度（距離值越小越可靠）\n\n# 預設的距離值\n\n預設的距離值 （100、120）\n\nEIGRP \n\n      +--------+---------------+\n      | 路由方  |  distance val |\n      +--------+---------------+\n      | int    |       0       |\n      +--------+---------------+\n      | static |       1       |\n      +--------+---------------+\n      | EIGRP  |      5 /90    |\n      +--------+---------------+\n      |  BGP   |       20      |\n      +--------+---------------+\n      |        |               |\n      |  IGRP  |      100      |\n      |        |               |\n      +--------+---------------+\n      |  OSPF  |      110      |\n      +--------+---------------+\n      |  IS-IS |      115      |\n      +--------+---------------+\n      |   RIP  |      120      |\n      +--------+---------------+\n      |   EGP  |      140      |\n      +--------+---------------+\n      |    ?   |      255      |\n      +--------+---------------+\n\n# RIP\n\n此為 Xerox 所開發的通訊協定，使用向量距離或是經過的閘道數 Hops Count 作為距離單位。此協定將閘道器分為主動的廣播和被動的收聽，同一時間下，一閘道器主動，則其餘閘道器皆為被動，以避免廣播風暴。\n\n向量距離不能保證最短的路徑最快，因為線路的材質也會影響速度，例如乙太網路線和其他慢速網路線的相互比較，而且路徑訊息可能在傳輸過程中發生錯誤，需要在每個收聽的閘道器上設有 timer 計時器，每當收到廣播閘道器的廣播資訊時，便開始倒數 180 秒 （3分鐘）若沒有收到同樣的路徑資訊，便視此路徑資訊無效。\n\n被動的閘道器不廣播，根據主動的閘道所廣播的路徑訊息調整自己的路由表（路徑表）。\n\n# Broadcast Storm\n\nhttps://zh.wikipedia.org/wiki/廣播風暴\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fccnp_igrp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqueeniecplusplus%2Fccnp_igrp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueeniecplusplus%2Fccnp_igrp/lists"}