一、vlan技术未解决的问题
1.vlan的特点
- 我们知道vlan是控制广播域的,不同的vlan间无法通信,即使给vlan不同的两台主机配置同一网段的IP也是无法通信的。所以一般配置的时候都是一个vlan配置一个网段:比如vlan10–IT–10.1.1.0/24,vlan20–ceo–20.1.1.1/24,这样规划好方便管理,还有一个好处即配合单臂路由,使不同的vlan间可以通信。所以如果要实现单臂路由必须一个vlan一个网段
2.vlan遗留的问题
- day15、1 - VLAN虚拟局域网中遗留下一个问题—>五、vlan隔离广播与隔绝通信
- 问题:因为划分了vlan,vlan会隔离广播,而且还会隔绝所有的通信,不同vlan的PC不光是广播,任何通信都会隔绝。所以现在想办法即发挥vlan的好处–减少广播带来的危害,而且还可以实现不同的vlan间可以通信。
3.解决思路–单臂路由
- 如果两台PC连接到一台交换机,且两个PC连接的端口一个属于vlan10,一个属于vlan20,那么两台PC由于属于不同的vlan所以无法通信,接下来的目的是:使两台vlan不同的PC之间可以相互通信。我们知道不同的vlan之所以无法通信是因为交换机的vlan表,所以从交换机角度是无法解决这个问题的,但是换个角度,不同vlan之间的通信即可以理解为不同网段之间的通信,所以可以试着从路由器出发去想办法解决此问题,即当成现在是不同网段之间的PC通信,需要路由器来帮助路由
二、单臂路由
单臂路由技术已经被淘汰了,学习单臂路由是为了后面的一个新技术做铺垫
1.什么是单臂路由
-
如下图,结合图示说明何为单臂路由
-
说明1:
-
现在从交换机拉出一根网线连接路由器,那么此路由器的接入端口就可作为网关配置IP,但是此局域网中有两个网段,一个10.1.1.0/24网段,一个20.1.1.0/24网段,那么路由器的网关IP到底配置10网段还是20网段呢?
-
在路由器上为网关接口f0/0创建两个子接口,为两个子接口配置IP,一个配置10网段一个配置20网段(子接口只有路由器能配置)
conf t int f0/0.1 #为f0/0接口创建一个虚拟子接口f0/0.1 ip add 10.1.1.254 255.255.255.0 #为子接口配置IP no shut exit -------------------------------------------------------- int f0/0.2 #为f0/0接口创建一个虚拟子接口f0/0.1 ip add 20.1.1.254 255.255.255.0 #为子接口配置IP no shut exit -------------------------------------------------------- int f0/0 no shut #父接口此时只用开启即可不能配置IP exit
-
一个路由器上配置多少个子接口取决于路由器下的局域网中有多少vlan
-
创建子接口相当于再父接口f0/0接口又引申出两条线连接两个子接口f0/0.1和f0/0.2,此时父接口现在只算一个通道,到数据到达父接口时不算完成,还需要再进入对应的子接口。而且一旦启用了子接口父接口就不能再使用了
-
-
说明2:
-
现在为止如果当PC1向PC2通信,PC1先会判断目标IP与自己是否在同一网段,发现PC1是10网段,PC2是20网段,所以PC1会先去请求路由器。交换机收到后PC1发的帧来自vlan10端口,现在根据MAC地址表将帧运载到f0/3端口,此时f0/3还属于默认vlan1,所以无法转发,需要将f0/3加入vlan10,但是PC2也会与PC1通信,所以还要加入vlan20才行,所以干脆就把f0/3端口配置成Trunk端口,不属于任何vlan,可以允许任何vlan数据从此端口转发。那么将交换机的f0/3端口配置成Trunk端口
-
而帧从Trunk端口转发前会添加vlan标签标记vlanID,所以如果路由器的接口不认识标签是不行的,即路由器的接收端口还需要认识标签协议,由于路由器已经设置了子接口配置IP作为不同网段的网关,所以解析标签的工作交给子接口来完成。且一个子接口只能识别一种vlan标签。所以现在还要进入子接口配置模式,为子接口设置可以识别一个vlanID的标签,且标签是通过802.1q协议封装的
conf t int f0/0.1 encapsulation dot1q 10 #f0/0.1子接口只能识别和封装vlan10的标签,且使用802.1q协议 exit int f0/0.2 encapsulation dot1q 20 #f0/0.2子接口只能识别和封装vlan20的标签,且使用802.1q协议 exit
-
-
总结:综上所述,单臂路由即给一台普通的路由器的作为网关的接口创建多个子接口并配置作为虚拟局域网内不同网段的网关的IP,再将子接口配置成只能使用某一标签协议去识别和封装某一个vlanID。那么此路由器就称为单臂路由
-
完整命令:
conf t int f0/0.1 #创建两个子接口 encapsulation dot1q 10 #配置子接口IP前,必须先配置识别和封装某一vlan ip add 10.1.1.254 255.255.255.0 no shut exit --------------------------------------- int f0/0.2 encapsulation dot1q 20 ip add 20.1.1.254 255.255.255.0 no shut exit --------------------------------------- int f0/0 #开启父接口 no shut exit
-
2.单臂路由的作用
- 使同一局域网内不同vlan间无法传播广播,但是不同vlan却可以实现一对一的通信(前提是一个vlan一个网段)
- 所以现在结合前面的知识:使用vlan和trunk技术再加入单臂路由即可实现隔离广播,减小广播的危害的同时又可以实现同一局域网内不同vlan的PC也可以相互通信
3.单臂路由通信全过程
-
图示:
左下PCIP为10.1.1.1,MAC为AA,接入端口属于vlan10,以此类推其他的设备的MAC、IP和vlanID
假设交换机的MAC地址表和vlan表已经学习完整,且路由器的路由表也配置完整
-
设置vlan、trunk、单臂路由后同一局域网内不同vlanPC相互通信全过程:
- AA向BB发送信息,将信息依次从五层封装到三层,三层发往二层时先判断目标IP20.1与自己的IP10.1不在同一网段,所以需要找10网段的网关,则第二层需要将网关的MAC地址作为目标MAC,AA为源MAC地址,而此时并不知道10网段网关的MAC,所以AA先发送ARP请求广播
- 经过交换机的接口f0/1,查看vlan表得到f0/1属于vlan10,再送到交换机内部,解析目标MAC为广播MAC地址则将帧运送到除f0/1外的其他端口,但f0/2端口属于vlan20–与vlan10不同,则广播无法从f0/2端口转发(起到了隔离广播的作用);由于f0/3端口为Trunk端口,则可以允许任何vlan从此端口发出,在发出之前Trunk端口会在帧中添加vlan10的标签,再从f0/3将帧转发出去
- 到达路由器f0/0,再转发到各个f0/0的子接口,但是由于设置单臂路由时,每一个子接口只能识别和封装一种vlan,所以只有f0/0.1能识别此帧,故转发到f0/0.1子接口,再将vlan10标签取出,将剩下的帧拼接完整,查看帧头的目标MAC为广播MAC,则解封装发送到路由器内部,得到目标网段为20.1.1.0,去匹配路由表,找到应从f0/0.2端口路由出去,于是发往子接口f0/0.2封装成帧,但是还无法得到BBPC的MAC地址,所以路由器先会发送ARP请求广播,发送前f0/0.2子接口会封装vlan20的标签到ARP请求广播的帧中,中间过程省略和上述过程类似,然后BB主机收到后再发送ARP单播应答,此时路由器得到了BB主机的MAC地址,将BB作为源MAC,CC作为目标MAC,再封装好vlan20标签(因为配置单臂路由时f0/0.2子接口只能识别和封装vlan20),将帧发出
- 经过交换机f0/3端口识别到此帧的vlan标签内容为vlan20,再把标签拆下,将剩下的帧拼接起来,识别目标MAC地址为BB,匹配MAC地址表,从f0/2端口转发,而f0/2接口属于vlan20,则可以转发
- 最终接入vlan20端口的BB主机和接入vlan10端口的AA主机就完成了通信,但是广播却不能在不同的vlanID传播!
4.网络拓扑图易出错的地方
-
记住路由器只能连接一个交换机,不能多台交换机连接到一个路由器上,但同一个局域网内可以连接多台交换机
-
正确连接
-
错误连接
-
三、单臂路由技术的缺点
-
网络瓶颈
当路由器下的局域网中设备数量逐渐庞大起来,所有属于不同vlanID的PC相互通信,都需要经过交换机与单臂路由器之间的中继链路,那么这根网线就算购买千兆、万兆带宽,一旦员工数量多起来,这根网线传输速度肯定会下降,所以容易出现网络瓶颈问题
-
容易发生单点物理故障
因为通向单臂路由器的线路只有一条,且帧都需要通过路由器的物理端口进入到对应虚拟子接口中,一旦父接口被关闭或者损坏,那么所有子接口都没用了,即所有的子接口依赖于总物理接口
-
不同VLAN间通信的每一帧都进行单独路由
单臂路由的原理是:所有帧通过路由器物理端口进入相应的子接口,子接口再识别vlan标签,将标签从帧中取走,再将剩下的拼接成帧,检查目标MAC是否是自己(或者广播MAC),不是则丢弃,是则送到路由器内部,用目标IP匹配路由表,决定从哪个子接口转发出去,于是送到对应子接口,还要发送ARP请求获取对方的MAC地址,再加入vlan标签,最后封装成帧发送出去。如果员工发送一个大文件,文件会分成很多帧发送,每一个帧经过路由器都要执行这些过程,会很消耗时间。而此时只不过是同一个局域网内不同vlan之间(不同部门)的通信,效率很低。
- 所以单臂路由技术已经淘汰,后面会学习一个新的技术可以替代单臂路由,解决这些问题