sunzn:学习资料!
Vswitch的概念是Hillstone安全网关中比较重要的一个概念,了解Vswitch的概念可以更清楚的知道Hillstone安全网关的工作原理。
VSwitch 介绍
由于实际应用的需要,安全网关会让部分接口之间的数据包在二层转发域中做二层转发(称作透明应用模式),部分接口之间的数据包做三层转发(称作路由应用模式)。为了使用户能够灵活地配置这种二、三层混合应用模式,StoneOS 引入了VSwitch(Virtual Switch)的概念,即虚拟交换机。默认情况下,StoneOS 有一个VSwitch,称作VSwitch1。用户每新建一个VSwitch,系统都会为VSwitch 自动生成一个VSwitch 接口(VSwitchIF)。通过把接口绑定到安全域,再把安全域绑定到VSwitch,用户可以把接口绑定到VSwitch。
一个VSwitch 就是一个二层转发域,每个VSwitch 都有自己独立的MAC 地址表,因此VSwitch 中的接口之间的数据包会被按照二层转发规则进行转发。在VSwtich 中,用户可以方便地配置策略规则。VSwitch 接口相当于实际交换机的上连口,通过VSwitch 接口,数据包可以实现二层与三层之间的转发。
二层安全域
为了实现VSwitch 中的安全策略,StoneOS 引入了二层安全域的概念。用户在创建安全域时,需要指明其是否为二层安全域。将一个接口加入到一个VSwitch中,需要先将接口绑定到二层安全域上,然后将二层安全域绑定到VSwitch 上。VSwitch、二层安全域和二层接口之间的从属关系如下图所示:
二层接口
一个物理接口和它的子接口可以绑定到同一个安全域中,也可以绑定到不同的安全域中。一个接口绑定到一个二层安全域中后,该接口就成为二层接口。应注意的是只有没有被配置IP 地址的接口才能够绑定到二层安全域中。VSwitch 接口为三层接口,不能被绑定到二层安全域上。
VSwitch 中的转发规则
在一个VSwitch,即一个二层转发域中,StoneOS 安全网关通过源地址学习建立MAC 地址转发表。每个VSwitch 都有自己的MAC 地址转发表。StoneOS 根据数据包的类型(IP 数据包、ARP 包和非IP 且非ARP 包),分别进行不同的处理。
对于IP 数据包,StoneOS 遵循以下转发规则:
1. 收到数据包。
2. 学习源地址,更新MAC 地址转发表。
3. 如果目的MAC 地址是单播地址,则根据目的MAC 地址查找出接口。这时又有以下两种情况:
- 如果目的MAC 地址为VSwitch 接口的MAC 地址,并且VSwitch 接口有IP 地址,则按照路由转发规则进行转发;若VSwitch 接口没有IP 地址,则丢弃。
- 根据目的MAC 地址找到出接口。如果找到的出接口是数据包的源接口,则丢弃该数据报,否则从出接口继续转发数据包。如果在MAC 地址表中没有找到出接口(未知单播),直接跳到第6 步。
4. 根据入接口和出接口确定源域和目的安全域。
5. 查找策略规则。如果策略规则允许则转发数据包;如果策略规则不允许,则丢弃数据包。
6. 如果在MAC地址转发表中没有找到出接口(未知单播),StoneOS 则尝试将数据包发给VSwitch 中的所有其它二层接口,此时的操作流程为:把其它的每一个二层接口做为出接口,二层接口所在的二层安全域作为目的域,查询策略规则,如果策略允许,则在该二层接口转发数据包,如果策略不允许,则丢弃数据包。概括地说,对未知单播的转发即为策略限制下的广播。对于广播和多播IP 包的处理类似于对未知单播的处理,不同的是广播和多播IP 包会被同时拷贝一份进行三层处理。
对于ARP 包,广播包和未知单播包转发到VSwitch 中的其它所有接口,同时,复制一份由ARP 模块进行处理。
对于非IP 包且非ARP 包, 用户可以在全局配置模式下通过配置l2-nonip-action 命令指定处理方式。l2-nonip-action {drop | forward}
♦ drop – 丢弃。
♦ forward – 转发。