Cisco Packet Tracer 路由实验:RIP、OSPF、BGP 配置与验证

1. RIP

alt text

1.1. RIPv1

1.1.1. 拓扑

alt text

1.1.2. 配置

R0:

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
en 
conf t

hostname R0

int g0/0
ip add 192.168.0.254 255.255.255.0
no shu

int g0/1
ip add 10.0.0.1 255.0.0.0
no shu

int s0/0/0
ip add 30.0.0.1 255.0.0.0
ip rip triggered
no shu

router rip
! 可以直接宣告与接口IP地址在"同一主类网络"的任意IP地址,IOS会自动将该地址转换为所属的主类网络地址
network 192.168.0.254
network 10.0.0.1
network 30.0.0.1

do show ru | be rip
! 可以看到运行配置中显示的RIP网络宣告已将最初输入的主机地址自动转换成了其所属的主类网络地址

R1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
en 
conf t

hostname R1

int g0/0
ip add 192.168.1.254 255.255.255.0
no shu

int g0/1
ip add 20.0.0.1 255.0.0.0
no shu

int s0/0/0
ip add 30.0.0.2 255.0.0.0
no shu

router rip
network 192.168.1.254
network 20.0.0.1
network 30.0.0.2

R2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
en
conf t

hostname R2

int g0/0
ip add 10.0.0.2 255.0.0.0
no shu

int g0/1
ip add 20.0.0.2 255.0.0.0
no shu

router rip
network 10.0.0.2
network 20.0.0.2

1.1.3. 验证

  1. 查看各路由器路由表(show ip route rip)

    R0:
    alt text

    R1:
    alt text

    R2:
    alt text

  • 路由表中类型为R的路由条目就是路由器通过RIP协议获取到的。
  • 路由条目中的[120/1]称为度量(Metric),其中120表示RIP协议(110表示OSPF协议),也叫管理距离,可把管理距离看作可信程度或优先级。例如,如果到达同一目的网络有两条路由条目,一条是RIP得出的,另一条是OSPF得出的,则路由器会选择OSPF得出的那条路由条目,因为它的管理距离更短(即更可信或优先级更高)。[120/1]中的**1是RIP距离(或称度量值和跳数)**,表明从路由器到达目的网络的RIP距离为1。
  • 当同一目标网络出现多个RIP路由时,就表示路由器学习到了到达该网络的多条度量值相同的等价RIP路由,路由器通常会利用这些等价路由进行负载均衡
  1. 验证RIP的等价负载均衡(R2 Ping R0 的 30.0.0.1)
    R2到R0的s0/0/0有2条路径:

    • 路径1:R2 → R0 → R0的接口s0/0/0
    • 路径1:R2 → R1 → R0的接口s0/0/0
      RIP认为路径1和路径2是两条等价的路由,因为他们的RIP跳数都为1,因此ICMP报文会交替在这两条路径中传送,即使R1到R0的这段链路是带宽为1.544Mb/s的串行链路。
      alt text
  2. 验证RIP认为好的路由是“RIP跳数最短”的路由(PC0 Ping PC1)
    从拓扑图来看,PC0 到 PC1 有2条路径:

    • PC0 → R0 → R1 → PC1
    • PC0 → R0 → R2 → R1 → PC1
      RIP认为路径1是好的路由,尽管路径1中R0到R1之间的链路带宽比路径2中各链路带宽小很多,但RIP并不关心带宽指标,RIP认为好的路由是经过路由器数量最少的路由,也就是“RIP跳数最短”的路由。
      alt text
  3. 观察RIP动态更新路由表(debug ip rip)
    使用RIP的路由器会每隔30s向另据路由器发送RIP广播更新报文,报文中含有路由器的路由表内容。收到RIP更新报文的另据路由器,会根据报文中的路由表内容,基于距离向量算法来更新自己的路由表内容。
    alt text

1.2. RIPv2

1.2.1. 拓扑

alt text

