VLAN在分割广播域的同时也限制了不一样VLAN间的主机进行二层通讯
解决vlan间通讯方法以下:
二层交换机+一台路由器实现vlan之间通讯(多臂路由)
单臂路由的方式实现vlan之间通讯
现网中实际运用vlanif逻辑接口来实现vlan之间通讯网络
由于不一样VLAN之间的主机是没法实现二层通讯的,因此必须经过三层路由才能将报文从一个VLAN转发到另一个VLAN,在二层交换机上配置VLAN,每个VLAN使用一条独占的物理链路链接到路由器的一个接口上,来实现vlan之间的通讯ide
交换机的配置3d
# vlan batch 2 to 3 # interface GigabitEthernet0/0/1 port link-type trunk port trunk pvid vlan 2 port trunk allow-pass vlan 2 # interface GigabitEthernet0/0/2 port link-type trunk port trunk pvid vlan 3 port trunk allow-pass vlan 3 # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 # interface GigabitEthernet0/0/4 port link-type access port default vlan 3 #
路由器的配置code
# interface GigabitEthernet0/0/0 ip address 192.168.1.254 255.255.255.0 # interface GigabitEthernet0/0/2 ip address 192.168.2.254 255.255.255.0 #
连通性的检测blog
PC1自身的SIP是192.168.1.1,访问目标是192.168.2.1,PC1会用自身的掩码和目标IP地址作一个与运算,发现访问的目标和本身不在同一个网段,本身是192.168.1.0/24网段,目标是192.168.2.0/24网段,因而PC1会把数据发往AR1的G0/0/2接口,由于G0/0/2接口的IP地址刚好是个人网关地址,当数据到达交换机的时候,交换机进来会打上PVID是3的tag数据帧,交换机此时作的是解封装和封装停留在二层这块,由于交换机并无作三层路由功能,查找MAC地址表项后,交换机会从G0/0/1接口发送出去,会剥离tag进行发送,由于路由器通常状况是下是不识别vlan数据帧的。
当PC1的数据包到达AR1的G0/0/0接口后,因为DIP是192.168.2.0/24网段,恰好AR1这边有直连路由,因而AR1查找路由表,发现去往192.168.2.0/24从接口G0/0/2接口发送出去,交换机收到路由器的数据后
交换机会进行解封装和封装动做,交换机从G0/0/2接口收到的数据,会打上vlan 3的数据tag,而后查找MAC地址表项从G0/0/4接口发送出去,会剥离tag进行发送,此时PC2就能够收到该数据了接口
PC2自身的SIP是192.168.2.1,访问目标是192.168.1.1,PC1会用自身的掩码和目标IP地址作一个与运算,发现访问的目标和本身不在同一个网段,本身是192.168.2.0/24网段,目标是192.168.1.0/24网段,因而PC2会把数据发往AR1的G0/0/2接口,由于G0/0/2接口的IP地址刚好是个人网关地址,当数据到达交换机的时候,交换机进来会打上PVID是3的tag数据帧,交换机此时作的是解封装和封装停留在二层这块,由于交换机并无作三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会剥离tag进行发送,由于路由器通常状况是下是不识别vlan数据帧的。
当PC2的数据包到达AR1的G0/0/2接口后,因为DIP是192.168.1.0/24网段,恰好AR1这边有直连路由,因而AR1查找路由表,发现去往192.168.1.0/24从接口G0/0/0接口发送出去,交换机收到路由器的数据后
交换机会进行解封装和封装动做,交换机从G0/0/1接口收到的数据,会打上vlan 2的数据tag,而后查找MAC地址表项从G0/0/3接口发送出去,会剥离tag进行发送,此时PC1就能够收到该数据了ip
1.随着每一个交换机上VLAN数量的增长,这样作必然须要大量的路由器接口,而路由器的接口数量是极其有限的。
2.某些VLAN之间的主机可能不须要频繁进行通讯,若是这样配置的话,会致使路由器的接口利用率很低路由
将交换机和路由器之间的链路配置为Trunk链路,而且在路由器上建立子接口以支持VLAN路由,配置可以让路由器子接口识别vlan的tag数据
配置路由器子接口封装vlan 在路由器相应的子接口下配置下面两条命令it
dot1q termination vid "几"
命令配置子接口对一层tag报文的终结功能,即配置该命令后路由器子接口在接收带有vlan tag 的报文时 将剥掉tag进行三层转发 在发送报文时 会将与该子接口对应vlan的vlan tag添加到报文中io
ARP broadcast enable
命令开启ARP广播的功能 若是不配置该命令 将会致使该子接口没法主动发送ARP广播报文,以及向外转发IP报文
交换机的配置
S2的配置
vlan batch 10 20 # interface Ethernet0/0/1 port link-type access port default vlan 10 # interface Ethernet0/0/2 port link-type access port default vlan 20 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # S3的配置 vlan batch 30 # interface Ethernet0/0/1 port link-type access port default vlan 30 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 30 #
S1的配置
vlan batch 10 20 30 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 30 #
路由器的配置
vlan batch 10 20 30 # interface GigabitEthernet0/0/1.1 dot1q termination vid 10 ip address 192.168.1.254 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.2 dot1q termination vid 20 ip address 192.168.2.254 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.3 dot1q termination vid 30 ip address 192.168.3.254 255.255.255.0 arp broadcast enable #
结论:
PC1自身的SIP是192.168.1.1,访问目标是192.168.2.1,PC1会用自身的掩码和目标IP地址作一个与运算,发现访问的目标和本身不在同一个网段,本身是192.168.1.0/24网段,目标是192.168.2.0/24网段,因而PC1会把数据发往AR1的G0/0/1.1接口,由于G0/0/1.1接口的IP地址刚好是个人网关地址,当数据到达交换机的时候,交换机进来会打上PVID是10的tag数据帧,交换机此时作的是解封装和封装停留在二层这块,由于交换机并无作三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会保持tag进行发送,S1交换机收到tag为10的数据后,查找MAC地址表从G0/0/1接口发送出去,保持tag为10的标签进行发送,当这带有tag为10的数据到达AR1的G0/0/1.1接口后,因为该接口配置子接口对一层tag 10报文的终结功能,将剥掉tag 10进行三层转发 路由器查找路由表 发现从G0/0/1.2接口转发,在发送报文时 会将与该G0/0/1.2子接口对应vlan的vlan tag 20添加到报文中 而且由该子接口须要发送arp报文进行数据封装 因此 子接口须要支持主动发送arp报文的功能 因此须要在子接口上面配置该命令 ARP broadcast enable
当S1的数据包收到tag 20的数据后,会从G0/0/2接口发送出去,而后S2收到后,会从Eth0/0/2接口发送给PC2主机
PC2自身的SIP是192.168.2.1,访问目标是192.168.1.1,PC1会用自身的掩码和目标IP地址作一个与运算,发现访问的目标和本身不在同一个网段,本身是192.168.2.0/24网段,目标是192.168.1.0/24网段,因而PC1会把数据发往AR1的G0/0/1.2接口,由于G0/0/1.2接口的IP地址刚好是个人网关地址,当数据到达交换机的时候,交换机进来会打上PVID是20的tag数据帧,交换机此时作的是解封装和封装停留在二层这块,由于交换机并无作三层路由功能,查找MAC地址表项后,交换机会从G0/0/2接口发送出去,会保持tag进行发送,S1交换机收到tag为20的数据后,查找MAC地址表从G0/0/1接口发送出去,保持tag为20的标签进行发送,当这带有tag为20的数据到达AR1的G0/0/1.2接口后,因为该接口配置子接口对一层tag 20报文的终结功能,将剥掉tag 20进行三层转发 路由器查找路由表 发现从G0/0/1.1接口转发,在发送报文时 会将与该G0/0/1.1子接口对应vlan的vlan tag 10添加到报文中 而且由该子接口须要发送arp报文进行数据封装 因此 子接口须要支持主动发送arp报文的功能 因此须要在子接口上面配置该命令 ARP broadcast enable
当S1的数据包收到tag 10的数据后,会从G0/0/2接口发送出去,而后S2收到后,会从Eth0/0/1接口发送给PC1主机
请问:还须要在子接口上面启用arp广播功能吗?
一、 存在单点故障的可能性
二、 此场景须要一台路由器,成本相对较高
在三层交换机上配置VLANIF接口来实现VLAN间路由
二层交换机和路由器在功能上的集成构成了三层交换机,三层交换机在功能上实现了VLAN的划分、VLAN内部的二层交换和VLAN间路由的功能
就是二层交换机和路由器的结合体,可是会比这种方式更加高效
三层交换机里面有路由引擎和交换引擎
当三层交换机识别到主机发送的DMAC地址不是我本身的时候,就会交给交换引擎,从对应的接口转发出去
当三层交换机识别到主机发送的DMAC地址是我本身的时候,就会交给路由引擎处理,三层交换机就会进行路由 从对应的vlan发送出来
第一个数据包交给路由引擎处理(CPU处理的)而后会把信息交给交换引擎 同一个数据流的后面的报文不会交给路由引擎处理了 都会交给二层的芯片的转发(更快) 由于芯片转发更快 这些信息包括出接口 arp信息等 这就是一次路由 屡次交换
华为中低端交换机接口几乎都是二层功能 二层接口不能配置IP地址 但三层交换机须要一个逻辑接口 就是vlanif接口(思科是SVI接口) 这个接口具备三层功能 只要有接口在这个vlan当中 那么 这个vlanif就是up状态
在三层交换机上配置VLANIF接口来实现VLAN间路由。若是网络上有多个VLAN,则须要给每一个VLAN配置一个VLANIF接口,并给每一个VLANIF接口配置一个IP地址。用户设置的缺省网关就是三层交换机中VLANIF接口的IP地址
交换机的配置
vlan batch 10 20 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 20 #
结论: