上文提到要 po 一篇文,现在发表一下自己的思路和配置。原文:【有点儿意思系列 06】一个看起来简单的案例,再上图。
Request and Solution
PC1、PC2 分属 VLAN10 和 VLAN20;DHCP 服务器属 VLAN30 ,PC1 和 PC2 从 DHCP 服务器自动获取地址。
S:根据上下文需求,确定 R3 和 R4 是热备组网。R3 和 R4 上配置子接口,配置 VRRP ;业务地址段和 DHCPServer 不在同一网段,所以需要在业务网段的网关上配置 DHCP 中继。实验中使用一台路由器模拟 DHCPServer,上面配置分配给 VLAN10,VLAN20 的地址池。
1
2
3
4
5
6
7
8
9
10
11
12
13! --- DHCPServer 配置
!
ip dhcp excluded-address 10.1.10.252 10.1.10.254
ip dhcp excluded-address 10.1.20.252 10.1.20.254
!
ip dhcp pool vlan10
network 10.1.10.0 255.255.255.0
default-router 10.1.10.254
!
ip dhcp pool vlan20
network 10.1.20.0 255.255.255.0
default-router 10.1.20.254
!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! --- R3 配置
!
interface Ethernet0/1.10
encapsulation dot1Q 10
ip address 10.1.10.252 255.255.255.0
ip helper-address 10.1.30.1
vrrp 10 ip 10.1.10.254
vrrp 10 priority 120
vrrp 10 track 1 decrement 21
!
interface Ethernet0/1.20
encapsulation dot1Q 20
ip address 10.1.20.252 255.255.255.0
ip helper-address 10.1.30.1
vrrp 20 ip 10.1.20.254
!
interface Ethernet0/1.30
encapsulation dot1Q 30
ip address 10.1.30.252 255.255.255.0
vrrp 30 ip 10.1.30.254
vrrp 30 priority 120
vrrp 30 track 1 decrement 21
! --- 网管地址网关
interface Ethernet0/1.99
encapsulation dot1Q 99
ip address 20.1.1.252 255.255.255.0
vrrp 99 ip 20.1.1.254
vrrp 99 priority 120
vrrp 99 track 1 decrement 21
!SW4 是内网用户接入交换机(仅具二层功能),要求内网两个网段的用户均能 telnet 到该设备。
S:配置 VLAN ,划分接口,配置 Trunk,配置默认网关和远程网管
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! --- SW4 配置
!
interface Ethernet0/0
switchport trunk allowed vlan 10,20,30,99
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface Ethernet0/1
switchport trunk allowed vlan 10,20,30,99
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface Ethernet1/1
switchport access vlan 10
!
interface Ethernet1/2
switchport access vlan 20
!
interface Ethernet1/3
switchport access vlan 30
! --- 网管IP地址
interface Vlan99
ip address 20.1.1.10 255.255.255.0
! -- 本想使用 ip default-gateway,但是不起作用,下面这条效果是一样
ip route 0.0.0.0 0.0.0.0 20.1.1.254
! --- 网管配置 略
……由于 VPCS 不支持 Telnet ,此处使用 DHCPServer 做测试。
R3 和 R4 作为内网用户的网关设备,互为热备份。
S:这一条前面提过了,整个拓扑完整配置后边发,我打个包。
R3、R4、SW2 及 SW3 上不允许出现任何手工配置的静态路由条目。
S:好的,满足你。
SW1 采用重发布的方式,将直连的服务器网段路由(如10.1.100.0/24)注入 EIGRP。
S:好的,满足你。
内网用户(PC1、PC2)访问核心服务器 Server(10.1.100.1)的数据流走向如下:
PC1 访问 Server:R3 > R1 > SW2 > SW1 > Server;
PC2 访问 Server:R4 > R2 > SW3 > SW1 > Server;
沿途任何设备上到达 Server 的路由不允许出现负载均衡,且 PC 访问 Server 的流量往返路径一致。
S:在配置完路由协议后,查看沿途设备路由表发现到达 Server 的路由出现负载均衡是正常现象,旁观大局,逐个处理就行。
但是有一个现象我不知是模拟器的 Bug 还是镜像的问题,查看 SW3 和 SW4 ,总有一台设备到达 Server 的路由是这样的:
1
D EX 10.1.100.0/24 [170/307200]
另一台学习到去往 Server 网段的路由是从上面这台学习到的外部路由,重启两台交换机的 OSPF 进程,这条路由又可能显示在第二台了。我又用 GNS3 做了测试,也是这种情况,按理说加载到路由表的不应该是管理距离为 110 的 OSPF 外部路由么?
我思考了一番,可能是 OSPF 进程启动先后顺序的问题,先启动的交换机 OSPF 进程加载了 EIGRP 外部路由,而后启动的交换机 OSPF 进程学习到 EIGRP 外部路由和 OSPF 外部路由,按照规则选择了管理距离值较小的 OSPF 路由条目。
PC1 访问 Server:R3 > R1 > SW2 > SW1 > Server;
1
2
3
4
5! --- R1 配置,修改 OSPF 入向接口的 cost ,使从 e0/0 收到去往10.1.100.0网段的路由更优
!
interface Ethernet0/1
ip ospf cost 11
!1
2
3
4
5
6
7
8! --- SW2 配置, 在 OSPF 进程下过滤入方向收到的去往 10.1.100.0 网段的条目,为什么这么做呢,从后面需求看,断掉 SW2/SW3 与 SW1 的线路之一,去往 Server的流量就不需要经过断掉线路这台交换机,而且断掉线路还要流量经过这台设备,走了个直角线路,并不是最优路径
!
router ospf 200
distribute-list 10 in
!
access-list 10 deny 10.1.100.0 0.0.0.255
access-list 10 permit any
!PC2 访问 Server :R4 > R2 > SW3 > SW1 > Server;
思路和 PC1 访问 Server 一样,逆推一下即可,不占用篇幅了(懒得码字)
PC1 访问 Server 回程路径: Server> SW1 > SW2 > R1 >R3 ;
1
2
3
4
5
6
7
8
9! --- SW1 配置,观察到去往内网网段的路由条目是负载均衡,配置偏移列表和指定入向接口,增加希望不要出现在路由表里的条目 metric 偏移,影响路由表加载
!
router eigrp 100
offset-list 20 in 1024 Ethernet0/2
offset-list 10 in 1024 Ethernet0/1
!
access-list 10 permit 10.1.20.0 0.0.0.255
access-list 20 permit 10.1.10.0 0.0.0.255
!1
2
3
4
5! --- SW2 配置,修改 e0/3 接口 cost,使得从该接口学习到去往 10.1.10.0 和 10.1.20.0 网段的路由不是最优路由
!
interface Ethernet0/3
ip ospf cost 11
!PC2 访问 Server 回程路径: Server> SW1 > SW3 > R2 >R3 ;
思路和 PC1 访问 Server 回程路径一样,逆推一下即可,不占用篇幅了(懒得码字)
要求 SW2 和 SW3 访问 Server 都走最优路径,即 SW2 前往 Server 的数据流走 SW1,SW3 前往 Server 的数据流也直接到 SW1。
S:这一条也佐证了我在上面说到的流量走直角路径不是最优的想法。说的通俗一点就是:SW1 上的有流量要去往 Server 只能从 e0/1 出去,不走直角。即使 SW1 上的出口线路故障了也不走,走的路径是:拓扑上的对角线。退一步来说当 SW2/SW3 的出口线路故障了,下联的 R1/R2 不会从 SW2/SW3 学习到去往 Server 的路由条目。SW2 也是这个道理。
SW1 上关于 10.1.10.0/24 和 10.1.20.0/24 的路由不应该出现等价负载均衡,正常情况下访问 10.0/24 网段的数据流走 SW2,访问2 0.0/24 网段的数据流走 SW3。
S:在 PC1/PC2 访问 Server 的回程路径时候已经解决这一条,不占用篇幅了(懒得码字)。
当 SW1-SW2 之间的链路 DOWN 掉时,PC1 访问 Server 的数据流切换至路径: R3>R1>SW3>SW1>Server,且往返路径一致。而当 SW1-SW3 之间的链路 DOWN 掉时,PC2 应该仍然能够访问 Server,情况类似。
S:正如我前面所说的:当 SW2/SW3 的出口线路故障了,下联的 R1/R2 也不会从 SW2/SW3 学习到去往 Server 的路由条目。此时去往 Server 的流量已经在 R1/R2 通过走对角线的路径来到 SW3/SW2 上。
重点解决回程的路径。因为前面已经修改了 SW2 和 SW3 上的 e0/3 的 cost ,这就使得当 SW1-SW2 之间的链路 DOWN 掉或者 SW1-SW3 之间的链路 DOWN 掉时,SW3/SW2 去往 10.1.10.0 和 10.1.20.0 网段都是直线往下经过 R2 或者 R1 回程到业务网段,并不符合需求。需要添加策略路由 PBR 实现往返路径一致。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20! --- SW2 配置,配置匹配去往 10.1.20.0 网段的 ACL,配置 route-map 匹配 ACL ,设置去往10.1.20.0 网段的下一跳地址,配置 SLA 监测,最后在 e0/1 调用
!
access-list 101 permit ip any 10.1.20.0 0.0.0.255
!
route-map pbr_20.0 permit 10
match ip address 101
set ip next-hop verify-availability 10.1.254.105 1 track 1
!
ip sla 1
icmp-echo 10.1.254.105 source-interface Ethernet0/3
frequency 5
! 设置 delay 是为了及时观察现象,实际生产环境不需这么做
track 1 ip sla 1 reachability
delay down 5 up 3
!
ip sla schedule 1 life forever start-time now
!
interface Ethernet0/1
ip policy route-map pbr_20.0
!当SW1-SW3之间的链路DOWN掉时,PC2应该仍然能够访问Server,情况类似。解决思路和上面一样,懒-码-字。
当 SW2-R1 之间的链路 DOWN 掉时,PC1 访问 Server 的数据流切换至路径:R3>R1>SW3>SW1>Server,此时不要求流量往返路径完全一致。当 SW3-R2 之间的链路 DOWN 掉时,PC2 应该仍能够访问到 Server。
S:当 SW2-R1 之间的链路 DOWN 掉时,R1 是能够从 SW3 学习到去往 Server 的路由的,只是回程的时候路径是: Server> SW1 > SW2 > R2 >R4 ,不要求流量往返路径完全一致,本条需求已经自动实现了。当SW3-R2之间的链路DOWN掉时同理。
R3、R4 任意一台路由器与内网交换机直连链路 DOWN 掉,不影响内网 PC 访问外网。
S:配置的 VRRP 可以实现。
【可选】若 R3 的出口 DOWN 或 R1 的两条上联链路都 DOWN,以上两种情况,R3 都能检测到,要求此两种情况发生时内网用户访问 SERVER 都不受影响,R4 同理。
S:R3 的出口 DOWN 或 R1 的两条上联链路都 DOWN,明显要求配置 SLA 特性,我的做法是在 SW3 和 SW2 上配置一个环回地址,R3/R4 检测这个地址的可达性。举例:当 R3 配置了监测 SW3 的环回地址可达性,无论是 R3 的出口 DOWN 或 R1 的两条上联链路都 DOWN 其中一个条件达成,都会导致监测失败不可达,再在相应的内网子接口下配置 Track 联动降低 VRRP 组的优先级,使其成为 Backup 状态,另一台路由器成为 Master ,此时内网用户访问 Server 路径自动切换不受影响(其实还是会掉包的,取决于你配置的监测周期,抢占延时,生成树协议)。R4 同理。
(11月10日发现,可以使用 Track list 的方式实现)
1
2
3
4
5
6
7
8
9
10
11
12! --- R3 配置
interface Ethernet0/1.10
vrrp 10 track 1 decrement 21
!
ip sla 1
icmp-echo 33.33.33.33 source-interface Ethernet0/0
frequency 5
ip sla schedule 1 life forever start-time now
!
track 1 ip sla 1 reachability
delay down 5 up 3
!
Ending
- 配置存阿里云盘了,这是链接:[分享的文件]
- 欢迎“
来电”来函探讨。