1.2.2. 配置

R0:

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
en 
conf t

int g0/0
ip add 192.168.16.126 255.255.255.128
no shu

int g0/1
ip add 10.0.0.1 255.255.255.252
no shu

int s0/0/0
ip add 30.0.0.1 255.255.255.252
no shu

router rip
! 思科2911路由器默认使用RIPv1
version 2
! 可以直接宣告与接口IP地址在"同一主类网络"的任意IP地址,IOS会自动将该地址转换为所属的主类网络地址
network 192.168.16.126
network 10.0.0.1
network 30.0.0.1
! 关闭默认开启的自动路由汇总,防止丢失子网信息,导致路由信息不精确
no auto-summary

do show ru | be rip
! 可以看到运行配置中显示的RIP网络宣告已将最初输入的主机地址自动转换成了其所属的主类网络地址

R1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
en 
conf t

int g0/0
ip add 192.168.16.190 255.255.255.192
no shu

int g0/1
ip add 20.0.0.1 255.255.255.252
no shu

int s0/0/0
ip add 30.0.0.2 255.255.255.252
no shu

router rip
version 2
network 192.168.16.190
network 20.0.0.1
network 30.0.0.2
no auto-summary

R2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
en 
conf t

int g0/0
ip add 10.0.0.2 255.255.255.252
no shu

int g0/1
ip add 20.0.0.2 255.255.255.252
no shu

router rip
version 2
network 10.0.0.2
network 20.0.0.2
no auto-summary

1.2.3. 验证

  1. 查看各路由器路由表(show ip route rip)
    R0:
    alt text

    R1:
    alt text

    R2:
    alt text

  2. 验证RIPv1是有类路由协议,不支持VLSM(PC0 Ping PC1)
    分别在3台路由器的RIP路由配置模式下执行version 1命令,将RIP版本切换回V1,然后尝试用PC0 Ping PC1,可以看到目标主机不可达:
    alt text
    查看R0的路由表,可以看到R0压根没有去往PC1所在的192.168.16.128/26网段的路由条目,R1同样也没有去往PC0所在的192.168.16.0/25网段的路由条目。这是因为RIPv1是有类路由协议,它在路由更新中不携带子网掩码信息,由于RIPv1无法传递子网掩码信息,R0宣告192.168.16.0网络时,R1只能接收到路由汇总后的192.168.16.0/24这个有类网络路由,而不知道更精确的192.168.16.0/25子网信息。同样,R1宣告192.168.16.0网络时,R0也只能接收到路由汇总后的192.168.16.0/24这个有类网络路由,而不知道192.168.16.128/26子网的存在。并且由于R0和R1宣告的网络都相同(网络重叠),二者会忽略此网络,也就没有显示在路由表上了。而R2由于会收到R0和R1宣告的主类网络192.168.16.0/24,会形成一条等价路由,但和PC进行通信时,会有一半的流量丢包:
    alt text

  3. 验证RIPv2组播发送RIP更新报文(debug ip rip)
    RIPv2的RIP更新报文被封装在目的IP地址为224.0.0.9的组播IP数据报中发送:
    alt text

2. OSPF

2.1. OSPF单区域

2.1.1. 拓扑

alt text

2.1.2. 配置

R0:

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
en
conf t

hostname R0

int g0/0
ip add 192.168.16.126 255.255.255.128
no shu

int g0/1
ip add 10.0.0.1 255.255.255.252
! 在接口开启ospf的md5认证
ip ospf authentication message-digest
! 配置md5认证的key_id和key值(密码)
ip ospf message-digest-key 1 md5 mkbk
no shu

int s0/0/0
ip add 30.0.0.1 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

! 配置进程号为100的ospf
router ospf 1
! 宣告路由器自己的直连网络(可使用接口IP,IOS会自动根据提供的反掩码转换为网络地址),需使用反掩码(通配符掩码),并指定区域标识符为0
network 192.168.16.126 0.0.0.127 area 0
network 10.0.0.1 0.0.0.3 area 0
network 30.0.0.1 0.0.0.3 area 0

