接入模式以以下拓扑作为原理讲解。
拓扑说明:
1、 客户网关在N18010交换机,上联出口路由器;
2、 RG-ONC旁挂与核心,不一定要直连,三层可达即可;
3、 核心下联接入或者汇聚交换机,接入或者汇聚交换机是2910/29v3系列交换机(支持接入模式的准入管控即可);
准入流程:
1、 控制器开启管控
2、 用户接入网络,发起ARP请求
3、 接入设备上送ARP报文给RG-ONC
4、 控制器发现用户
5、 控制器审批通过,下发端口安全绑定
6、 放通ARP、IP报文
7、 用户流量转发
接入模式采用的是“接口开启端口安全”+”将ARP上送控制器”+“控制器给接口下发IP+MAC+VLAN绑定(端口安全)”实现用户终端的准入。
如图,接口下下发了端口安全的命令,但是没有绑定任何终端信息,这种情况下,终端连接到该接口,无论是二层报文,还是三层报文,都是不转发的,终端也无法上网。
如果终端接到该接口上,发起ARP请求,交换机则会依据流表将终端的ARP上送给RG-ONC控制器,这样控制器就能发现有新用户需要入网,如果是合法的用户,则审批通过,用户就可以准入通过,访问网络。
终端如果没有准入,那终端的报文将会匹配“拒绝所有IP报文”的流表,交换机不会转发该终端的任何数据。
已经准入之后,交换机接口下下发的端口安全绑定命令,此时该终端就可以正常上网。
如下图,其中针对同一个终端会产生两条绑定的命令,MAC+VLAN和MAC+VLAN+IP,这样就可以同时管控二层报文和三层报文,绑定之后二三层报文都可以正常转发。
注:如果控制器挂掉或者暂时无法登陆,可以通过手动在交换机绑定端口安全表项的方式实现用户准入。
1、 免管控端口流表:该端口不对流量做任何限制,终端只要接入到该接口,可以直接入网,交换机的上联接口必须要配置成免管控端口,其他接口是否需要免管控,可以视情况而定:
流表解析:
1) duration_sec="137" :表项存在的时间。
2) priority=“500”:该流表的优先级,越大越优先。
3) packet_count, byte_count:该流表已经匹配的报文总数,报文总大小。
4) In_port=“19“:index值为19的端口,改值不一定和面板端口号匹配,可以通过show lsm int 查看对应关系。
5) output{port=“normal”:免管控,按照传统的方式转发数据。
2、 免管控终端流表:通过MAC或者IP识别该终端是否可以直接入网:
流表解析
1) eth_src=”00:00:00:00:00:01”:匹配终端的MAC。
2) vlan_vid=”1002”:匹配终端的vlan。
3) output{port=“normal”:免管控,按照传统的方式转发数据。
3、 ARP送控制器流表:默认丢弃所有该VLAN的ARP报文:
流表解析
1) eth_type=“0x806“:0x806代表ARP报文。
2) vlan_vid=”1002”:匹配终端的vlan。
3) output{port=“controller”:将ARP送控制器一份。
4) output{port=“normal”:正常转发ARP报文。
注意:这里ARP报文的正常转发流表不做控制,但是端口安全绑定会针对ARP的转发做控制,没有绑定的终端的ARP是无法转发的。
4、 拒绝所有IP报文的流表:丢弃所有IP报文:
流表解析:
1) eth_type=“0x800“:0x800代表IP报文。
2) vlan_vid=“2200”:表示收到该vlan的ARP报文都匹配。
3) apply{acts=[]}:这里为空,代表做做任何操作,丢弃。
注意:0x800代表IP报文,所以IPv6(0x86dd)的报文实际上可以正常转发,不受管控。