[CCNA圖文筆記]-17-EIGRP協議詳解

0×1.EIGRP特性與基本配置
EIGRP(Enhanced Interior Gateway Routing Protocol,增強型內部網關路由協議),是思科私有的,高級距離矢量、無類的路由選擇協議。
a.EIGRP特性
復合度量值:使用帶寬(bandwidth)、負載(load)、延時(delay)、可靠性(reliability),默認只使用帶寬和延時做為度量值計算的參數;快速收斂:使用DUAL算法,通過在拓撲表中保存可行性后繼,相當于次優路由,當可用路由消失后,次優路由馬上進入路由表;100%無環路:主要受益于DUAL算法;配置簡單;可靠的更新:采用RTP(可靠傳輸協議),并為每個鄰居保存一個重傳列表;建立鄰居關系:運行EIGRP的路由器中有三張表,路由表、鄰居表、拓撲表;支持多種網絡協議;支持VLSM和CIDR;支持手動匯總,能關閉自動匯總;使用組播地址224.0.0.10發送更新;支持等價和非等價負載均衡;兼容IGRP;增量式更新:僅發送變化的路由信息;路由標記功能:從IGRP何任何外部源收到的更新都標記成EX(外部);
b.EIGRP包格式
EIGRP被設計成一個傳輸層協議,協議號是88,EIGRP使用RTP(Reliable Transport Protocol,可靠傳輸協議)傳送和接收EIGRP分組
EIGRP的包格式如下圖(圖1):


Cisco-CCNA-EIGRP-1
Cisco-CCNA-EIGRP-1

數據鏈路層頭部:每個組播IP都有一個對應的MAC地址,組播廠商編碼為"01-00-5E",后面的編號根據不同的組播IP計算得來,224.0.0.10對應的MAC地址是"01-00-5E-00-00-0A"。
c.EIGRP分組類型
EIGRP使用5種分組類型,分別是:Hello分組,ACK(確認)分組,Update(更新)分組,Query(查詢)分組以及Reply(回復)分組,下面首先介紹Hello分組。
Hello分組用來發現、驗證和重新發現鄰居路由器。默認的Hello分組發送間隔,除小于等于1.544Mb/s的多點幀中繼鏈路是60秒外,其他鏈路都是5秒。使用組播地址224.0.0.10發送,在鄰居表中包含一個"保持時間"字段,記錄了最后收到hello分組的時間,如果在保持時間到期前沒有收到鄰居路由器的任何Hello分組,就認為這個鄰居出現了故障,默認的保持時間是Hello時間的3倍,即15秒。EIGRP僅在宣告進EIGRP進程的接口的主IP地址上發送分組。
d.EIGRP基本配置
下面使用一個實例演示EIGRP基本配置以及Hello分組的參數設置。
實驗拓撲如下圖(圖2)所示,R1和R2使用串行線路和以太網線路相連,在R1上有兩個回環接口其中除Lo1(3.3.3.3)外,R1和R2的其他接口都宣告進EIGRP進程,自制系統號100(AS=100)。


Cisco-CCNA-EIGRP-2
Cisco-CCNA-EIGRP-2
注:本文[0×1][0×2][0×3]三節都使用上圖(圖2)來介紹EIGRP配置。
R1配置:
01

R1(config)#
int
s 0/0

02

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

03

R1(config-if)#
no
shut

04

R1(config-if)#
int
fa 1/0

05

R1(config-if)#
ip
add
21.1.1.1 255.255.255.0

06

R1(config-if)#
no
shut

07

R1(config-if)#
int
lo
0

08

R1(config-if)#
ip
add
1.1.1.1 255.255.255.0

09

R1(config-if)#
no
shut

10

R1(config-if)#
int
lo
1

11

R1(config-if)#
ip
add
3.3.3.3 255.255.255.0

12

R1(config-if)#
no
shut

13

/EIGRP需要配置AS號/

14

R1(config-if)#router
eigrp
100

15

/宣告接口,使用的是反掩碼形式/

16

R1(config-router)#
net
1.1.1.0 0.0.0.255

17

R1(config-router)#
net
12.1.1.0 0.0.0.255

18

R1(config-router)#
net
21.1.1.0 0.0.0.255

19

R1(config-router)#
end

20

21

/*

22

  • router
    eigrp
    100

23

  • EIGRP進程需要配置AS號(自制系統號),本例的100就是AS號,

24

  • AS標識了屬于一個互連網絡中的所有路由器,

25

  • 同一個AS內的不同路由如果想要互相學習路由信息,必須配置相同的AS號。

26

27

net
12.1.1.0 0.0.0.255

28

  • 在EIGRP中宣告接口需要使用反掩碼,如果不輸入反掩碼,

29

  • 路由默認會使用接口的主類網絡號,

30

"net 12.1.1.0"
等價于
"net 12.0.0.0 0.255.255.255"

31

32

  • 如果路由的所有接口都宣告進EIGRP進程,則可以使用
    "net 0.0.0.0"
    一次性宣告所有接口。

33

34

*/

R2配置:
01

R2(config)#
int
s 0/1

02

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

03

R2(config-if)#
no
shut

04

R2(config-if)#
int
lo
0

05

R2(config-if)#
ip
add
2.2.2.2 255.255.255.0

06

R2(config-if)#
no
shut

07

R2(config-if)#
int
fa 1/0

08

R2(config-if)#
ip
add
21.1.1.2 255.255.255.0

09

/自制系統號和R1相同/

10

R2(config-if)#router
eigrp
100

11

/宣告所有接口接入EIGRP進程/

12

R2(config-router)#
net
0.0.0.0

13

R2(config-router)#
end

e.查看和修改Hello分組發送間隔
使用下面的命令查看Hello分組默認發送間隔:
1

/顯示R1的s0/0接口上EIGRP配置信息/

2

R1#
show
ip
eigrp
interfaces
detail
s0/0

