-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRIP路由协议.html
1687 lines (1054 loc) · 69 KB
/
RIP路由协议.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html class="theme-next pisces use-motion" lang="zh-Hans">
<head><meta name="generator" content="Hexo 3.8.0">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#222">
<script src="/lib/pace/pace.min.js?v=1.0.2"></script>
<link href="/lib/pace/pace-theme-minimal.min.css?v=1.0.2" rel="stylesheet">
<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
<meta name="google-site-verification" content="BJ10tOPrv3FPnbQ4Rxq6DCfyKaRhH-JZQ9_PJCNe6ck">
<link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css">
<link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic|Menlo:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css">
<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.4">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.ico?v=5.1.4">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.ico?v=5.1.4">
<link rel="mask-icon" href="/images/logo.svg?v=5.1.4" color="#222">
<meta name="keywords" content="RIP, 路由协议">
<link rel="alternate" href="/atom.xml" title="Үміт" type="application/atom+xml">
<meta name="description" content=" 由于换了份工作,因工作需要的关系,最近开始学习 IP路由技术,总结下个人对 RIP路由协议的理解吧~">
<meta name="keywords" content="RIP, 路由协议">
<meta property="og:type" content="article">
<meta property="og:title" content="RIP路由协议">
<meta property="og:url" content="https://www.keymou.wang/RIP路由协议.html">
<meta property="og:site_name" content="Үміт">
<meta property="og:description" content=" 由于换了份工作,因工作需要的关系,最近开始学习 IP路由技术,总结下个人对 RIP路由协议的理解吧~">
<meta property="og:locale" content="zh-Hans">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/GIF.gif">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/rip%20router.gif">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/router%E5%BD%A2%E6%88%90.gif">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/环路.PNG">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/水平分割_1.png">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/水平分割_2.png">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv1.png">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2.png">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2_认证.png">
<meta property="og:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2_2.PNG">
<meta property="og:updated_time" content="2019-05-12T09:37:48.492Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="RIP路由协议">
<meta name="twitter:description" content=" 由于换了份工作,因工作需要的关系,最近开始学习 IP路由技术,总结下个人对 RIP路由协议的理解吧~">
<meta name="twitter:image" content="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/GIF.gif">
<script type="text/javascript" id="hexo.configurations">
var NexT = window.NexT || {};
var CONFIG = {
root: '/',
scheme: 'Pisces',
version: '5.1.4',
sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":true,"onmobile":false},
fancybox: true,
tabs: true,
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
duoshuo: {
userId: '0',
author: '博主'
},
algolia: {
applicationID: '',
apiKey: '',
indexName: '',
hits: {"per_page":10},
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
}
};
</script>
<link rel="canonical" href="https://www.keymou.wang/RIP路由协议.html">
<title>RIP路由协议 | Үміт</title>
</head>
<body itemscope="" itemtype="http://schema.org/WebPage" lang="zh-Hans">
<div class="container sidebar-position-left page-post-detail">
<div class="headband"></div>
<header id="header" class="header" itemscope="" itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-wrapper">
<div class="site-meta ">
<div class="custom-logo-site-title">
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<span class="site-title">Үміт</span>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<p class="site-subtitle">心有猛虎,細嗅薔薇</p>
</div>
<div class="site-nav-toggle">
<button>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section">
<i class="menu-item-icon fa fa-fw fa-home"></i> <br>
首  页
</a>
</li>
<li class="menu-item menu-item-about">
<a href="/about/" rel="section">
<i class="menu-item-icon fa fa-fw fa-user"></i> <br>
关于博主
</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section">
<i class="menu-item-icon fa fa-fw fa-tags"></i> <br>
标  签
</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section">
<i class="menu-item-icon fa fa-fw fa-th"></i> <br>
分  类
</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section">
<i class="menu-item-icon fa fa-fw fa-archive"></i> <br>
归  档
</a>
</li>
<li class="menu-item menu-item-search">
<a href="javascript:;" class="popup-trigger">
<i class="menu-item-icon fa fa-search fa-fw"></i> <br>
站内搜索
</a>
</li>
</ul>
<div class="site-search">
<div class="popup search-popup local-search-popup">
<div class="local-search-header clearfix">
<span class="search-icon">
<i class="fa fa-search"></i>
</span>
<span class="popup-btn-close">
<i class="fa fa-times-circle"></i>
</span>
<div class="local-search-input-wrapper">
<input autocomplete="off" placeholder="搜索..." spellcheck="false" type="text" id="local-search-input">
</div>
</div>
<div id="local-search-result"></div>
</div>
</div>
</nav>
</div>
</header>
<main id="main" class="main">
<div class="main-inner">
<div class="content-wrap">
<div id="content" class="content">
<div id="posts" class="posts-expand">
<article class="post post-type-normal" itemscope="" itemtype="http://schema.org/Article">
<div class="post-block">
<link itemprop="mainEntityOfPage" href="https://www.keymou.wang/RIP路由协议.html">
<span hidden itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<meta itemprop="name" content="keymou">
<meta itemprop="description" content="">
<meta itemprop="image" content="/uploads/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope="" itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Үміт">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">RIP路由协议</h1>
<div class="post-meta">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建于" itemprop="dateCreated datePublished" datetime="2019-05-02T11:20:34+08:00">
2019-05-02
</time>
</span>
<span class="post-category">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope="" itemtype="http://schema.org/Thing">
<a href="/categories/IP路由协议/" itemprop="url" rel="index">
<span itemprop="name">IP路由协议</span>
</a>
</span>
</span>
<span class="post-comments-count">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-comment-o"></i>
</span>
<a href="/RIP路由协议.html#comments" itemprop="discussionUrl">
<span class="post-comments-count valine-comment-count" data-xid="/RIP路由协议.html" itemprop="commentCount"></span>
</a>
</span>
<span id="/RIP路由协议.html" class="leancloud_visitors" data-flag-title="RIP路由协议">
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-eye"></i>
</span>
<span class="post-meta-item-text">热度:</span>
<span class="leancloud-visitors-count"></span>
<span>℃</span>
</span>
<div class="post-wordcount">
<span class="post-meta-item-icon">
<i class="fa fa-file-word-o"></i>
</span>
<span class="post-meta-item-text">字数统计:</span>
<span title="字数统计">
5k 字
</span>
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-clock-o"></i>
</span>
<span class="post-meta-item-text">阅读时长 ≈</span>
<span title="阅读时长">
17 分钟
</span>
</div>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<p> 由于换了份工作,因工作需要的关系,最近开始学习 IP路由技术,总结下个人对 RIP路由协议的理解吧~</p>
<a id="more"></a>
<h3 id="RIP-简介"><a href="#RIP-简介" class="headerlink" title="RIP 简介"></a>RIP 简介</h3><p>RIP 是 Routing Information Protocol(路由信息协议)的简称,它是一种较为简单的内部网关协议(Interior Gateway Protocol)。</p>
<p>RIP 是一种基于距离矢量(Distance-Vector)算法的协议,它使用跳数(Hop Count)作为度量来衡量到达目的网络的距离。</p>
<p><strong>距离</strong>:也称<strong>跳数</strong>,从一路由器到直连的网络的距离定义为1,从一路由器到非直连路由器的距离定义为所经过的路由器数加1。</p>
<p>RIP 允许一条路径最多包含15个路由器,即“距离”等于16时不可达。</p>
<p>RIP 是应用层协议,通过 UDP报文进行路由信息的交换,使用的端口号为520。</p>
<p>RIP 当前存在两个版本:RIPv1 和 RIPv2。</p>
<blockquote>
<p> <strong>距离矢量</strong>名称由来是因为路由是以矢量(距离、方向)的方式被通告出去的,其中距离是根据度量定义的,方向是根据下一跳路由器定义的。每台路由器在信息上都是依赖于邻接路由器,而邻接路由器又是从它们的邻接路由器学习路由,依次类推,所以距离矢量路由选择有时又被认为是“<strong>依照传闻进行路由选择</strong>”。</p>
</blockquote>
<p>RIP 特点:每一个路由器都要不断地和其他路由器交换路由信息。</p>
<ol>
<li>仅和相邻直连路由器交换信息;</li>
<li>路由器交换的信息是当前本路由器所知道的所有信息,即当前的路由表;</li>
<li>按固定时间间隔交换路由信息。</li>
</ol>
<h3 id="RIP-工作原理"><a href="#RIP-工作原理" class="headerlink" title="RIP 工作原理"></a>RIP 工作原理</h3><p>RIP 协议是基于D-V 算法实现,RIP 规定,缺省情况下,网关每 30秒向外广播一个 RIP 报文,报文信息来自本地路由表。RIP 报文中,其度量值 metric 以跳数计:与目的网络直接相连的网关规定为 1 跳,相隔一个网关则为 2 跳……依次类推。一条路径的度量值即距离为该路径(从源发送方到目的网络)上的网关数。</p>
<p>为限制收敛时间,防止路由环路,RIP 规定度量值取 0~15 之间的整数,大于或等于 16 的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得 RIP 不可能在大型网络中得到应用。</p>
<h4 id="路由数据库"><a href="#路由数据库" class="headerlink" title="路由数据库"></a>路由数据库</h4><p>每个运行RIP的路由器管理一个路由数据库,数据库包含了到所有可达目的地的路由项,路由项包含以下信息:</p>
<ul>
<li>Destination/Mask(目的 IP):主机或网络的地址、掩码</li>
<li>Nexthop (下一跳地址):到达目的地址需要经过的相邻路由器的 IP</li>
<li>Interface(出接口):本路由器转发报文的出接口</li>
<li>Cost(度量值):本路由到达目的地的开销</li>
<li>Sec(路由时间)</li>
<li>Tag(路由标记)</li>
</ul>
<h4 id="RIP-运行过程"><a href="#RIP-运行过程" class="headerlink" title="RIP 运行过程"></a>RIP 运行过程</h4><p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/GIF.gif" alt="RIP 运行示例"></p>
<p><strong>初始状态</strong>:路由器开启 RIP进程,宣告相应接口或网络段,对路由表进行初始化,为每一个和它直接相S连地实体建一个路由条目,并设置目的 IP/Mask (直连网段),Nexthop为 0.0.0.0,metric为 0。设备从相关接口发送和接收 RIP 报文。<img src="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/rip%20router.gif" alt="dis rip 1 router"></p>
<p><strong>构建路由表</strong>:路由器依据收到的 RIP 报文构建自己的路由条目,并给每个路由器初始化更新定时器(缺省值为 30 秒)和老化定时器(缺省值为 180 秒)。</p>
<p><strong>维护路由表</strong>:路由器每隔 30 秒发送更新报文,同时接收相邻路由器发送的更新报文以维护路由条目。</p>
<p><strong>老化路由表项</strong>:如果在 180 秒内没有收到关于某条路由器的更新,则该条路由在路由表中的度量值 metric 将会被设置为 16,路由被老化。</p>
<p><strong>垃圾收集表项</strong>:在180 秒过后,路由器仍没有收到相应路由条目的更新,路由老化,该跳路由条目度量值设为 16, RIP 以度量值为 16 向外发送这条路由的更新,同时启动缺省值为 120 秒的垃圾收集定时器。</p>
<p><strong>删除路由表项</strong>:120 秒之后,路由器仍然没有收到相应路由条目的更新,则路由器将该路由条目删除。</p>
<h4 id="RIP-路由表的形成"><a href="#RIP-路由表的形成" class="headerlink" title="RIP 路由表的形成"></a>RIP 路由表的形成</h4><p>RIP 启动时的初始路由表仅包含本设备的一些直连接口路由。通过相邻设备互相学习路由表项,才能实现各网段路由互通。</p>
<p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP%E8%B7%AF%E7%94%B1%E5%8D%8F%E8%AE%AE/router%E5%BD%A2%E6%88%90.gif" alt="路由表的形成"></p>
<p>RIP 路由表简化过程如上图所示:</p>
<ul>
<li>RIP 协议启动后,RouterA 会向相邻的路由器广播(RIPv2 缺省是组播)一个 Request 报文</li>
<li>当 RouterB 从接口接收到 RouterA发送的 Request报文后,把自己的 RIP 路由表封装在 Response 报文内,然后向该接口对应的网络广播、</li>
<li>RouterA 根据 RouterB 发送的 Response 报文,形成自己的路由表</li>
</ul>
<h4 id="RIP-更新维护"><a href="#RIP-更新维护" class="headerlink" title="RIP 更新维护"></a>RIP 更新维护</h4><p>RIP 协议在更新和维护路由信息时收到四个定时器控制</p>
<h5 id="更新定时器-Update-timer"><a href="#更新定时器-Update-timer" class="headerlink" title="更新定时器 Update timer"></a>更新定时器 Update timer</h5><p>定义了发送路由器更新的时间间隔,缺省为 30 秒,当此定时器超时时,立即发送更新报文。</p>
<h5 id="老化定时器(Age-timer)"><a href="#老化定时器(Age-timer)" class="headerlink" title="老化定时器(Age timer)"></a>老化定时器(Age timer)</h5><p>定义了路由条目的老化时间。如果在老化时间内没有收到邻接路由器发来关于某条路由器的更新报文,则该条路由在路由表中的度量值将会被设置为 16,认为该路由不可达。</p>
<ul>
<li>在路由创建被创建时初始化</li>
<li>每次收到这条路由对应的路由更新时,重新初始化</li>
<li>如果定期器在缺省180s内没有更新,路由超时</li>
</ul>
<h5 id="垃圾收集定时器(Garbage-collect-timer)"><a href="#垃圾收集定时器(Garbage-collect-timer)" class="headerlink" title="垃圾收集定时器(Garbage-collect timer)"></a>垃圾收集定时器(Garbage-collect timer)</h5><p>定义了一条路由器从度量值变为16开始,直到它从路由表里被删除所经过的时间,用于“垃圾回收”。若在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从 RIP 路由表中彻底删除。</p>
<ul>
<li>路由的权重设置为16,RIP以度量值为16发送这条路由的更新</li>
<li>缺省120s后,仍没有得到更新,删除该路由</li>
</ul>
<h5 id="抑制定时器(Suppress-timer)"><a href="#抑制定时器(Suppress-timer)" class="headerlink" title="抑制定时器(Suppress timer)"></a>抑制定时器(Suppress timer)</h5><p>定义了RIP路由处于抑制状态的时长。当一条路由的度量值变为16时,该路由将进入抑制状态。在抑制状态,只有来自同一邻居并且度量值小于16的路由更新才会被路由器接收,取代不可达路由。缺省为120s。</p>
<h4 id="RIP-防止路由环路的机制"><a href="#RIP-防止路由环路的机制" class="headerlink" title="RIP 防止路由环路的机制"></a>RIP 防止路由环路的机制</h4><h5 id="路由环路的产生原因"><a href="#路由环路的产生原因" class="headerlink" title="路由环路的产生原因"></a>路由环路的产生原因</h5><p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/环路.PNG" alt=""></p>
<p>正常 192.168.0.0/24 网络被 RA 通告到 RB。当网络出现问题不能达到的时候,路由RA 等更新周期到来把192.168.0.0/24 路由信息不可达信息通告给 RB。但是 RB 在 RA 更新周期前通告给了 RA,让 RA 误以为通过 RB 的那边能达到 192.168.0.0/24 网络,结果就是造成路由环路。</p>
<h5 id="解决方法"><a href="#解决方法" class="headerlink" title="解决方法"></a>解决方法</h5><h6 id="1-计数到无穷(Counting-to-infinity)"><a href="#1-计数到无穷(Counting-to-infinity)" class="headerlink" title="1. 计数到无穷(Counting to infinity)"></a>1. 计数到无穷(Counting to infinity)</h6><p>将度量值等于16的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将会增加到16,该路由被认为不可达,避免路由环路的产生。</p>
<h6 id="2-触发更新(Triggered-Updates)"><a href="#2-触发更新(Triggered-Updates)" class="headerlink" title="2. 触发更新(Triggered Updates)"></a>2. 触发更新(Triggered Updates)</h6><p>RIP 通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加快网络的收敛速度。一旦某条路由的度量值发生了变化,就立即向邻居路由器发布更新报文,而不是等到更新周期的到来。</p>
<h6 id="3-水平分割(Split-Horizon)"><a href="#3-水平分割(Split-Horizon)" class="headerlink" title="3. 水平分割(Split Horizon)"></a>3. 水平分割(Split Horizon)</h6><p>RIP 从某个接口学到的路由信息不会重新发回该接口的邻居路由器。这样不但减少带宽消耗,还可以防止路由环路。</p>
<p>水平分割在不同网络中实现有所区别,分为按照接口和按照邻居进行水平分割。广播网、P2P 和 P2MP 网络中是按照接口进行水平分割的,如下图所示:</p>
<p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/水平分割_1.png" alt=""></p>
<p>RouterA 会向 RouterB 发送到网络 10.0.0.0/8 的路由信息,如果没有配置水平分割,RouterB 会将从 RouterA 学习到的这条路由再发送回给 RouterA。这样,RouterA 可以学习到两条到达 10.0.0.0/8 网络的路由:跳数为 0 的直连路由;下一跳指向 RouterB,且跳数为 2 的路由。</p>
<p>但是在 RouterA 的 RIP 路由表中只有直连路由才是活跃的。当 RouterA 到网络 10.0.0.0 的路由变成不可达,并且 RouterB 还没有收到路由不可达的信息时,RouterB 会继续向 RouterA 发送 10.0.0.0/8 可达的路由信息。即,RouterA 会接受到错误的路由信息,认为可以通过 RouterB 到达 10.0.0.0/8 网络;而 RouterB 仍旧认为可以通过 RouterA 到达 10.0.0.0/8 网络,从而形成路由环路。配置水平分割后,RouterB 将不会再把到网络 10.0.0.0/8 的路由发回给 RouterA,由此避免了路由环路的产生。</p>
<p>对于 NBMA(Non-Broadcast Multiple Access)网络,由于一个接口上连接多个邻居,所以是按照邻居进行水平分割的。路由就会按照单播方式发送,同一接口上收到的路由可以按邻居进行区分。从某一接口的对端邻居处学习到路由,不会再通过该接口发送回去。</p>
<p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/水平分割_2.png" alt=""></p>
<p>在 NBMA 网络配置了水平分割之后,RouterA 会将从 RouterB 学习到的 102.16.0.0/16 路由发送给 RouterC,但是不会再发送回给 RouterB。</p>
<h6 id="4-毒性逆转(Poison-Reverse)"><a href="#4-毒性逆转(Poison-Reverse)" class="headerlink" title="4. 毒性逆转(Poison Reverse)"></a>4. 毒性逆转(Poison Reverse)</h6><p>RIP 从某个接口学到路由后,将该路由的度量值设为 16(不可达),并从原接口发送回邻居路由器。利用这种方式,可以清楚对方路由表中的无用信息。</p>
<p>水平分割和毒性逆转都是为了防止 RIP 中的路由环路而设计的,但是水平分割是不将收到路由条目再按 “原路返回” 来避免环路,而毒性逆转遵循 “坏消息比没消息好” 的原则,即将路由条目按“原路返回”,但是该路由条目被标记为不可达(度量值为 16)。</p>
<h4 id="RIP-消息"><a href="#RIP-消息" class="headerlink" title="RIP 消息"></a>RIP 消息</h4><p>RIP 报文由头部(Header)和多个路由条目(Route Entries)部分组成。每个路由条目包含地址族标识、路由可达的 IP 地址和路由跳数。</p>
<p>RIP 报文的头部占用 4 个字节,每个路由条目占用 20 个字节。</p>
<h5 id="RIP-报文接收处理"><a href="#RIP-报文接收处理" class="headerlink" title="RIP 报文接收处理"></a>RIP 报文接收处理</h5><p>相邻的实体收到广播时,就对广播的数据报进行检查。因为广播的内容可能引起路由表的更新,所以这种检查是细致的。当报文传至 IP 层时:</p>
<p>检查报文端口:是否来自端口 520 的 UDP 数据报,若不是则忽略,因为路由器不转发受限制广播。</p>
<p>检查 RIP 报文的 Version:</p>
<ol>
<li>取值为 0,忽略该报文;</li>
<li>取值为 1,检查 Must be zero 的字段值:若“Must be zero”字段值不为 0,则忽略该报文;</li>
<li>取值大于 1,Must be zero 字段值不做检查。</li>
</ol>
<p>检查 RIP 报文中 Command:</p>
<ol>
<li><p>取值为 1-Request 报文:</p>
<p>根据报文内的网段信息,依次查找本地路由表。</p>
<p>(a) 若发现匹配,将本地路由表的权重填写到返回结果中;(b) 若没有发现匹配,填写16,并将 Command 字段值设置为 2,将报文发送回。</p>
<p>特殊情况:若 request 报文的 IP 类型是0,并且请求的路由只有一条,权重为16,需要发送本地所有的路由表。</p>
</li>
<li><p>取值为 2- Response 报文:</p>
<p>源地址必须是路由器的邻居地址,若不是来自直接邻居,则报文被忽略;过滤从自己发出的报文。</p>
<p>更新路由的度量值:Metric = MIN(metric + cost, 16);</p>
<p>查看本地路由表中是否已经存在该路由:</p>
<ul>
<li><p>不存在,检查则本地路由表添加该条路由:①设置目的地址与度量值;②从更新数据包中的源地址字段读取通告路由器的地址,设置为下一跳;③初始化定时器;④发起触发更新;</p>
<p>若收到路由的 metric 为16,则不用添加。</p>
</li>
<li><p>存在,只有在新的路由器拥有更小的跳数时才能替换原来存在的路由条目。</p>
<p>路由更新通告的跳数大于路由表已记录的跳数,并且更新来自已记录条目的下一跳路由器,则该路由进入一个指定的抑制时间段内被标记为不可到达,若在抑制时间(缺省值 120 秒)超时后,同一台路由器仍然通告这个有较大跳数的路由,则路由则接收该路由新的度量值。</p>
</li>
</ul>
</li>
</ol>
<h5 id="RIPv1-报文"><a href="#RIPv1-报文" class="headerlink" title="RIPv1 报文"></a>RIPv1 报文</h5><p>一个 RIPv1 Response 报文中,最多可以有 25 个路由条目,加上 8 个字节的 UDP 头部,RIP 数据报的大小(不含 IP 包的头部)最大可达 512 个字节。</p>
<p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv1.png" alt="RIPv1"></p>
<ul>
<li>Command:取值 1 或 2,1 表示该消息是请求消息;2 表示是响应消息。</li>
<li>Version:对于 RIPv1,该字段值为 1;对于RIPv2,设置为2。RIPv2可处理有效的RIPv1。</li>
<li>Must be zero:字段值必须为零。</li>
<li>Address Family Identifier:对于 IP 该项设置为 2。例外情况,该消息是路由器整个路由表的请求,该项设置为 0。</li>
<li>IP Address:路由的目的地址,可以是主网络地址、子网地址或主机路由地址。</li>
<li>Metric:跳数,取值在0~16之间</li>
</ul>
<h6 id="RIPv1-特点"><a href="#RIPv1-特点" class="headerlink" title="RIPv1 特点"></a>RIPv1 特点</h6><ol>
<li>RIPv1 是<strong>有类别路由</strong></li>
<li>只支持以<strong>广播方式</strong>发布,广播地址 255.255.255.255</li>
<li>基于 UDP,端口号 520</li>
<li>RIP 报文无法携带掩码信息,只能识别 A、B、C 类的自然网段的路由,因此 RIPv1 不支持不连续子网,也无法支持路由聚合</li>
<li>不支持验证</li>
</ol>
<p><strong>有类别路由协议</strong>的一个基本特征是:在通告目的地址时不能随之一起通告它的地址掩码。因此,有类别路由选择协议首先必须匹配一个与该目的地址对应于A类、B类或C类的主网络号。对于每一个通过这台路由器的数据包:</p>
<ul>
<li>如果目的地址是一个和路由器直接相连的主网络的成员,那么该网络的路由器接口上配置的子网掩码将被用来确认目的地址的子网。</li>
<li>如果目的地址不是一个和路由器直接相连的主网络的成员,那么路由器将尝试匹配该目的地址对应于A类、B类或C类的主网络号。</li>
</ul>
<h6 id="RIPv1-发送"><a href="#RIPv1-发送" class="headerlink" title="RIPv1 发送"></a>RIPv1 发送</h6><p>注意发送时没有子网掩码。</p>
<p>将要发送的前缀路由和出接口网段匹配:</p>
<ol>
<li>如果不在同一主网,此为主网边界,将前缀自动汇总为有类网段发送前缀到出接口。</li>
<li>如果在同一主网,检查发送的前缀是否为 32 位:<ol>
<li>如果是,发送 32 位前缀到出接口。</li>
<li>如果不是,检查前缀和出口掩码是否相同: <ol>
<li>如果不同,抑制发送或者汇聚为主网络号。</li>
<li>如果相同,没有边界,发送正确的前缀到出接口。</li>
</ol>
</li>
</ol>
</li>
</ol>
<h6 id="RIPv1-接收"><a href="#RIPv1-接收" class="headerlink" title="RIPv1 接收"></a>RIPv1 接收</h6><p>收到一个前缀后,如果发现是主网络号,直接放入路由表,掩码是 8/16/24.</p>
<p>如果不是主网络号,检查是否在同一主网:</p>
<ol>
<li>如果不在,生成有类路由,掩码按有类路由计算。</li>
<li>如果在同一主网,用接口掩码去掩,然后检查该前缀是网络地址还是主机地址:<ol>
<li>如果是网络地址,生成路由,掩码等于自己的接口掩码,放入路由表。</li>
<li>如果不是网络地址,就默认是主机地址,生成 32 位路由,放入路由表。</li>
</ol>
</li>
</ol>
<h5 id="RIPv2-报文"><a href="#RIPv2-报文" class="headerlink" title="RIPv2 报文"></a>RIPv2 报文</h5><h6 id="不携带认证的-RIPv2"><a href="#不携带认证的-RIPv2" class="headerlink" title="不携带认证的 RIPv2"></a>不携带认证的 RIPv2</h6><p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2.png" alt=""></p>
<ul>
<li>Command:取值 1 或 2,1 表示该消息是请求消息;2 表示是响应消息。</li>
<li>Version:对于 RIPv2,设置为 2。RIPv2可处理有效的RIPv1。</li>
<li>Reserverd:保留字段。</li>
<li>Address Family Identifier:对于 IP 该项设置为 2。例外情况,该消息是路由器整个路由表的请求,该项设置为 0。</li>
<li>Route Tag:提供这个字段用来标记外来路由或重新分配到 RIPv2 协议中的路由。默认情况是使用这个16位的字段来携带从外部路由选择协议注入到 RIP 中的路由的自主系统号。</li>
<li>IP Address:路由的目的地址,可以是主网络地址、子网地址或主机路由地址。</li>
<li>Subnet Mask:子网地址,32位掩码,用来标识 IPv4 地址的网络和子网部分。对于 RIPv1,该字段设置为全0。</li>
<li>Nexthop:若存在的话,它标识一个比通告路由器的地址更好的下一跳地址。若这个字段设置为全 0(0.0.0.0),说明通告路由器的地址是最优的下一跳地址。对于 RIPv1,该字段设置为全 0。</li>
<li>Metric:跳数,取值在0~16之间</li>
</ul>
<h6 id="携带认证的-RIPv2"><a href="#携带认证的-RIPv2" class="headerlink" title="携带认证的 RIPv2"></a>携带认证的 RIPv2</h6><p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2_认证.png" alt=""></p>
<p>RIPv2 在有认证的情况下最多携带 24 条路由。认证报文格式如上,其中 Authentication Type 为认证类型,RIPv2 支持简单认证和 MD5 认证两种方式,口令长度不足的补 0。</p>
<h6 id="RIPv2-的增强特性"><a href="#RIPv2-的增强特性" class="headerlink" title="RIPv2 的增强特性"></a>RIPv2 的增强特性</h6><ol>
<li><strong>无类别路由协议</strong></li>
<li><strong>组播</strong>更新,组播地址 224.0.0.9</li>
<li>基于 UDP,端口号 520</li>
<li>支持外部 Tag,用于过滤和做策略</li>
<li>支持路由聚合和 CIDR(无类域间路由)</li>
<li>支持指定下一跳</li>
<li>支持认证</li>
</ol>
<h6 id="RIPv2-接收和发送"><a href="#RIPv2-接收和发送" class="headerlink" title="RIPv2 接收和发送"></a>RIPv2 接收和发送</h6><p>在开启自动汇总的情况下(默认),不同主网,汇总发。同一主网,带原有的掩码发。不开自动汇总的情况下,不管是不是同一主网,一律发原有的掩码。</p>
<p><img src="https://github.com/keymou/blog_images/raw/master/content/RIP路由协议/RIPv2_2.PNG" alt=""></p>
<h6 id="RIPv2-路由聚合"><a href="#RIPv2-路由聚合" class="headerlink" title="RIPv2 路由聚合"></a>RIPv2 路由聚合</h6><p>路由聚合的原理是,同一个自然网段内的不同子网的路由在向外(其它网段)发送时聚合成一个网段的路由发送。</p>
<ul>
<li>RIPv2 支持路由聚合,因为 RIPv2 报文携带掩码位,所以支持子网划分。在 RIPv2 中进行路由聚合可提高大型网络的可扩展性和效率,缩减路由表。</li>
<li>基于 RIPv2 进程的有类聚合即实现自动聚合。</li>
<li>基于接口的聚合即实现手动聚合。</li>
<li>如果被聚合路由携带了 Tag,那么路由聚合发生之后,Tag 信息将被清除。</li>
</ul>
<p>路由聚合有两种方式:</p>
<ul>
<li><p>基于 RIP 进程的有类聚合:</p>
<p>聚合后的路由使用自然掩码的路由形式发布。比如,对于 10.1.1.0/24(metric=2)和 10.1.2.0/24(metric=3)这两条路由,会聚合成自然网段路由 10.0.0.0/8(metric=2)。RIP–2 聚合是按类聚合的,聚合得到最优的 metric 值。</p>
</li>
<li><p>基于接口的聚合:</p>
<p>用户可以指定聚合地址。比如,对于 10.1.1.0/24(metric=2)和 10.1.2.0/24(metric=3)这两条路由,可以在指定接口上配置聚合路由 10.1.0.0/16(metric=2)来代替原始路由。</p>
</li>
</ul>
</div>
<div>
<div style="text-align:center;color: #ccc;font-size:14px;">
------ 本文结束<i class="fa fa-paw"></i>感谢您的阅读 ------</div>
</div>
<div>
<div style="padding: 10px 0; margin: 20px auto; width: 90%; text-align: center;">
<div></div>
<button id="rewardButton" disable="enable" onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}">
<span>打赏</span>
</button>
<div id="QR" style="display: none;">
<div id="wechat" style="display: inline-block">
<img id="wechat_qr" src="/images/wechatpay.png" alt="keymou 微信支付">
<p>微信支付</p>
</div>
</div>
</div>
</div>
<footer class="post-footer">
<div class="post-tags">
<a href="/tags/IP路由协议/" rel="tag"><i class="fa fa-tag"></i> IP路由协议</a>
<a href="/tags/RIP/" rel="tag"><i class="fa fa-tag"></i> RIP</a>
</div>
<div class="post-widgets">
<div class="wp_rating">
<div style="color: rgba(0, 0, 0, 0.75); font-size:13px; letter-spacing:3px">(>你觉得这篇文章怎么样?<)</div>
<div id="wpac-rating"></div>
</div>
</div>
<div class="post-nav">
<div class="post-nav-next post-nav-item">
<a href="/TCL使用指南.html" rel="next" title="TCL使用指南">
<i class="fa fa-chevron-left"></i> TCL使用指南
</a>
</div>
<span class="post-nav-divider"></span>
<div class="post-nav-prev post-nav-item">
</div>
</div>
</footer>
</div>
</article>
<div class="post-spread">
</div>
</div>
</div>
<div class="comments" id="comments">
</div>
</div>
<div class="sidebar-toggle">
<div class="sidebar-toggle-line-wrap">
<span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
</div>
</div>
<aside id="sidebar" class="sidebar">
<div class="sidebar-inner">
<ul class="sidebar-nav motion-element">
<li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">
文章目录
</li>
<li class="sidebar-nav-overview" data-target="site-overview-wrap">
站点概览
</li>
</ul>
<section class="site-overview-wrap sidebar-panel">
<div class="site-overview">
<div class="site-author motion-element" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<img class="site-author-image" itemprop="image" src="/uploads/avatar.jpg" alt="keymou">
<p class="site-author-name" itemprop="name">keymou</p>
<p class="site-description motion-element" itemprop="description"></p>
</div>
<nav class="site-state motion-element">
<div class="site-state-item site-state-posts">
<a href="/archives/">
<span class="site-state-item-count">9</span>
<span class="site-state-item-name">日志</span>
</a>
</div>
<div class="site-state-item site-state-categories">
<a href="/categories/index.html">
<span class="site-state-item-count">8</span>
<span class="site-state-item-name">分类</span>
</a>
</div>
<div class="site-state-item site-state-tags">
<a href="/tags/index.html">
<span class="site-state-item-count">14</span>
<span class="site-state-item-name">标签</span>
</a>
</div>
</nav>
<div class="feed-link motion-element">
<a href="/atom.xml" rel="alternate">
<i class="fa fa-rss"></i>
RSS
</a>
</div>
<div class="links-of-author motion-element">
<span class="links-of-author-item">
<a href="https://github.com/keymou" target="_blank" title="GitHub">
<i class="fa fa-fw fa-github"></i>GitHub</a>
</span>
<span class="links-of-author-item">
<a href="mailto:shinyang691@gmail.com" target="_blank" title="E-Mail">
<i class="fa fa-fw fa-envelope"></i>E-Mail</a>
</span>
<span class="links-of-author-item">
<a href="https://segmentfault.com/u/keymoi" target="_blank" title="SegmentFault">
<i class="fa fa-fw fa-stack-overflow"></i>SegmentFault</a>
</span>
<span class="links-of-author-item">
<a href="https://weibo.com/606030719" target="_blank" title="微博">
<i class="fa fa-fw fa-weibo"></i>微博</a>
</span>
</div>
<div class="links-of-blogroll motion-element links-of-blogroll-inline">
<div class="links-of-blogroll-title">
<i class="fa fa-fw fa-link"></i>
推荐阅读
</div>
<ul class="links-of-blogroll-list">
<li class="links-of-blogroll-item">
<a href="https://www.mongodb.org.cn/" title="mongodb" target="_blank" rel="external nofollow">mongodb</a>
</li>
<li class="links-of-blogroll-item">
<a href="https://germey.gitbooks.io/python3webspider/content/" title="python3网络爬虫" target="_blank" rel="external nofollow">python3网络爬虫</a>
</li>
</ul>
</div>
</div>
</section>
<!--noindex-->
<section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
<div class="post-toc">
<div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-3"><a class="nav-link" href="#RIP-简介"><span class="nav-number">1.</span> <span class="nav-text">RIP 简介</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#RIP-工作原理"><span class="nav-number">2.</span> <span class="nav-text">RIP 工作原理</span></a><ol class="nav-child"><li class="nav-item nav-level-4"><a class="nav-link" href="#路由数据库"><span class="nav-number">2.1.</span> <span class="nav-text">路由数据库</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#RIP-运行过程"><span class="nav-number">2.2.</span> <span class="nav-text">RIP 运行过程</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#RIP-路由表的形成"><span class="nav-number">2.3.</span> <span class="nav-text">RIP 路由表的形成</span></a></li><li class="nav-item nav-level-4"><a class="nav-link" href="#RIP-更新维护"><span class="nav-number">2.4.</span> <span class="nav-text">RIP 更新维护</span></a><ol class="nav-child"><li class="nav-item nav-level-5"><a class="nav-link" href="#更新定时器-Update-timer"><span class="nav-number">2.4.1.</span> <span class="nav-text">更新定时器 Update timer</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#老化定时器(Age-timer)"><span class="nav-number">2.4.2.</span> <span class="nav-text">老化定时器(Age timer)</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#垃圾收集定时器(Garbage-collect-timer)"><span class="nav-number">2.4.3.</span> <span class="nav-text">垃圾收集定时器(Garbage-collect timer)</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#抑制定时器(Suppress-timer)"><span class="nav-number">2.4.4.</span> <span class="nav-text">抑制定时器(Suppress timer)</span></a></li></ol></li><li class="nav-item nav-level-4"><a class="nav-link" href="#RIP-防止路由环路的机制"><span class="nav-number">2.5.</span> <span class="nav-text">RIP 防止路由环路的机制</span></a><ol class="nav-child"><li class="nav-item nav-level-5"><a class="nav-link" href="#路由环路的产生原因"><span class="nav-number">2.5.1.</span> <span class="nav-text">路由环路的产生原因</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#解决方法"><span class="nav-number">2.5.2.</span> <span class="nav-text">解决方法</span></a><ol class="nav-child"><li class="nav-item nav-level-6"><a class="nav-link" href="#1-计数到无穷(Counting-to-infinity)"><span class="nav-number">2.5.2.1.</span> <span class="nav-text">1. 计数到无穷(Counting to infinity)</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#2-触发更新(Triggered-Updates)"><span class="nav-number">2.5.2.2.</span> <span class="nav-text">2. 触发更新(Triggered Updates)</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#3-水平分割(Split-Horizon)"><span class="nav-number">2.5.2.3.</span> <span class="nav-text">3. 水平分割(Split Horizon)</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#4-毒性逆转(Poison-Reverse)"><span class="nav-number">2.5.2.4.</span> <span class="nav-text">4. 毒性逆转(Poison Reverse)</span></a></li></ol></li></ol></li><li class="nav-item nav-level-4"><a class="nav-link" href="#RIP-消息"><span class="nav-number">2.6.</span> <span class="nav-text">RIP 消息</span></a><ol class="nav-child"><li class="nav-item nav-level-5"><a class="nav-link" href="#RIP-报文接收处理"><span class="nav-number">2.6.1.</span> <span class="nav-text">RIP 报文接收处理</span></a></li><li class="nav-item nav-level-5"><a class="nav-link" href="#RIPv1-报文"><span class="nav-number">2.6.2.</span> <span class="nav-text">RIPv1 报文</span></a><ol class="nav-child"><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv1-特点"><span class="nav-number">2.6.2.1.</span> <span class="nav-text">RIPv1 特点</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv1-发送"><span class="nav-number">2.6.2.2.</span> <span class="nav-text">RIPv1 发送</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv1-接收"><span class="nav-number">2.6.2.3.</span> <span class="nav-text">RIPv1 接收</span></a></li></ol></li><li class="nav-item nav-level-5"><a class="nav-link" href="#RIPv2-报文"><span class="nav-number">2.6.3.</span> <span class="nav-text">RIPv2 报文</span></a><ol class="nav-child"><li class="nav-item nav-level-6"><a class="nav-link" href="#不携带认证的-RIPv2"><span class="nav-number">2.6.3.1.</span> <span class="nav-text">不携带认证的 RIPv2</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#携带认证的-RIPv2"><span class="nav-number">2.6.3.2.</span> <span class="nav-text">携带认证的 RIPv2</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv2-的增强特性"><span class="nav-number">2.6.3.3.</span> <span class="nav-text">RIPv2 的增强特性</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv2-接收和发送"><span class="nav-number">2.6.3.4.</span> <span class="nav-text">RIPv2 接收和发送</span></a></li><li class="nav-item nav-level-6"><a class="nav-link" href="#RIPv2-路由聚合"><span class="nav-number">2.6.3.5.</span> <span class="nav-text">RIPv2 路由聚合</span></a></li></ol></li></ol></li></ol></li></ol></div>
</div>
</section>
<!--/noindex-->
</div>
</aside>
</div>
</main>
<footer id="footer" class="footer">
<div class="footer-inner">
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
<div class="copyright">© 2018 — <span itemprop="copyrightYear">2019</span>
<span class="with-love" id="heart">
<i class="fa fa-heart"></i>
</span>
<span class="author" itemprop="copyrightHolder">keymou</span>
<span class="post-meta-divider">|</span>
<span class="post-meta-item-icon">
<i class="fa fa-area-chart"></i>
</span>
<span class="post-meta-item-text">Site words total count:</span>
<span title="Site words total count">29.4k</span>
</div>
<!--