! 查看ospf配置
do show run | be ospf

R1:

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
en
conf t

hostname R1

int g0/0
ipa add 192.168.16.190 255.255.255.192
no shu

int g0/1
ip add 20.0.0.1 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

int s0/0/0
ip add 30.0.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

router ospf 1
network 192.168.16.190 0.0.0.63 area 0
network 20.0.0.1 0.0.0.3 area 0
network 30.0.0.1 0.0.0.3 area 0

do show run | be ospf

R2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
en
conf t

hostname R2

int g0/0
ip add 10.0.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

int g0/1
ip add 20.0.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

router ospf 1
network 10.0.0.2 0.0.0.3 area 0
network 20.0.0.2 0.0.0.3 area 0

do show run | be ospf

2.1.3. 验证

  1. 查看个路由器路由表(show ip route)
    R0:
    alt text

    R1:
    alt text

    R2:
    alt text

  • 路由表中类型为O的路由条目就是路由器通过OSPF协议获取到的。
  • 路由条目中的[110/2]称为度量(Metric),其中110表示OSPF协议(120表示RIP协议),也叫管理距离,可把管理距离看作可信程度或优先级。例如,如果到达同一目的网络有两条路由条目,一条是RIP得出的,另一条是OSPF得出的,则路由器会选择OSPF得出的那条路由条目,因为它的管理距离更短(即更可信或优先级更高)。[110/2]中的2是OSPF路径代价(Cost),思科路由器的链路代价计算方法是用100Mb/s除以链路带宽,结果舍去小数,不足1按1算
  1. 验证OSPF认为好的路由是“路径代价最少”的路由(PC0 Ping PC1)
    PC0到PC1有2条路径:

    • PC0 → R0 → R1 → PC1
    • PC0 → R0 → R2 → R1 → PC1PC1
      OSPF认为路径2是好的路由,因为路径2的代价(3)小于路径1的代价(65),尽管路径2中所经过的路由器的数量比路径1中所经过的路由器数量多一个,但OSPF并不关心跳数指标,OSPF认为好的路由是“路径代价最少”的路由。
      alt text
  2. 验证OSPF会每隔10s发送问候(Hello)分组(debug ip ospf events)
    alt text
    从图中可以看到R0每隔10s会分别从自己的s0/0/0和g0/1收到来自R1(30.0.0.2)和R2(10.0.0.2)的Hello分组。周期性发送Hello分组的目的是,发现和维护邻居路由器(show ip ospf neighbor)的可达性:
    alt text

  3. 验证OSPF默认选择活动物理接口中最大的IP地址作为Router-ID
    设备在没有手动指定Router-ID以及设置活动loopback接口时,默认会选择物理接口中最大的IP地址作为Router-ID。例如在R2上查看OSPF邻居列表,可以看到R0和R1的Router-ID都为设备中的最大的C类地址:
    alt text

2.2. OSPF多区域

2.2.1. 拓扑

alt text

2.2.2. 配置

R0:

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
en
conf t

hostname R0

int g0/0
ip add 10.0.0.1 255.255.255.252
! 在接口开启ospf的md5认证
ip ospf authentication message-digest
! 配置md5认证的key_id和key值(密码)
ip ospf message-digest-key 1 md5 mkbk
no shu

int g0/1
ip add 172.16.0.1 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 wxdx
no shu

router ospf 1
! 宣告直连网络以及指定OSPF区域标识符
network 10.0.0.1 0.0.0.3 area 0
network 172.16.0.1 0.0.0.3 area 100

do show ru | be ospf
q

R1:

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
en
conf t

hostname R1

! 添加环回口,用作OSPF的Router-ID
int loop1
ip add 1.0.0.0 255.255.255.255

int g0/0
ip add 10.0.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 mkbk
no shu