3

/AS號/

4

IP-EIGRP
interfaces
for process 100

5

/Hello分組發送間隔,默認5秒/

6

Hello interval is 5 sec

7

...

嘗試修改Hello分組發送間隔:
01

/修改hello時間間隔為30秒,前面的100是AS號,hello時間是針對接口配置的/

02

R1(config)#
int
s 0/0

03

R1(config-if)#
ip
hello-interval
eigrp
100 30

04

05

/再次查看,發現hello時間變成30秒了/

06

R1#
show
ip
eigrp
interfaces
detail
s 0/0

07

Hello interval is 30 sec

08

...

09

R1#

10

11

/這樣修改后,會遇到一個問題,因為默認的EIGRP保持時間是15秒,而R1發給R2的hello間隔卻被修改成了30秒,我們將看到路由上面反復的出現鄰居關系down掉后又建立的消息,/

12

*Mar 1 00:31:28.823: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.1.1.2 (Serial0/0) is down: Interface

13

Goodbye received

14

15

*Mar 1 00:31:33.739: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.1.1.2 (Serial0/0) is up: new adjacency

16

17

/解決的辦法是修改保持時間大于hello時間,一般修改成hello時間的3倍(90秒)/

18

R1(config)#
int
s 0/0

19

R1(config-if)#
ip
hold-time
eigrp
100 90

20

R1(config-if)#
end

21

22

/修改后在R2上查看EIGRP鄰居表,看到R1發送過來的保持時間是從90秒開始倒計時的/

23

R2#
show
ip
eigrp
neighbors

24

IP-EIGRP
neighbors
for process 100

25

H Address Interface Hold Uptime SRTT RTO Q Seq

26

(sec) (ms) Cnt Num

27

1 21.1.1.1 Fa1/0 10 00:01:07 1025 5000 0 9

28

0 12.1.1.1 Se0/1 70 00:01:07 58 348 0 7

29

30

/上面的輸出,Hold下面Se0/1接口對應的70,代表已經收到hello分組20秒了,根據我們的改動再過10秒R2將再次收到R1發送過來的hello分組,這個值又將重新被刷新成90秒/

在EIGRP中,鄰居的建立不需要有相同的hello時間和保持時間,而OSPF中必須要有相同的Hello時間和保持時間,否則鄰居關系建立將不會成功。
除Hello分組外,下面是其他四種分組的簡單介紹;
ACK(確認)分組:
路由器在交換期間,使用確認分組來確認收到了EIGRP分組,確認分組單播發送。
Update(更新)分組:
更新分組是可靠傳送的,需要被確認,當路由發現新鄰居或檢測到網絡拓撲發生變化時,使用更新分組。
Query(查詢)分組:
當EIGRP路由器需要從一個或所有鄰居那里得到指定信息時,使用查詢分組。查詢分組也是可靠傳送的,需要被確認。
Reply(回復)分組:
對鄰居的查詢信息進行單播回復,可靠傳送,需要被確認。
下圖(圖三)是EIGRP分組對照表:


Cisco-CCNA-EIGRP-3
Cisco-CCNA-EIGRP-3

0×2.EIGRP表
EIGRP中有三張表:鄰居表、路由表、拓撲表;下面依次介紹它們。
a.鄰居表(Neighbor Table)
在EIGRP中,兩臺相鄰路由器要建立起鄰接關系需要滿足兩個條件:
1)具有相同的AS號;2)具有相匹配的K值;
可以通過下面的命令來查看EIGRP默認的K值:
01

R1#
show
ip
protocols

02

/AS=100/

03

Routing Protocol is
"eigrp 100"

04

/K值/

05

EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0

06

/最大負載均衡線路條數/

07

Maximum path: 4

08

/本路由運行了EIGRP的接口/

09

Routing for Networks:

10

1.1.1.0/24

11

12.1.1.0/24

12

21.1.1.0/24

13

/從哪些源接收到了更新/

14

Routing Information Sources:

15

Gateway Distance Last Update

16

(this router) 90 00:02:29

17

12.1.1.2 90 00:02:29

18

21.1.1.2 90 00:02:24

19

/內部管理距離和外部管理距離/

20

Distance: internal 90 external 170

21

22

/*

23

  • 從輸出可以看到自制系統號AS=100。

24

25

  • Maximum path: 4 代表最大允許4條線路的負載均衡,

26

  • 可以使用R1(config-router)#
    maximum
    -paths 16來修改成16條,或者其他數值

27

28

  • 上面的輸出中有這么一行:

29

  • EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0

30

  • 其中K1代表帶寬,K2代表負載,K3代表延時,K4和K5代表可靠性,

31

  • 默認EIGRP只使用了帶寬和負載作為度量值計算參數。

32

33

*/

如果想修改K值可以使用下面的命令格式:
"metric weights tos k1 k2 k3 k4 k5"其中tos被用作服務質量區分服務等級,暫時用不到,0為不啟用,1為啟用。
1

/修改EIGRP K值,只使用帶寬作為度量值計算參數/

2

R1(config)#router
eigrp
100

3

R1(config-router)#metric weights 0 1 0 0 0 0

4

5

/修改后馬上看到了與鄰路由K值不匹配的消息,并且與鄰居的鄰接關系down掉了/

6

*Mar 1 00:45:32.391: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 100: Neighbor 12.1.1.2 (Serial0/0) is down: K-value mismatch

7

8

/重新將K值改成默認的帶寬和延時有效的狀態,鄰接關系重新恢復/

9

R1(config-router)#metric weights 0 1 0 1 0 0

下圖是EIGRP建立鄰接關系的過程:


Cisco-CCNA-EIGRP-4
Cisco-CCNA-EIGRP-4

可以使用下面的命令查看EIGRP鄰居表:
01

R1#
show
ip
eigrp
neighbors

02

IP-EIGRP
neighbors
for process 100

03

