在讲管理VLAN之前,我们先讲一下 VLAN1 这个特殊的VLAN:
VLAN1默认创建,并且默认所有接口处于该VLAN,Native VLAN也是VLAN1,管理VLAN也是VLAN1。
交换机需要被远程登录管理,真实的二层接口不能配置IP地址,故只能使用SVI虚接口。虚接口的MAC地址从背板地址池中获取(二层交换机仅存在一个SVI虚接口,多层交换机有多少个VLAN就存在多少个SVI虚接口)
(1)配置SVI(管理VLAN):
SW1(config)#int vlan 1
SW1(config-if)#ip add 192.168.1.1 255.255.255.0
SW1(config-if)#no shutdown
有了上面的配置,SW1再设置一个用户名和密码,就可以让PC进行Telnet远程登录了。
(2)转移SVI:
SW1(config)#int VLAN 2
SW1(config-if)#ip add 192.168.2.1 255.255.255.0
SW1(config-if)#no shutdown
注意:在真机上配置的时候,由于二层交换机仅存在一个SVI,故开启某个VLAN的SVI口后,其它的SVI口自动被关闭。多层交换机可以存在多个SVI。
SVI双UP的条件:
①该交换机上存在该VLAN
②该VLAN中存在活动用户(双UP),或存在活动trunk干道。
(3)配置网关:
若该交换机需要被其它广播域访问,需要定义网关地址。
Switch(config)#ip default-gateway 192.168.1.1
三层交换机简述:
对于普通二层交换机对于发来的包,认识的单播,不认识的洪泛。
对于路由器来说,认识的转发,不认识的丢弃
将两者结合起来的三层交换机即会解包,又会洪泛。这就是三层交换机所特有的魅力,但是如果只是把它当作普通交换机来说比较浪费,而作为一个路由器来讲,它又承载不了向路由器那样的路由能力。
正式因为三层交换机有这样的特点,它可以完成以下的功能。
开启路由功能:
SW1(config)#ip routing
关闭交换机端口:
SW1(config)#int range f0/1-2
SW1(config-if-range)#no switchport
SW1(config)#int f0/1
SW1(config-if)#ip add 192.168.1.254 255.255.255.0
SW1(config-if)#no shutdown
SW1(config-if)#int f0/2
SW1(config-if)#ip add 192.168.2.254 255.255.255.0
SW1(config-if)#no shutdown
此时PC0可以Ping通PC1
我们将上面那个图做大,给它再增加一个交换机,配置我这里不再演示了。大致思路就是:让新增加的设备在同一VLAN(默认VLAN1),然后给三层交换机配置一个SVI(192.168.3.254/24),接着让底下的交换机连着PC,把PC的网关
SW2(config)#int vlan 1
SW2(config-if)#ip add 192.168.3.2 255.255.255.0
SW2(config-if)#no shutdown
SW1(config)#int vlan 1
SW1(config-if)#ip add 192.168.3.254 255.255.255.0
SW1(config-if)#no shutdown
将PC的网关设置为192.168.3.254,就会发现PC2可以ping 通PC0、PC1的电脑。
以前一个物理接口,当N个子接口,每个子接口管理一个VLAN,当VLAN一多,链路利用就会很高,就会导致卡。
如果不使用子接口,我们一般情况下一个接口一个VLAN,但是我们到这里就发现可以多个接口配置同一个VLAN(这里默认都是VLAN1),让SVI充当所有VLAN1的网关。
Switch(config)#ip default-gateway 192.168.4.254
图中将F0/5口划分到VLAN2中,然后将PC4的 IP 也配置到VLAN2中。
PC4可以正常访问其它PC。
我们再回到三层架构,根网桥是一棵树的中心,网关是一个广播域的中心。当一个VLAN2中的电脑访问VLAN3的电脑时,数据包就会经过两台汇聚层的交换机。
我们知道接入层的设备一旦多起来,那么两台汇聚层交换机之间的通信负担就会越来越越来越大,单纯的千兆网线根本就不够用,就算上了万兆网线,在一个大型的网络中,两台汇聚层设备之间的通信依然是问题。
因此有人提出将多根网线逻辑的捆在一起的思路:
Ether Channel :以太网通道,主要用于 SW-SW 之间,将多个交换机间直连的物理接口逻辑的整合为一个接口,起到带宽叠加的作用。
SW1(config)#int range f0/1-4
SW1(config-if-range)#channel-group 1 mode on
SW2(config)#int range f0/1-4
SW2(config-if-range)#channel-group 1 mode on
配置好之后,就可以看作多个接口成为一个Port口了。
原理:当流量到汇聚层交换机上的Port口时,它们将流量分担到各个链路上,比如说在这张图中各走25%,流量到达对端之后,交换机将多个接口来的流量组合成一个流量,视作是一个接口过来的,自然将流量洪泛到除F0/1-4的其它接口上。
一般设备支持8根绑在一起,好一些的设备支持16根绑在一起。
Channel的建立可以通过手动,也可以自动:
由用户选择模式来决定:
模式 | 特点 |
---|---|
PAGP Cisco私有 |
desirable(主动)、auto(被动) |
LACP 公有 |
active(主动)、passive(被动) |
on | 若配置为手动,两端必须均为手动。 |
序号 | 配置指南 |
---|---|
① | 所有端口必须支持etherchannel,同时注意必须连接相同设备(同一设备,同本地类型相同) |
② | 这些物理接口必须具有相同的速率和双工模式,LACP必须为全双工 |
③ | 通道内不得使用span,若为3层通道,ip地址必须配置到逻辑接口上 |
④ | 三层通道内所有的物理接口必须为3层接口,然后在channel口上配置ip地址 |
⑤ | 若二层通道,这些物理接口应该属于同一VLAN或者均为trunk干道,且封装的类型一致,VLAN的允许列表必须一致 |
⑥ | 通道的属性改变将同步到物理接口,反之也可;若物理没有全部down,通信依然正常 |
⑦ | 同时配置所有物理接口,或直接配置channel口,均可修改接口的属性。 |
先将所有物理接口修改为三层,然后在port接口上配置IP地址。
sw1(config)#interface range e0/0 -1
sw1(config-if-range)#no switchport
sw1(config-if-range)#channel-group 1 mode on
sw1(config)#interface port-channel 1
sw1(config-if)#ip address 192.168.1.1 255.255.255.0
Switch(config)#ip routing
(1)负载分担:
二层通道基于不同的源MAC地址或不同的目标MAC地址对流量进行负载分担。默认基于源MAC地址,不管源是谁,访问一些流量一条线,另一些流量走另外一条线。
基于源区分比较合理,建议不要修改。
(2)负载均衡:
三层通道基于负载均衡来转发流量。
数据交换方式,实际上就是数据路由方式。
这种原始式数据交换方式会让设备查两张表,每一个流量都会查两张表:路由表+ARP表,延时会很高。
之后经过几年的发展,原始式开始淘汰,出现了传统的数据交换方式:网流式。用八个字进行概括:一次路由、多次交换,使用的是Cache表,该技术广泛用于三层交换机中。
这种网流式是现在很多的公有厂商的默认转发方法。
三层交换在完成对收到的第一个新数据流进行路由后,产生一个MAC地址与IP地址的映射表,当具有相同地址信息的数据流再次通过时,即根据此表直接在二层完成转发,即“一次路由,多次交换”,有效提高了数据包转发的效率。
CEF的查表方式是目前最好的路由器的数据交换方式,它是Cisco私有的。无需路由、直接交换,一直只有一张表。
正常路由器是有路由表和ARP表的,而使用了这种技术,会将路由表转成FIB表,将 ARP表转成ADJ 邻居表。
FIB表:转发信息数据库,二进制表格,解决了递归看IP,直接寻找出接口。
ADJ表:该表记录了访问某个网段时特定地 源、目MAC。
当上面两张表合在一起之后:就会变成:
目标IP、出接口、源MAC、目MAC
Cisco 的设备默认CEF功能都在打开着。
SW1(config)#ip cef
注意:CEF适合用于局域网,但不适合用于广域网。CEF技术不支持负载均衡,因为它的出接口是一个,即便路由表显示为负载均衡,但实际的CEF下的流量仅延一条路径传输。
网关冗余就是备份网关,为什么需要备份网关呢?它的意义在于当一边的设备瘫痪后,另一边的网关可以接替原来的网关继续流量的转发。
所有的冗余协议,若在多层交换机上配置,且使用SVI虚接口作为网关接口,那么命令必须全部到SVI接口上配置。
早期使用代理ARP和ICMP重定向来实现网关冗余。这里使用下面这个图作为讲解:
将上面的协议运行EIGRP,模拟Win98PC的路由器R1,只配置一个接口IP,然后关闭路由功能。
接着让它去pingR3的环回,我们发现很奇怪,R1没有网关竟然可以ping通R3的环回。
为什么可以ping 通R3的环回呢?这就是最原始的网关冗余思路:由于R1既没有去往R3环回的路由,也找不到网关。因此R1会发送ARP请求:询问3.3.3.3的MAC。该请求一出来就会遇到R2、R4这两个路由器。
由于路由器具有代理ARP的功能,这两台路由器收到请求之后查看自己的路由表,发现存在去往3.3.3.3的路由,它们都会积极的将自己的MAC代理为2.2.2.2的MAC去回复R1,R1最终会从中选择一个,这样就可以ping通R3的环回了。
当这张图中的R2、R3之间的链路(上行链路)断了的时候,比如下面这样:
此时EIGRP会重新收敛,R1会把流量给R2,R2又把流量甩给R4,R4在把访问R3。由于路由器具有ICMP重定向的功能:
当流量从R2 e0/0 口进去,然后又从R2 的e0/0口出去。证明R2不是最佳下一跳,R2会让R1去找R4,这样网关冗余就成功了。
如果断开的下行链路,R1一直访问不到R2,2个小时arp表刷新,R1重新发送ARP,R4进行代理。
总结一下就是:早期使用ARP、ICMP重定向来实现网关冗余,若上行链路不可达,随着路由协议重新收敛,ICMP重定向生效,在一定时间内可以完成网关的切换,若下行链路不可达,那必须等到ARP表刷新的时间(2h)之后重新新发送ARP请求。
可以修改ARP请求的时间,但是比较鸡肋不推荐:
R1(config)#int e0/0
R1(config-if)#arp timeout ?
<0-2147483> Seconds
Win 98系统以下在不知道网关IP的情况下会自动发出ARP请求,但以上系统将不发包。以上系统填写网关地址为直接广播地址(主机位全1),可以使系统发出ARP请求。
由于上述技术并不是真正用到了冗余,而是利用了一下代理ARP、ICMP重定向。在这种背景下,Cisco提出了HSRP网关冗余技术。
HSRP:热备份冗余协议,特点:切换速度快,可以使网关的IP和MAC地址不用变化,网关的切换对主机是透明的,可以实施上行链路追踪。
(1)原理:
①首先两台路由器用HSRP发hello包建邻,它们共同管理着它们虚拟出来的IP 10.254(为了讲解引用,该IP也可以是三层交换机上虚拟出来的网关IP)。
②这两台路由器之间会分主次,将最好的根网桥、网关放在好的一端,我们暂且可以理解为主的第二地址。
③当PC上网的时候,它会向网关要MAC,发送ARP请求后,住的会把虚拟的MAC给该PC,然后交换机之后便找它上网。
④若主设备瘫痪,两路由器之间HSRP的Hello包将会断开,次设备会知道主设备已凉,然后它会用该虚拟的MAC为源MAC发一个包给交换机,然后下次传输数据时就会走次设备。(虽然交换机发现接收MAC地址的接口发生了转变,但是电脑不知道)
这样就实现了网关冗余。
(2)原理细化:
①hello time 3s、hold time 10s,组播地址:224.0.0.2,TTL=1
②
关系 | 名称 | 优先级 |
---|---|---|
主 | Forwarding 路由器就是Active 路由器 | 优先级高(默认100)、真实物理接口IP地址最大 |
从 | standy 路由器 |
上面虚拟出来的MAC地址是下面这部分值,0000.0c段它是被Cisco买断的,07.ac用于HSRP协议,后面的256位作为组。
(3)配置:
这里还是使用之前的路由器说事,为PC指定网关 124.1.1.254,两台路由器均配置。
1、R2#show standby
2、R2、R4都要敲
R2(config)#int e0/0
R2(config-if)#standby 1 ip 124.1.1.254
R4(config)#int e0/0
R4(config-if)#standby 1 ip 124.1.1.254
3、
优先级修改: 修改优先级,默认100(改的比100大就可以当老大)
R2(config-if)#standby 1 priority ?
<0-255> Priority value
4、
R2(config-if)#standby 1 preempt 开启抢占
(4)上行链路追踪 :
如果我们下行链路断开之后:没关系,我们有网关冗余,可以走另一条路。但是上行链路断开之后,假设R1继续访问R2,就会和之前的原理类似,使用ICMP重定向。
但是问题来了,ICMP重定向会重定向到一个真实的IP,而我们却使用的是虚拟的IP。它的网关将不会切换,流量会一直沿图中的方向走。
因此当上行链路Down时,网关将不会切换。
解决方法:定义上行链路追踪:
该配置必须在抢占开启的情况下生效,且两台设备间的优先级差值小于下调值。
定义追踪表1,追踪接口为S1/0口(引用上面网关冗余的图)
R2(config)#int e0/0
R2(config-if)#standby 1 track serial 1/0 ?
<1-255> Decrement value
意思就是说,如果被追踪的接口(S1/0口)Down了,本地(R2)默认将自动将本地优先级减10,减10后的优先级就没有对端好了,对端开启抢占后,就可以成为网关了。
(5)总结:
缺点 | |
---|---|
HSRP | 1、收敛速度慢(hello time 3s、hold time 10s) 2、只能两台设备 3、抢占默认关闭 4、Cisco私有 |
VRRP:虚拟路由冗余协议
(1)特点:
VRRP:公有协议,3hold time、N台设备,抢占开启。
VRRP在一个组内可以存在多台3层设备,存在一个master、多个backup,正常产生一个虚拟IP(可以为真实接口IP)和一个虚拟MAC。
默认每1S来检测一次master是否活动:
只有master发出hello包,其它人(backup)只检测master是否存活,master组播地址:224.0.0.18、TTL=1,hold time 3s
选举规则:先优先级(默认100,越大越好),再比接口IP地址(越大越好)。
(2)注意事项:
这是正常情况下的网关和虚拟MAC同属于一个路由器:
如果网关和虚拟MAC不在同一个路由器上:
所以如果你决定,用真实的IP地址作为虚拟的IP地址的时候,就必须保证,最开始的主(提供虚拟MAC)和要访问的真实IP在同一设备上。就向第一张图一样。
官方一点:若使用某个接口的真实ip地址作为虚拟网关ip地址,那么依然使用虚拟的MAC地址。
当真实IP地址所在接口未down之前,其他设备不能作为master,否则将可能出现错误的ARP应答,导致选路不佳。故该地址所在的接口优先级为255。
开启VRRP网关冗余:R2、R4都需要配置:
R2(config)#int e0/0
R2(config-if)#vrrp 1 ip 134.1.1.254
修改优先级
R2(config-if)#vrrp 1 priority 110
R2#show vrrp brief
(3)上行链路追踪:
R1(config)#track 1 int s1/0 line-protocol
接口调用:
R1(config)#int e0/0
R1(config-if)#vrrp 1 track 1 decrement 156
组号 表号 下调的优先级
之所以下降156是因为担心该设备属于master,它的优先级为255,下降到比默认100小的时候,才可以被别人抢占。
(4)与HSRP的区别:
HSRP | VRRP |
---|---|
Cisco私有 | 公有 |
224.0.0.2 | 224.0.0.18 |
两台设备 | 多台设备 |
hello time 3s hold time 10s |
hello time 1s hold time 3s |
两台设备均发送 hello包 | 仅Master发送 hello包 |
抢占默认关闭 | 抢占默认开启 |
不可使用物理接口的IP地址来作为网关地址 | 可以使用物理接口的IP地址来作为网关 |
GLBP(网关负载均衡协议)其实比较鸡肋,GLBP支持最多四台设备。
AVG:优先级最大,再ip地址最大。响应所有对网关地址ARP请求后,根据网关设备的数量(最大4个)回应不同MAC给PC;同时将这些MAC分配给对应的AVF。
3s hello time、10s hold time、224.0.0.102、UDP 3222端口
AVF:根据AVG分配的MAC地址来转发流量
AVG抢占关闭
AVF抢占开启
(1)原理如下:
(2)鸡肋之处:
当我们有三层架构时,路由器那么当接入层的设备访问另一台汇聚层的交换机时,流量就会绕着走。
注意:该协议在应用时,考虑到生成树在3层架构中的存在,需要相应的改变拓扑结构。
(3)配置:
启动GLBP网关冗余协议:
R1(config)#int e0/0
R1(config-if)#glbp 1 ip 134.1.1.254
(4)上行链路追踪:
R1(config)#track 1 int e1/0 line-protocol
R1(config)#interface e0/0
R1(config-if)#glbp 1 weighting track 1 decrement 10