一、 接入模式

接入模式以以下拓扑作为原理讲解。

拓扑说明:

1、 客户网关在N18010交换机,上联出口路由器;

2、 RG-ONC旁挂与核心,不一定要直连,三层可达即可;

3、 核心下联接入或者汇聚交换机,接入或者汇聚交换机是2910/29v3系列交换机(支持接入模式的准入管控即可);

                                             

准入流程:

1、   控制器开启管控

2、   用户接入网络,发起ARP请求

3、   接入设备上送ARP报文给RG-ONC

4、   控制器发现用户

5、   控制器审批通过,下发端口安全绑定

6、   放通ARP、IP报文

7、   用户流量转发

1.1  实现原理

1.1.1  准入前

接入模式采用的是“接口开启端口安全”+”将ARP上送控制器”+“控制器给接口下发IP+MAC+VLAN绑定(端口安全)”实现用户终端的准入。

如图,接口下下发了端口安全的命令,但是没有绑定任何终端信息,这种情况下,终端连接到该接口,无论是二层报文,还是三层报文,都是不转发的,终端也无法上网。

如果终端接到该接口上,发起ARP请求,交换机则会依据流表将终端的ARP上送给RG-ONC控制器,这样控制器就能发现有新用户需要入网,如果是合法的用户,则审批通过,用户就可以准入通过,访问网络。

image.png

终端如果没有准入,那终端的报文将会匹配“拒绝所有IP报文”的流表,交换机不会转发该终端的任何数据。

1.1.2.  准入后

已经准入之后,交换机接口下下发的端口安全绑定命令,此时该终端就可以正常上网。

如下图,其中针对同一个终端会产生两条绑定的命令,MAC+VLAN和MAC+VLAN+IP,这样就可以同时管控二层报文和三层报文,绑定之后二三层报文都可以正常转发。


注:如果控制器挂掉或者暂时无法登陆,可以通过手动在交换机绑定端口安全表项的方式实现用户准入。

1.2.        流表解析

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)的报文实际上可以正常转发,不受管控。