H Address Interface Hold Uptime SRTT RTO Q Seq

04

(sec) (ms) Cnt Num

05

1 21.1.1.2 Fa1/0 11 00:04:50 52 312 0 9

06

0 12.1.1.2 Se0/0 10 00:04:50 59 354 0 10

07

08

/*

09

"H"
表示鄰居被學到的先后順序,0是最先學到的鄰居。

10

"Address"
是鄰居路由接口IP。

11

"Interface"
是本地路由和這個鄰居相連的接口

12

"Hold"
是當前的保持時間,默認15秒,是一個遞減的數值。

13

"Uptime"
是鄰居進入鄰居表到當前經過了多長時間。

14

  • 后面的參數在CCNA中暫時不討論。

15

*/

b.路由表(Routing Table)
顯示R1的路由表,看看EIGRP路由與普通路由的區別:
01

R1#
show
ip
route

02

03

1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

04

C 1.1.1.0/24 is directly connected, Loopback0

05

D 1.0.0.0/8 is a summary, 00:06:49, Null0

06

D 2.0.0.0/8 [90/156160] via 21.1.1.2, 00:06:49, FastEthernet1/0

07

3.0.0.0/24 is subnetted, 1 subnets

08

C 3.3.3.0 is directly connected, Loopback1

09

21.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

10

C 21.1.1.0/24 is directly connected, FastEthernet1/0

11

D 21.0.0.0/8 is a summary, 00:06:51, Null0

12

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

13

C 12.1.1.0/24 is directly connected, Serial0/0

14

D 12.0.0.0/8 is a summary, 00:06:50, Null0

15

16

/*

17

18

  • 路由表中的
    "D 1.0.0.0/8 is a summary, 01:40:23, Null0"

19

  • 是一條自動匯總產生的路由,EIGRP和RIP默認都在主網邊界自動匯總,

20

  • 不同的是EIGRP會在本地產生一條自動匯總后的路由,目標指向空接口(Null0)

21

  • 發往空接口的數據會被丟棄。這可以有效的避免路由環路的產生。

22

23

"D 2.0.0.0/8 [90/156160] via 21.1.1.2, 00:06:49, FastEthernet1/0"

24

  • 這是一條通過EIGRP學習到的最終路由,D代表是通過EIGRP學習到的,

25

  • 可以看到R2上的2.2.2.2/24被匯總成了2.0.0.0/8發送過來,

26

  • [90/156160]中的90是EIGRP默認的管理距離,后面是度量值。

27

  • 從這條路由可以得知,去往2.0.0.0/8網絡的數據發往21.1.1.2,

28

  • 從本地的FastEthernet1/0發出。

29

30

*/

下面這個例子解釋了,為什么EIGRP要在本地產生一條去往空接口的匯總路由:


Cisco-CCNA-EIGRP-5
Cisco-CCNA-EIGRP-5

