目录
一、交换机
1.1、交换机处理数据帧的三种行为
1.2、初始化通信
二、虚拟局域网(VLAN)
三、vlan间通信
3.1、子接口
3.2、三层交换机
一、交换机
交换机:隔离冲突域,交换机每个接口都有一个网卡(计算机或交换机通过网卡交换数据)
一块网卡的MAC地址(48位)全球唯一
单播帧:目的MAC地址
广播帧:全F
组播帧:默认第8位组播位为1
交换机启动后先学再转发,将接口和从该接口收到的源mac地址做一个记录,生成MAC表,正常300秒超时,如果被覆盖立即更新。
一个接口能不能学到多个MAC地址?
1口学macA,2口学macB,3口学macA和C,4口学macB,5口学macC。
同一个mac地址能不能属于交换机两个接口?
不能。
1.1、交换机处理数据帧的三种行为
- 泛洪:广播、组播和未知单播帧
- 转发:已知单播帧
- 丢弃
已知目的ip查mac发送arp广播是主机行为(三层行为),不是二层交换机行为。(arp协议是二层协议)
1.2、初始化通信
以上图为例,在计算机A处ping 1.2:
ping 包是icmp协议(应用层协议),封装数据包+网络层+数据链路层,无需封装传输层。
- 首先,主机A会根据目的IP判断是否在同一网段:如在,查看主机A自己的arp缓存表是否有1.2对应的mac,没有的话发送arp广播请求报文找目的ip对应的目的mac;如不在,找网关;
- 其次,arp广播请求报文(数据包会写明自己的ip和目的ip+源mac为A,目的mac为FF,不封装网络层)发送至交换机,交换机先学习(记录0口对应的mac为A)后泛洪;
- 然后,主机B收到arp广播请求,先记录arp缓存(1.1对应的mac为A)后返回arp单播应答(没有网络层);
- 之后,交换机收到arp单播应答,先学习(记录1口对应的mac为B)后转发(查表通过0口发送出去);
- 最后,主机A收到arp单播应答先记录arp缓存(1.2对应的mac为B)。
可以看出,计算机是建立arp缓存表,交换机的是建立mac表。
二、虚拟局域网(VLAN)
802.1Q(标记标准)
傻瓜交换机:无需配置,即插即用
二层网络不是考虑怎么通,而是提高网络通信质量。
分割广播域时,一般都必须使用到路由器。使用路由器后,可以以路由器上的网络接口(LAN Interface)为单位分割广播域。
但是,通常情况下路由器上不会有太多的网络接口,其数目多在1~4个左右。随着宽带连接的普及,宽带路由器(或者叫IP共享器)变得较为常见,但是需要注意的是,它们上面虽然带着多个(一般为4个左右)连接LAN一侧的网络接口,但那实际上是路由器内置的交换机,并不能分割广播域。
况且使用路由器分割广播域的话,所能分割的个数完全取决于路由器的网络接口个数,使得用户无法自由地根据实际需要分割广播域。
与路由器相比,二层交换机一般带有多个网络接口。因此如果能使用它分割广播域,那么无疑运用上的灵活性会大大提高。
用于在二层交换机上分割广播域的技术,就是VLAN。通过利用VLAN,我们可以自由设计广播域的构成,提高网络设计的自由度。
为何不用路由器隔离广播域?
- 路由器口比较少
- 路由器每秒吞吐量(PPS,paket per secongd)比交换机低
- 路由器作了广播域隔离(物理隔离),无法灵活修改网络
交换机下面的计算机默认属于同一个广播域VLAN1,也就是说,没有做任何vlan规划,不会给数据帧打上或剥离vlan标记,会以原始帧的方式进行发送,换个思路理解,当其他数据帧都有vlan标记的前提下,原始帧没有标记也是一种标记。
vid,VLAN id,交换机给数据包打标记,同一vid下的计算机属于同一广播域。
access口:接收数据帧打vid标记,发送数据帧剥离vid标记,允许一个vlan;
trunk口:接收数据帧和发送数据帧保持vid标记,允许多个vlan。
##创建一个vlan(1~4094)
vlan10
##同时创建多个vlan
vlan bacth 10 20
##同时创建多个连续vlan
vlan batch 10 to 100
##修改接口类型-access
port link-type access(简写 p l a)
##透传vlan
port default vlan 10(简写 p d v)
##修改接口类型-trunk
port link-type trunk
port trunk allow-pass vlan 10(允许通过的vlan)
当两台交换机下的两台计算机要归属到同一广播域,除了对应计算机的交换机接口需要配置同vlan标记外,交换机之间通信时需要保持vlan标记(trunk链路)。
hybrid口:收帧打标记(pvid,port vid,默认为1),发送不打标记,允许多vlan
##修改接口类型-hybrid
port link-type hybrid
##接收数据桢打标vlan 10
port hybrid pvid vlan 10
##发送数据帧不打标记且可以发送vlan 10的数据帧
port hybrid untagged vlan 10
以上两条命令合起来就是:收到原始帧打vlan10,收到vlan10的数据帧发送时不打标
port link-type hybrid
port hybrid tagged vlan 10 20
等同于
port link-type trunk
port trunk allow-pass vlan 10 20
port link-type hybrid
port hybrid pvid vlan 100
port hybrid untagged vlan 100
等同于
port link-type access
port default vlan 100
计算机A的数据帧到达1口会剥离标记,数据帧到达2口后会打上标记100,带有标记100的数据帧通过交换机内部转发至计算机B的access口,接收并剥离标记发送至计算机B。
三、vlan间通信
vlan是隔离广播域的,所以vlan间通信需要通过路由通信,属于三层通信。
如上图:
- 路由器三层接口作为网关,转发本网段前往其它网段的流量。
- 路由器三层物理接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。
- 路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口。
- 路由器作为三层转发设备其接口数量较少,方案的可扩展性太差。
缺陷:因为Access口只能透传一个vlan,如果交换机有更多的vlan,那么交换机和路由器就需要更多的连线。
3.1、子接口
子接口:三层接口,基于物理口创建的逻辑接口,命名方式:物理接口id+子接口id。
所以基于同物理口的子接口对端是同一设备,因此为了区分子接口,就要求收发带vlan标记的数据帧,所以对端交换机端口需要配置trunk类型。
子接口也需要遵守路由器原则,即不同子接口属于不同广播域。
子接口处理流程
下图为典型的单臂路由:
[R1]interface GigabitEthernet0/0/1.10
##dot1q表示802.1q协议,termination vid 10表示终结vlan10的标记,即数据帧进来后会去掉标记转发
[R1-GigabitEthernet0/0/1.10]dot1q termination vid 10
[R1-GigabitEthernet0/0/1.10]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/1.10]arp broadcast enable
[R1]interface GigabitEthernet0/0/1.20
##dot1q表示802.1q协议,termination vid 20表示终结vlan20的标记,即数据帧进来后会去掉标记转发
[R1-GigabitEthernet0/0/1.20]dot1q termination vid 10
[R1-GigabitEthernet0/0/1.20]ip address 192.168.20.254 24
[R1-GigabitEthernet0/0/1.20]arp broadcast enable
##与路由器连接端口为trunk
[R1]interface GigabitEthernet0/0/2
[R1-GigabitEthernet0/0/2]port link-type trunk
[R1-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20
##与PC连接端口为access
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]port link-type access
[R1-GigabitEthernet0/0/1]port default vlan 10
[R1]interface GigabitEthernet0/0/3
[R1-GigabitEthernet0/0/3]port link-type access
[R1-GigabitEthernet0/0/3]port default vlan 20
3.2、三层交换机
二层交换机(Layer2Switch)指的是只具备二层交换功能的交换机。
三层交换机(Layer 3Switch)除了具备二层交换机的功能,还支持通过三层接口(如VLANIF接口)实现路由转发功能。
VLANIF接口(SVI,交换虚拟接口,又叫vlan网关)是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
VLANIF接口编号与对应的VLAN ID强关联,如VLAN10对应VLANIF 10。
配置vlanif后会自动生成直连路由。
如上图:
##基础配置:
[SW1]vlan batch 10 20
[SW1]interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access
[SW1-GigabitEthernet0/0/1]port default vlan 10
[SW1]interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 20
##配置Vlanif:
[SW1]interface Vlanif10
[SW1-Vlanif10]ip address 192.168.10.254 24
[SW1]interface Vlanif 20
[SW1-Vlanif20]ip address 192.168.20.254 24
vlanif DOWN原因:
- 没有创建vlan
- 没有透传vlan
vlanif转发流程:
假设PC、三层交换机上都已存在相应的ARP或MAC表项。
PC1与PC2之间通信过程如下:
- PC1通过本地IP地址、本地掩码、对端IP地址进行计算,发现目的设备PC2与自身不在同
- 一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。PC1发送的数据帧:源MAC= MAC1,目的MAC=MAC2(网关mac)。
- 网关接口作为三层接口收到数据帧后,先终结掉vid,二层解封装后查看三层,根据目的ip20.2,查看路由表,发现一条直连路由,出接口为vlanif20,会做三层转发,此时数据包无vlan标记。
- vlanif20接口收到数据包后,解封三层,根据目的ip,查看路由表,发现是本地直连路由,会查看arp缓存表,将目的mac=MAC3,打上vlan20标记向交换模块转发,交换模块查MAC表后转发至PC2。
1)所有vlan的网关全部配置在核心上,称为集中式网关。
核心交换机有所有vlan的直连路由,无需配置路由协议。
vlan间通信时,流量必须经过核心,有可能造成次优路径。
此时,PC1-PC4能够相互通信。
2)把vlan的网关,配置在汇聚层/接入层,称为分布式网关。
vlan间通信时,流量可以经过最近的网关转发,使用最佳路径。
但是在跨设备的vlan间通信时,需要先配置互联vlan和互联IP,然后再运行路由协议,才能通信。
此时,PC1与PC2、PC3与PC4间可以相互通信,PC1与PC3不能相互通信!
因为在PC1ping PC3时,因为不在同一网段,会找到网关vlanif10,但是!sw2上并没有去往vlanif30的直连路由,也就是说,sw2和sw3之间没有可以通信的互联链路,所以无法通信(注:此时sw1上是没有ip地址的)。
通过在sw2和sw3建立vlanif100并在sw1透传vlan100,就在sw1、sw2、sw3之间建立了一个vlan100的广播域(逻辑上可以理解为sw2口的1口和sw3的1口直连)。
然后在sw2、sw3上配置OSPF协议宣告路由即可,此时PC1与PC3可以互通。