int g0/1
ip add 172.19.0.1 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 wxdx
no shu

router ospf 1
network 10.0.0.2 0.0.0.3 area 0
network 172.19.0.1 0.0.0.3 area 200

do show ru | be ospf

R2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
en
conf t

hostname R2

int g0/0
ip add 172.16.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 wxdx
no shu

int g0/1
ip add 192.168.0.254 255.255.255.0
no shu

router ospf 1
! 手动指定Router-ID,用于标识路由器以及DR选举
router-id 0.0.0.2
network 172.16.0.2 0.0.0.3 area 100
network 192.168.0.254 0.0.0.255 area 100

do show ru | be ospf

R3:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
en
conf t

hostname R3

int g0/0
ip add 172.19.0.2 255.255.255.252
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 wxdx
no shu

int g0/1
ip add 192.168.1.254 255.255.255.0
no shu

router ospf 1
router-id 0.0.0.3
network 172.19.0.2 0.0.0.3 area 200
network 192.168.1.254 0.0.0.255 area 200

do show ru | be ospf

2.2.3. 验证

  1. 查看各路由器路由表(show ip route)
    R0:
    alt text

    R1:
    alt text

    R2:
    alt text

    R3:
    alt text

  • 以R1为例,R1同时属于area 0(主干区域)和area 200,因此R1是一台ABR(区域边界路由器, Area Border Router),ABR负责将非主干区域的路由信息汇总后通告到主干区域,以及将主干区域的路由信息通告到非主干区域。R1学习到的目的网络172.16.0.0/30和192.168.0.0/24,都属于area 100,对于R1来说,area 100是一个不同的区域,因此这2条路由被标记为IA(区域间路由, Inter Area),并且下一跳指向了 area 0的邻居R0(10.0.0.1)。
  1. 观察OSPF事件(debug ip ospf events)
    alt text
    R0每隔10s会收到来自R1(area 0)和R2(area 100)的Hello报文,维护邻居关系。

  2. 验证Router-ID的选择符合预期(show ip ospf database)

    • R0的Router-ID为物理接口中最大的IP地址(172.16.0.1):
      alt text
    • R1的Router-ID为loopback1的IP地址(1.0.0.0):
      alt text
    • R2和R3的Router-ID为手动指定的地址:
      alt text
      alt text

3. BGP

3.1. 拓扑

R0、R1 和R2分别属于AS100、AS200和AS300,它们互相建立eBGP(External BGP)邻居关系并交换各自AS外部的路由信息,从而实现跨自治系统的网络互联:

alt text

3.2. 配置

R0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
en
conf t

hostname R0

int g0/0
ip add 10.0.0.1 255.255.255.0
no shu

! 启动BGP进程并指定自治系统编号ASN为100
router bgp 100
! 指定bgp邻居路由器以及所属ASN
neighbor 10.0.0.2 remote-as 200
! 宣告路由器自己的直连网络给bgp邻居
network 10.0.0.1 mask 255.255.255.0

do show ru | be bgp

R1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
en
conf t

hostname R1

int g0/0
ip add 10.0.0.2 255.255.255.0
no shu

int g0/1
ip add 20.0.0.2 255.255.255.0
no shu

router bgp 200
neighbor 10.0.0.1 remote-as 100
neighbor 20.0.0.1 remote-as 300
! R1直连R0和R1,无需宣告自己的直连路由

do show ru | be bgp

R2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
en
conf t

hostname R2

int g0/0
ip add 20.0.0.1 255.255.255.0
no shu

router bgp 300
neighbor 20.0.0.2 remote-as 200
network 20.0.0.1 mask 255.255.255.0

do show ru | be bgp

3.3. 验证

  1. 查看各路由器路由表(show ip route bgp)
    R0:
    alt text
    R1:
    alt text
    R2:
    alt text

  2. 验证bgp使用使用TCP 179端口
    alt text

4. 参考

https://book.douban.com/subject/36553580/