假設R1和R2都運行了RIP協議,R1和R2相連的串行線路屬于12.1.1.0/24網段,R1將自己回環接口lo0匯總成1.0.0.0/8發送給R2,并且在R1上有一條默認路由指向R2。此時,在R2上面有一個去往1.1.2.1的數據包,R2根據R1發過來的路由1.0.0.0/8匹配,將數據發給R1,R1上面只有默認路由可以匹配,它又將數據發回R2,這樣路由環路形成。
假設R1和R2都運行了EIGRP協議,R1和R2相連的串行線路屬于12.1.1.0/24網段,R1將自己回環接口lo0匯總成1.0.0.0/8發送給R2,并且在R1上有一條默認路由指向R2。此時,在R2上面有一個去往1.1.2.1的數據包,R2根據R1發過來的路由1.0.0.0/8匹配,將數據發給R1,R1發現路由表中有一條1.0.0.0/8的條目能夠匹配(子網掩碼最長匹配,這個條目比默認路由子網掩碼長,所以優先選?。?,所以最終R1將數據發往了空接口,即丟棄。有效的避免了路由環路的形成。
c.拓撲表(Topology Table)
EIGRP拓撲表詳細說明如下:
01

/顯示R1的拓撲表/

02

R1#
show
ip
eigrp
topology

03

IP-EIGRP Topology Table for AS(100)/ID(3.3.3.3)

04

05

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,

06

r - reply Status, s - sia Status

07

08

P 1.0.0.0/8, 1 successors, FD is 128256

09

via Summary (128256/0), Null0

10

P 1.1.1.0/24, 1 successors, FD is 128256

11

via Connected, Loopback0

12

P 2.0.0.0/8, 1 successors, FD is 156160

13

via 21.1.1.2 (156160/128256), FastEthernet1/0

14

via 12.1.1.2 (2297856/128256), Serial0/0

15

P 12.0.0.0/8, 1 successors, FD is 2169856

16

via Summary (2169856/0), Null0

17

P 12.1.1.0/24, 1 successors, FD is 2169856

18

via Connected, Serial0/0

19

P 21.0.0.0/8, 1 successors, FD is 28160

20

via Summary (28160/0), Null0

21

P 21.1.1.0/24, 1 successors, FD is 28160

22

via Connected, FastEthernet1/0

23

24

/*

25

  • 路由狀態:

26

  • P 表示被動路由(Passive),即路由是穩定可用的,

27

  • A 表示是活躍路由(Active),即路由正在使用DUAL重新計算中,不可用。

28

29

  • 網絡目標: 2.0.0.0/8就是一個網絡目標。

30

31

  • 后繼(Successor):到達遠程網絡的主要路由,對任何特定的路由可以有多達4條后繼路由。

32

"2.0.0.0/8, 1 successors"
,代表去往2.0.0.0/8只有一條最佳路徑。

33

34

  • 可行距離(FD,Feasible Distance):

35

  • 是下一跳路由的報告距離和本路由到下一跳路由的距離之和,

36

  • R1去往2.0.0.0/8的路徑有兩條,距離分別是156160和2297856,

37

  • 最小距離156160成為可行距離,即從快速以太網接口到達R2。

38

39

  • 路由來源:是指最初發布這條路由的路由器標識(via 12.1.1.2),

40

  • 這個標識僅當路由是從其他EIGRP路由器學到時才填入。

41

42

  • 報告距離(RD,Reported Distance):

43

  • 報告距離是鄰路由報告的,到一個指定目標網絡的距離,

44

"via 21.1.1.2 (156160/128256), FastEthernet1/0"

45

  • 128256就是R2報告給R1到達自己lo0接口的報告距離,

46

47

  • 接收端口如
    "FastEthernet1/0"
    ,是本路由從哪個接口可以到達目的地。

48

49

*/

0×3.度量值的計算
EIGRP使用復合度量值計算到目的地址最佳路徑,復合度量值是帶寬、延時、可靠性和負載的組合。在K1、K2、K3、K4、K5都不為0的前提下,復合度量值的計算公式:
1

Metric=[K1Bandwidth+(K2Bandwidth)/(256-Load)+K3Delay][K5/(Reliability+K4)]

K1影響的是帶寬(Bandwidth),K2影響的是負載(Load),K3影響的是延時(Delay),K4和K5影響的是可靠性(Reliability)。
默認情況下Cisco路由器只使用K1和K3來進行復合度量值的計算,所以公式可以簡化成:
1

Metric=(10000M/源到目的之間最低鏈路帶寬+源到目的之間所有出接口延時總和/10)*256

2

3

/*

4

  • 源和目的之間最低鏈路帶寬,單位是M。

5

  • 源和目的之間所有鏈路延時總和,單位是微秒(usec)。

6

  • 至于這里為什么要用延時總和除以10,

7

  • 因為EIGRP度量值計算中是使用10微秒作為單位進行計算的。

8

*/

下面舉個例子,計算一下R1到R2的lo0接口的復合度量值;注意,R1到R2的lo0接口的度量值,要使用R1去往R2 Lo0方向的出接口的帶寬和延時作為參數來計算:
01

/*

02

  • 查看R1的s 0/0接口參數

03

  • 可以看到 BW帶寬等于1.544M,延時為20000微秒。

04

*/

05

R1#
show
interfaces
s 0/0

06

Serial0/0 is up, line protocol is up

07

Internet
address
is 12.1.1.1/24

08

MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,

09

10

/*

11

  • 查看R1的fa 1/0接口參數

12

  • 可以看到 BW帶寬等于100M,延時為100微秒。

13

*/

14

R1#
show
interfaces
fastEthernet 1/0

15

FastEthernet1/0 is up, line protocol is up

16

Internet
address
is 21.1.1.1/24

17

MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,

18

19

/*

20

  • 再查看R2的Lo0接口的參數

21

  • 帶寬為8000M,延時為5000微秒。

22

*/

23

R2#
show
int
lo
0

24

Loopback0 is up, line protocol is up

25

Internet
address
is 2.2.2.2/24

26

MTU 1514 bytes, BW 8000000 Kbit, DLY 5000 usec,

根據公式"Metric=(10000M/源到目的之間最低鏈路帶寬+源到目的之間所有出接口延時總和/10)256",如果數據走s0/0接口去往R2 lo0,最低鏈路帶寬是1.544,延時總和是s0/0的延時+R2的lo0的延時=20000+5000,代入公式計算:
[10000/R1的s0/0接口帶寬(單位M)+(R1的s0/0接口延時+R2的lo0接口延時)/10]
256[10000/1.544+(20000+5000)/10]256注意,這個公式的計算每部分都是取整的,比如:10000/1.544≈6476 ,小數部分直接舍去,且不四舍五入。(20000+5000)/10=2500(6476+2500)256=2297856
如果從R1的fa1/0去往R2的lo0的度量值就是:
[10000/R1的fa1/0接口帶寬(單位M)+(R1的fa1/0接口延時+R2的lo0接口延時)/10]256[10000/100+(100+5000)/10]256=156160
使用show ip eigrp topology看看結果是否相同:
1

R1#
show
ip
eigrp
topology

2

3

P 2.0.0.0/8, 1 successors, FD is 156160

4

via 21.1.1.2 (156160/128256), FastEthernet1/0

5

via 12.1.1.2 (2297856/128256), Serial0/0

6

7

/顯示的可行距離和自己計算的,完全相同/

上面的輸出中報告距離128256,也可以使用公式計算出來:
[10000/R2的lo0接口帶寬(單位M)+(R2的lo0接口延時)/10]256,將數據代入[10000/8000+(5000)/10]25610000/8000≈1 , 直接舍去小數位,且不四舍五入。501*256=128256
如果此時我們更改R2的s0/1或R2的fa1/0帶寬,是不會影響R1上面去往R2的lo0接口的度量值的,因為R1去往R2的lo0接口的度量值計算是根據出接口,即R1的s0/0和f1/0以及R2的lo0接口的帶寬和延時作為參數來計算的,但是會影響R2到R1的lo0接口的度量值,可以使用下面的方法來驗證:
01

/沒有更改帶寬前,R2上去往R1的lo0接口的度量值/

02

R2#
show
ip
eigrp
topology

03

04

P 1.0.0.0/8, 1 successors, FD is 156160

05

via 21.1.1.1 (156160/128256), FastEthernet1/0

06

via 12.1.1.1 (2297856/128256), Serial0/1

07

08

/更改R2的出接口s0/1的帶寬,看會不會改變2297856這個數值大小/

09

R2(config)#
int
s 0/1

10

R2(config-if)#bandwidth 1000000 /將帶寬改成1000M/

11

R2(config-if)#
end

12

13

/查看一下,確實修改成功了/

14

R2#
show
interfaces
s 0/1

15

MTU 1500 bytes, BW 1000000 Kbit, DLY 20000 usec,

16

17

/再看R2拓撲表/

18

R2#
show
ip
eigrp
topology

19

20

P 1.0.0.0/8, 1 successors, FD is 156160

21

via 21.1.1.1 (156160/128256), FastEthernet1/0

22

via 12.1.1.1 (642560/128256), Serial0/1

23

/*

24

  • 可以看到,從s0/1去往1.0.0.0/8的度量值變成了642560,

25

  • 可以用公式來驗證這個數值是更改后的1000M帶寬作為參數計算得到的。

26

*/

可以通過下面的命令來查看某條路由的明細拓撲數據:
01

R2#
show
ip
eigrp
topology 1.0.0.0

02

IP-EIGRP (AS 100): Topology entry for 1.0.0.0/8

03

State is Passive, Query origin flag is 1, 1 Successor(s), FD is 156160

04

Routing Descriptor Blocks:

05

21.1.1.1 (FastEthernet1/0), from 21.1.1.1, Send flag is 0x0

06

/可行距離/報告距離/

07

Composite metric is (156160/128256), Route is Internal

08

Vector metric:

09

/去往目的地鏈路上的最低帶寬/

10

Minimum bandwidth is 100000 Kbit

11

/去往目的地鏈路上延時總和/

12

Total delay is 5100 microseconds

13

Reliability is 255/255

14

Load is 1/255

15

Minimum MTU is 1500

16

Hop count is 1

17

12.1.1.1 (Serial0/1), from 12.1.1.1, Send flag is 0x0

18

Composite metric is (642560/128256), Route is Internal

19

Vector metric:

20

Minimum bandwidth is 1000000 Kbit

21

Total delay is 25000 microseconds

22

Reliability is 255/255

23

Load is 1/255

24

Minimum MTU is 1500

25

Hop count is 1

0×4.EIGRP高級配置
介紹EIGRP高級配置前,先介紹一下DUAL算法的相關術語:
Successor(后繼):后繼就是到目標網絡花費最少的路由。FD(Feasible Distance,可行距離):到目標網絡的最小度量值。RD(Reported Distance,報告距離)又稱AD(Advertised Distance,通告距離):下一跳路由器通告的到相同目標網絡的距離。FS(Feasible Successor,可行后繼):可行后繼就是次優路徑。FC(Feasibility Condition,可行條件):可行條件是報告距離必須小于可行距離,也就是鄰路由到目標網絡的距離必須小于本路由到目標網絡的距離。
能出現在"show ip eigrp topology"中的非可行距離路徑,都滿足可行條件,都是可行后繼。
下面這個例子中列出的拓撲表很好的解釋了上面這些概念:
01

R2#
show
ip
eigrp
topology

02

03

P 1.0.0.0/8, 1 successors, FD is 156160

04

via 21.1.1.1 (156160/128256), FastEthernet1/0

05

via 12.1.1.1 (2297856/128256), Serial0/1

06

07

/*

08

  • 在上面的拓撲表顯示中:

09

  • R2去往1.0.0.0/8網絡有一條后繼
    "1 successors"
    ,

10

  • 可行距離是
    "FD is 156160"
    ,

11

  • 報告距離是
    "128256"
    ,

12

  • 可行后繼是
    "via 12.1.1.1 (2297856/128256), Serial0/1"

13

  • 能出現在這個命令下的,都滿足可行條件。

14

*/

a.非等值負載均衡
用下面這個實例來講解EIGRP非等值負載均衡的配置:


Cisco-CCNA-EIGRP-6
Cisco-CCNA-EIGRP-6

R1配置:
01

/關閉CDP協議,否則在以太網會有不匹配提示/

02

R1(config)#
no
cdp
run

03

R1(config)#
int
lo
0

04

R1(config-if)#
ip
add
1.1.1.1 255.255.255.0

05

R1(config-if)#
no
shut

06

R1(config-if)#
int
s 0/0

07

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

08

R1(config-if)#
no
shut

09

R1(config-if)#
int
fa 1/0

10

R1(config-if)#
ip
add
13.1.1.1 255.255.255.0

11

R1(config-if)#
no
shut

12

R1(config-if)#router
eigrp
100

13

R1(config-router)#
net
0.0.0.0

14

R1(config-router)#
end

R2配置:
01

R2(config)#
int
lo
0

02

R2(config-if)#
ip
add
2.2.2.2 255.255.255.0

03

R2(config-if)#
no
shut

04

R2(config-if)#
int
s 0/1

05

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

06

R2(config-if)#
no
shut

07

R2(config-if)#
int
s 0/0

08

R2(config-if)#
ip
add
23.1.1.2 255.255.255.0

09

R2(config-if)#
no
shut

10

R2(config-if)#router
eigrp
100

11

R2(config-router)#
net
0.0.0.0

12

R2(config-router)#
end

R3配置:
01

R3(config)#
no
cdp
run

02

R3(config)#
int
lo
0

03

R3(config-if)#
ip
add
3.3.3.3 255.255.255.0

04

R3(config-if)#
no
shut

05

R3(config-if)#
int
s 0/1

06

R3(config-if)#
ip
add
23.1.1.3 255.255.255.0

07

R3(config-if)#
no
shut

08

R3(config-if)#
int
fa 1/0

09

R3(config-if)#
ip
add
13.1.1.3 255.255.255.0

10

R3(config-if)#
no
shut

11

R3(config-if)#router
eigrp
100

12

R3(config-router)#
net
0.0.0.0

13

R3(config-router)#
end

配置完成后查看R1路由表:
01

R1#
show
ip
route

02

03

1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

04

C 1.1.1.0/24 is directly connected, Loopback0

05

D 1.0.0.0/8 is a summary, 00:07:03, Null0

06

D 2.0.0.0/8 [90/2297856] via 12.1.1.2, 00:03:10, Serial0/0

07

D 3.0.0.0/8 [90/156160] via 13.1.1.3, 00:03:10, FastEthernet1/0

08

D 23.0.0.0/8 [90/2172416] via 13.1.1.3, 00:03:10, FastEthernet1/0

09

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

10

C 12.1.1.0/24 is directly connected, Serial0/0

11

D 12.0.0.0/8 is a summary, 00:05:02, Null0

12

13.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

13

C 13.1.1.0/24 is directly connected, FastEthernet1/0

14

D 13.0.0.0/8 is a summary, 00:07:04, Null0

15

R1#

16

17

/注意,路由表中去往23.0.0.0/8的路徑只顯示了一條,而RIP則會顯示兩條,因為RIP僅僅通過跳數去判斷路徑的好壞,而EIGRP使用復合度量值,默認和帶寬和延時有關,前面已經說明。/

實際上去往23.0.0.0/8的路徑還有一條可行后繼,即通過R1,可以通過查看R1上針對23.0.0.0/8的拓撲數據庫看到另外一條可行后繼:
01

R1#
show
ip
eigrp
topology 23.0.0.0

02

IP-EIGRP (AS 100): Topology entry for 23.0.0.0/8

03

State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2172416

04

05

/這一條是后繼路由/

06

13.1.1.3 (FastEthernet1/0), from 13.1.1.3, Send flag is 0x0

07

Composite metric is (2172416/2169856), Route is Internal

08

09

/這一條是可行后繼/

10

12.1.1.2 (Serial0/0), from 12.1.1.2, Send flag is 0x0

11

Composite metric is (2681856/2169856), Route is Internal

可以使用下面的方法讓去往23.0.0.0/8的數據能夠很好的被分配到兩條線路上;
我們使用上面拓撲數據中最大的可行后繼的度量值(本例只有一個可行后繼度量值是2681856)除以后繼路徑的度量值(2172416),取比結果大的整數;
2681856/2172416≈1.234 , 所以取2作為不等價因子來配置非等值負載均衡:
01

R1(config)#router
eigrp
100

02

/配置非等值負載均衡,其中的2,就是上面計算的那個不等價因子/

03

R1(config-router)#variance 2

04

R1(config-router)#
end

05

06

/再次查看R1路由表,此時23.0.0.0/8出現了兩條路徑/

07

R1#
show
ip
route

08

09

D 23.0.0.0/8 [90/2172416] via 13.1.1.3, 00:00:42, FastEthernet1/0

10

[90/2681856] via 12.1.1.2, 00:00:42, Serial0/0

這里用到的不等價因子2,代表度量值小于"可行距離*2"且報告距離小于可行距離的路徑都可以進入路由表,使用下面的命令來驗證這一點:
01

/*

02

  • 這條命令可以顯示所有的路由拓撲,即使不滿足可行條件的也會顯示出來

03

  • 可以看到2.0.0.0/8、3.0.0.0/8,

04

  • 他們的第二條鏈路的度量值也小于
    "可行距離*2"
    ,

05

  • 但是這兩條鏈路不滿足可行條件,所以不能進入路由表。

06

*/

07

R1#
show
ip
eigrp
topology all-links

08

09

P 1.0.0.0/8, 1 successors, FD is 128256, serno 6

10

via Summary (128256/0), Null0

11

P 1.1.1.0/24, 1 successors, FD is 128256, serno 3

12

via Connected, Loopback0

13

P 2.0.0.0/8, 1 successors, FD is 2297856, serno 10

14

via 12.1.1.2 (2297856/128256), Serial0/0

15

via 13.1.1.3 (2300416/2297856), FastEthernet1/0

16

P 3.0.0.0/8, 1 successors, FD is 156160, serno 14

17

via 13.1.1.3 (156160/128256), FastEthernet1/0

18

via 12.1.1.2 (2809856/2297856), Serial0/0

19

P 12.0.0.0/8, 1 successors, FD is 2169856, serno 8

20

via Summary (2169856/0), Null0

21

P 12.1.1.0/24, 1 successors, FD is 2169856, serno 7

22

via Connected, Serial0/0

23

P 13.0.0.0/8, 1 successors, FD is 28160, serno 5

24

via Summary (28160/0), Null0

25

P 13.1.1.0/24, 1 successors, FD is 28160, serno 2

26

via Connected, FastEthernet1/0

27

P 23.0.0.0/8, 1 successors, FD is 2172416, serno 13

28

via 13.1.1.3 (2172416/2169856), FastEthernet1/0

29

via 12.1.1.2 (2681856/2169856), Serial0/0

b.手動匯總
EIGRP和RIP一樣,默認在主類網絡的邊界自動匯總,我們來看下面這個實例:


Cisco-CCNA-EIGRP-7
Cisco-CCNA-EIGRP-7

R1配置:
01

R1(config)#
int
lo
0

02

R1(config-if)#
ip
add
12.1.2.1 255.255.255.128

03

R1(config-if)#
no
shut

04

R1(config-if)#
int
s 0/0

05

R1(config-if)#
ip
add
12.1.1.1 255.255.255.0

06

R1(config-if)#
no
shut

07

R1(config-if)#router
eigrp
100

08

R1(config-router)#
net
12.1.1.0 0.0.0.255

09

R1(config-router)#
net
12.1.2.0 0.0.0.127

10

R1(config-router)#
end

R2配置:
01

R2(config)#
int
lo
0

02

R2(config-if)#
ip
add
2.2.0.1 255.255.255.0

03

R2(config-if)#
no
shut

04

R2(config-if)#
int
lo
1

05

R2(config-if)#
ip
add
2.2.1.1 255.255.255.0

06

R2(config-if)#
no
shut

07

R2(config-if)#
int
s 0/1

08

R2(config-if)#
ip
add
12.1.1.2 255.255.255.0

09

R2(config-if)#
no
shut1

10

R2(config-if)#router
eigrp
100

11

R2(config-router)#
net
0.0.0.0

12

R2(config-router)#
end

配置完成后分別查看R1和R2的路由表:
01

/*

02

  • 可以看到R1的路由表中2.0.0.0/8是R2匯總后發送過來的條目

03

  • R2在將自己的Lo0和Lo1從s0/1向外發送的時候,

04

  • 發現發送的接口s0/1的IP是12.1.1.2,默認的主類網絡是12.0.0.0/8,

05

  • 這和Lo0和Lo1的默認主類網絡(2.0.0.0/8)不同,

06

  • 所以R2在自己的s0/1自動匯總這兩條路由成2.0.0.0/8發送給R1。

07

*/

08

R1#
show
ip
route

09

10

D 2.0.0.0/8 [90/2297856] via 12.1.1.2, 00:00:53, Serial0/0

11

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

12

C 12.1.1.0/24 is directly connected, Serial0/0

13

C 12.1.2.0/25 is directly connected, Loopback0

14

15

/*

16

  • 與RIP不同的是,EIGRP自動匯總后,會在本地產生一條指向空接口的匯總路由

17

18

"2.0.0.0/8 is a summary, 00:02:59, Null0"
,

19

  • 是Lo0和Lo1在本地s0/1匯總時產生的。

20

21

"12.0.0.0/8 is a summary, 00:02:59, Null0"
,

22

  • 是R2將自己的s0/1接口路由和從R2接收到的12.1.2.0/25,

23

  • 從Lo0和Lo1發送出去時的匯總路由。

24

25

"12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:00:50, Serial0/1"

26

  • 這一條從R1發過來的路由沒有被匯總的原因是,

27

  • R1的發送接口s0/0(12.1.1.1)的默認主類網絡地址12.0.0.0/8,

28

  • 和這條被發送的路由條目的默認主類網絡地址相同,

29

  • 自動匯總只發生在主類網絡邊界。并且從這里可以看出EIGRP支持VLSM。

30

*/

31

R2#
show
ip
route

32

33

2.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

34

C 2.2.0.0/24 is directly connected, Loopback0

35

C 2.2.1.0/24 is directly connected, Loopback1

36

D 2.0.0.0/8 is a summary, 00:02:59, Null0

37

12.0.0.0/8 is variably subnetted, 3 subnets, 3 masks

38

C 12.1.1.0/24 is directly connected, Serial0/1

39

D 12.0.0.0/8 is a summary, 00:02:59, Null0

40

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:00:50, Serial0/1

關于上面的R2的路由表中“12.0.0.0/8 is a summary, 00:02:59, Null0”這條匯總條目是沒有必要的,因為是R2向自己的回環接口發送EIGEP分組的時候產生的匯總路由,可以使用下面的命令將回環接口設置成被動接口,即不發送分組,來減小路由表大小:
01

/將回環接口設置成被動接口/

02

R2(config)#router
eigrp
100

03

R2(config-router)#
passive-interface
lo
0

04

R2(config-router)#
passive-interface
lo
1

05

R2(config-router)#
end

06

07

/再次查看R2的路由表,就看不到12.0.0.0/8的匯總路由了/

08

R2#
show
ip
route

09

10

2.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

11

C 2.2.0.0/24 is directly connected, Loopback0

12

C 2.2.1.0/24 is directly connected, Loopback1

13

D 2.0.0.0/8 is a summary, 00:18:02, Null0

14

12.0.0.0/8 is variably subnetted, 3 subnets, 3 masks

15

C 12.1.1.0/24 is directly connected, Serial0/1

16

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:15:53, Serial0/1

接下來,關閉EIGRP的自動匯總,使用手動匯總:
01

/關閉R1的自動匯總/

02

R1(config)#router
eigrp
100

03

R1(config-router)#
no
auto-summary

04

05

/關閉R2的自動匯總/

06

R2(config)#router
eigrp
100

07

R2(config-router)#
no
auto-summary

08

09

/*

10

  • 關閉匯總后查看R1和R2的路由表

11

  • R1上的2.0.0.0/8匯總路由變成了兩條明細路由,

12

  • 所有的指向空接口的條目消失了

13

*/

14

R1#
show
ip
route

15

16

2.0.0.0/24 is subnetted, 2 subnets

17

D 2.2.0.0 [90/2297856] via 12.1.1.2, 00:00:06, Serial0/0

18

D 2.2.1.0 [90/2297856] via 12.1.1.2, 00:00:06, Serial0/0

19

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

20

C 12.1.1.0/24 is directly connected, Serial0/0

21

C 12.1.2.0/25 is directly connected, Loopback0

22

23

R2#
show
ip
route

24

25

2.0.0.0/24 is subnetted, 2 subnets

26

C 2.2.0.0 is directly connected, Loopback0

27

C 2.2.1.0 is directly connected, Loopback1

28

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

29

C 12.1.1.0/24 is directly connected, Serial0/1

30

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:25:08, Serial0/1

31

32

/在R2上使用手動匯總將Lo0和Lo1匯總成一條/

33

R2(config)#
int
s 0/1 /手動匯總是在主類網絡的邊界接口上配置的/

34

R2(config-if)#
ip
summary-address
eigrp
100 2.2.0.0 255.255.254.0

35

R2(config-if)#
end

36

37

/再次查看R1和R2的路由表/

38

R1#
show
ip
route

39

40

2.0.0.0/23 is subnetted, 1 subnets /匯總后發過來的條目/

41

D 2.2.0.0 [90/2297856] via 12.1.1.2, 00:01:32, Serial0/0

42

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

43

C 12.1.1.0/24 is directly connected, Serial0/0

44

C 12.1.2.0/25 is directly connected, Loopback0

45

46

/手動匯總后R2上自動生成了一條匯總路由,指向空接口/

47

R2#
show
ip
route

48

49

2.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

50

C 2.2.0.0/24 is directly connected, Loopback0

51

D 2.2.0.0/23 is a summary, 00:02:20, Null0

52

C 2.2.1.0/24 is directly connected, Loopback1

53

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

54

C 12.1.1.0/24 is directly connected, Serial0/1

55

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:30:19, Serial0/1

c.外部路由
接著上面的實驗,在R1上新增一個Loopback1,IP地址設置成1.1.1.1/24 :
1

R1(config)#
int
lo
1

2

R1(config-if)#
ip
add
1.1.1.1 255.255.255.0

3

R1(config-if)#
no
shut

4

R1(config-if)#
end

這個時候在R2上查看路由表,看不到R1的回環接口lo1的條目,這是因為R1配置的時候,并沒有使用net 0.0.0.0宣告全部的接口,現在使用路由重發布技術,將R1的lo1接口發布進EIGRP,R1配置如下:
01

R1(config)#router
eigrp
100

02

/重發布直連路由/

03

R1(config-router)#
redistribute
connected

04

R1(config-router)#
end

05

06

/*

07

  • 在R2上查看路由表,發現一條D EX開頭的條目,

08

"D EX"
表示這條路由條目是EIGRP外部路由,不是起源EIGRP內部,

09

  • 可能是用重發布發布進EIGRP進程的,EIGRP外部路由默認管理距離是170。

10

*/

11

R2#
show
ip
route

12

13

1.0.0.0/24 is subnetted, 1 subnets

14

D EX 1.1.1.0 [170/2297856] via 12.1.1.1, 00:00:51, Serial0/1

15

2.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

16

C 2.2.0.0/24 is directly connected, Loopback0

17

D 2.2.0.0/23 is a summary, 00:13:00, Null0

18

C 2.2.1.0/24 is directly connected, Loopback1

19

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

20

C 12.1.1.0/24 is directly connected, Serial0/1

21

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:40:59, Serial0/1

22

23

/可以在拓撲表中看到這條外部路由的詳細信息/

24

R2#
show
ip
eigrp
topology 1.1.1.0/24

25

IP-EIGRP (AS 100): Topology entry for 1.1.1.0/24

26

State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856

27

Routing Descriptor Blocks:

28

12.1.1.1 (Serial0/1), from 12.1.1.1, Send flag is 0x0

29

/Route is External,這是一條外部路由/

30

Composite metric is (2297856/128256), Route is External

31

32

/External protocol is Connected,重發布的是外部直連路由/

33

External protocol is Connected, external metric is 0

d.重發布默認路由
可以使用相同的方法重發布一條外部默認路由,在R1上配置一條默認路由,然后再將這條默認路由使用靜態路由的形式重發布到EIGRP進程里:
01

/R1上所有未知數據從lo1接口發出/

02

R1(config)#
ip
route
0.0.0.0 0.0.0.0 lo1

03

R1(config)#router
eigrp
100

04

/重發布靜態路由/

05

R1(config-router)#
redistribute
static

06

R1(config-router)#
end

07

08

/在R2上查看路由表,可以看到來自外部的默認路由
"D
EX"
*/

09

R2#
show
ip
route

10

11

Gateway of last resort is 12.1.1.1 to
network
0.0.0.0

12

13

1.0.0.0/24 is subnetted, 1 subnets

14

D EX 1.1.1.0 [170/2297856] via 12.1.1.1, 00:15:54, Serial0/1

15

2.0.0.0/8 is variably subnetted, 3 subnets, 2 masks

16

C 2.2.0.0/24 is directly connected, Loopback0

17

D 2.2.0.0/23 is a summary, 00:28:03, Null0

18

C 2.2.1.0/24 is directly connected, Loopback1

19

12.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

20

C 12.1.1.0/24 is directly connected, Serial0/1

21

D 12.1.2.0/25 [90/2297856] via 12.1.1.1, 00:56:02, Serial0/1

22

D*EX 0.0.0.0/0 [170/2297856] via 12.1.1.1, 00:00:05, Serial0/1

e.驗證
EIGRP配置驗證的模式和RIPv2協議一樣,在全局配置模式下創建密鑰鏈,在接口中調用密鑰鏈并且制定驗證模式,接著上面的實驗,在R1和R2之間,使用MD5驗證:
01

/R1配置驗證/

02

/密鑰鏈標識ccnakey1,只具有本地意義/

03

R1(config)#
key
chain
ccnakey1

04

R1(config-keychain)#
key
1

05

/密鑰密碼,雙方需要相同/

06

R1(config-keychain-
key
)#
key-string
123456

07

/在和R2相連的接口上調用密鑰鏈,并指MD5加密/

08

R1(config-keychain-
key
)#
int
s 0/0

09

R1(config-if)#
ip
authentication
key-chain
eigrp
100 ccnakey1

10

R1(config-if)#
ip
authentication
mode
eigrp
100 md5

11

R1(config-if)#
end

12

13

/R2配置驗證/

14

R2(config)#
key
chain
ccnakey2

15

R2(config-keychain)#
key
1

16

R2(config-keychain-
key
)#
key

17

R2(config-keychain-
key
)#
key-string
123456

18

R2(config-keychain-
key
)#
int
s 0/1

19

R2(config-if)#
ip
authentication
mode
eigrp
100 md5

20

R2(config-if)#
ip
authentication
key-chain
eigrp
100 ccnakey2

21

R2(config-if)#
end

配置完成后,R1和R2鄰居關系將重新建立,并且能夠交換EIGRP信息;大家可以嘗試將兩邊的密鑰密碼配置的不相同,看看它們可不可以交換EIGRP信息。
f.性能調整
默認情況下EIGRP使用接口50%的帶寬來傳遞EIGRP信息,可以使用下面的命令來更改EIGRP默認的接口帶寬占用率:

1

/將R1的s0/0接口的EIGRP帶寬占用率調整成5%/

2

R1(config)#
int
s 0/0

3

R1(config-if)#
ip
bandwidth-percent
eigrp
100 5

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內容