upgw 黑白名单功能

一、处理流程:

  1. 黑/白名单功能生效于 upgw-traffic-process 结点中,该节点将操作分流边缘的 ip 报文。现在报文操作前增加黑、白名单规则过滤;

    BLWL_in_data_plane

  2. 数据结构:

    1、在 upgw 全局变量中新增名单链表数据结构 bw_filter_t ,包括功能开关标志、初始化标志、黑白名单指针 ;

    2、bw_filter 中的名单指针指向一个哈希表,哈希表以 ip 为 key 值存放:

    BLWL_data_struct

二、命令行

  1. 配置黑白名单开关;

    # 1、开启黑白名单功能
    upgw blwl open [black|white]
    # 2、关闭黑白名单功能
    upgw blwl close
    
    # eg.开启黑名单
    upgw blwl open black
    
  2. 配置黑白名单规则;

    # 1、增加、删除黑白名单规则
    upgw blwl use [black|white] [add|del] [ip]
    
    # eg.增加 1.1.1.1 到黑名单中
    upgw blwl use black add 1.1.1.1
    # ps: ip 支持使用掩码格式,缺省值为255.255.255.255。上述命令等同如下:
    upgw blwl use black add 1.1.1.1/255.255.255.255
    
    # 2、清空黑白名单规则(该命令将全部删除名单内容)
    upgw blwl clear [black|white]
    
  3. 查询:

    # 1、查询黑白名单功能状态
    show upgw blwl status
    ## 查询效果:
    blwl is opening. ## 名单开启
    black is valid.  ## 生效中的名单是黑名单(名单关闭则不显示)
    
    # 2、查询黑白名单功能列表
    show upgw blwl list all
    ## 查询效果:
    == black_ip_list sum [2]                  ## 黑名单列表;中括号内数字表示总数
    1.1.1.1                            active ## active 表示该 ip 配置生效中; - 则表示没有生效
    1.1.1.2/255.255.255.0              active ## ip 显示与配置时的输入保持一致,缺省掩码是255.255.255.255
    == white_ip_list sum [2]                  ## 白名单列表
    1.1.1.1                            -
    1.1.1.2/255.255.255.0              -
    
    # 3、查询单个 ip
    show upgw blwl list [ip]
    # ps: ip 需与配置时输入一致,如果输入没有掩码,则查询时也没有。