8.2. Firewall配置

8.2.1. Firewall简介

通过配置firewall功能,可以实现对特定报文进行过滤、重定向、策略路由、流镜像功能。

过滤规则组term,是一条或者多条规则的集合,用于识别报文流,对流量进行分类。规则是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。设备依照这些规则识别出特定的报文,并根据预先设定的策略对其进行处理。

报文过滤就是对符合过滤规则的流量配置过滤动作,从而达到过滤的目的。

流量重定向就是将符合流分类的流重定向到其他地方进行处理。目前支持将二层转发报文重定向到接口,即对于接收到的需要某个接口处理的报文,可以通过配置重定向到此接口。

策略路由通过识别不同的网络数据包,然后按照预先设定好的策略进行转发,从而可以有效的控制网络用户数据包的流向和行为。策略路由位于IP层,在做IP转发前,如果报文命中某个策略路由对应的规则,则要进行相应的策略路由的动作,动作包括重定向到指定下一跳,以及remark标记(如TOS、IP优先级或DSCP),然后根据重定向的下一跳代替报文的目的IP去查FIB表,做IP转发。

流镜像就是将符合过滤条件的报文流量镜像到指定端口。通过制定不同的过滤条件,对报文类型进行了精确区分,获得更精确的统计信息。

8.2.2. 配置报文过滤功能

  1. 进入配置模式。

    ConnetOS> configure

  2. 设置过滤规则组。

    ConnetOS# set firewall term term-name

  3. 配置过滤规则组,对需要过滤的流量进行分类。请根据网络环境需要,选择执行以下命令,进行流量的分类

    • 按照报文携带的COS值,对报文进行分类

      ConnetOS# set firewall term term-name cos value priority-value

    • 按照目的IP地址,对报文进行分类

      ConnetOS# set firewall term term-name dest-ipv4 network ipv4-network-address

    • 按照目的MAC地址,对报文行分类

      ConnetOS# set firewall term term-name dest-mac hwaddr dest-mac-address

    • 按照报文的DSCP值,对报文进行分类

      ConnetOS# set firewall term term-name dscp value dscp-value

    • 按照以太网报文类型,对流量进行分类

      ConnetOS# set firewall term term-name ether-type { name { arp | ipv4 | rarp } | number ether-type-number }

    • 按照目的端口号,对报文进行分类

      ConnetOS# set firewall term term-name l4-dest-port { name { bgp | bootpc | bootps | dns | finger | ftp | ftp-data | http | https | msdp | ntp | oob-ws-http | pop3 | radius | rip | smtp | snmp | telnet | tftp } | number dest-port-numbe | range port-range }

    • 按照源端口号,对报文进行分类

      ConnetOS# set firewall term term-name l4-source-port { name { bgp | bootpc | bootps | dns | finger | ftp | ftp-data | http | https | msdp | ntp | oob-ws-http | pop3 | radius | rip | smtp | snmp | telnet | tftp } | number source-port-number | range port-range }

    • 按照协议类型,对报文进行分类

      ConnetOS# set firewall term term-name protocol { name { ah | dstopts | egp | esp | fragment | gre | hop-by-hop | icmp | igmp | ipip | no-next-header | ospf | pim | routing | rsvp | sctp | tcp | udp } | number protocol-number }

    • 按照源IP地址,对报文进行分类

      ConnetOS# set firewall term term-name source-ipv4 network ipv4-network-address

    • 按照源MAC地址,对报文行分类

      ConnetOS# set firewall term term-name source-mac hwaddr source-mac-address

    • 按照报文所属VLAN,对报文进行分类

      ConnetOS# set firewall term term-name vlan number vlan-id

      同一个过滤规则组,可以配置多种过滤规则。报文在进行规则匹配时,只要命中了一个过滤规则就不再进行匹配。

  4. 配置对报文的过滤策略。关联过滤规则和动作,对报文进行丢弃或转发处理。

    一个过滤策略,可以同时绑定多个过滤规则组。

    ConnetOS# set firewall filter filter-name matching term term-name [ action { discard | forward } ]

  5. 应用过滤策略,对接口或VLAN上的报文进行过滤。

    ConnetOS# set firewall filter filter-name { input | output } { gigabit-ethernet | vlan-interface } interface-name

  6. 提交配置。

    ConnetOS# commit

8.2.3. 配置转发策略

  1. 进入配置模式。

    ConnetOS> configure

  2. 设置过滤规则组。

    ConnetOS# set firewall term term-name

  3. 配置过滤规则组,对需要过滤的流量进行分类。请根据网络环境需要,选择执行以下命令,进行流量的分类

    • 按照报文携带的COS值,对报文进行分类

      ConnetOS# set firewall term term-name cos value priority-value

    • 按照目的IP地址,对报文进行分类

      ConnetOS# set firewall term term-name dest-ipv4 network ipv4-network-address

    • 按照目的MAC地址,对报文行分类

      ConnetOS# set firewall term term-name dest-mac hwaddr dest-mac-address

    • 按照报文的DSCP值,对报文进行分类

      ConnetOS# set firewall term term-name dscp value dscp-value

    • 按照以太网报文类型,对流量进行分类

      ConnetOS# set firewall term term-name ether-type { name { arp | ipv4 | rarp } | number ether-type-number }

    • 按照目的端口号,对报文进行分类

      ConnetOS# set firewall term term-name l4-dest-port { name { bgp | bootpc | bootps | dns | finger | ftp | ftp-data | http | https | msdp | ntp | oob-ws-http | pop3 | radius | rip | smtp | snmp | telnet | tftp } | number dest-port-number | range port-range }

    • 按照源端口号,对报文进行分类

      ConnetOS# set firewall term term-name l4- source-port { name { bgp | bootpc | bootps | dns | finger | ftp | ftp-data | http | https | msdp | ntp | oob-ws-http | pop3 | radius | rip | smtp | snmp | telnet | tftp } | number source-port-number | range port-range }

    • 按照协议类型,对报文进行分类

      ConnetOS# set firewall term term-name protocol { name { ah | dstopts | egp | esp | fragment | gre | hop-by-hop | icmp | igmp | ipip | no-next-header | ospf | pim | routing | rsvp | sctp | tcp | udp } | number protocol-number }

    • 按照源IP地址,对报文进行分类

      ConnetOS# set firewall term term-name source-ipv4 network ipv4-network-address

    • 按照源MAC地址,对报文行分类

      ConnetOS# set firewall term term-name source-mac hwaddr source-mac-address

    • 按照报文所属VLAN,对报文进行分类

      ConnetOS# set firewall term term-name vlan number vlan-id

      同一个过滤规则组,可以配置多种过滤规则。报文在进行规则匹配时,只要命中了一个过滤规则就不再进行匹配。

  4. 设置转发策略。

    ConnetOS# set firewall forwarder forwarder-name

  5. 关联转发策略和过滤规则组,符合过滤规则的报文按照指定转发策略进行转发。

    ConnetOS# set firewall forwarder forwarder-name matching term term-name

  6. 设置报文的匹配模式。

    matched:对符合过滤规则的报文按照转发行为进行转发。

    unmatched:对不符合过滤规则的报文按照转发行为进行转发。

    ConnetOS# set firewall forwarder forwarder-name match-mode { matched | unmatched }

  7. 根据网络需要,选择执行以下命令,设置报文转发行为。

    • 设置报文分类动作,修改报文的设备优先级。

      ConnetOS# set firewall forwarder forwarder-name action classifying { new-cos cos-modify-value | new-dscp dscp-modify-value }

    • 设置对报文进行镜像。

      ConnetOS# set firewall forwarder forwarder-name action mirroring interface { aggregate-ethernet ae-interface-name | gigabit-ethernet ge-interface-name }

    • 设置对报文进行三层转发。

      ConnetOS# set firewall forwarder forwarder-name action routing { mode { load-balance | redundancy } | nexthopv4 address ipv4-address | vlan-interface vlan-interface }

    • 设置对报文进行二层转发。

      ConnetOS# set firewall forwarder forwarder-name action switching interface { aggregate-ethernet ae-interface-name | gigabit-ethernet ge-interface-name }

  8. 执行命令,将转发策略应用到入接口上。接口上接收的报文将按照转发策略进行转发。

    ConnetOS# set firewall forwarder forwarder-name input { gigabit-ethernet ge-interface-name | vlan-interface vlan-interface-name }

  9. 提交配置。

    ConnetOS# commit

8.2.4. 查看配置结果

查看过滤规则组的相关配置信息:

ConnetOS# show firewall term term1
Waiting for building configuration.
    protocol {
        name gre
}

查看过滤策略的相关配置信息:

ConnetOS# show firewall filter f1
Waiting for building configuration.
    term t1 {
        action: "discard"
    }
    input {
        gigabit-ethernet "te-1/1/1"
        gigabit-ethernet "te-1/1/40"
    }

查看转发策略的相关配置信息:

ConnetOS# show firewall forwarder fd1
Waiting for building configuration.
    match-mode: "matched"
    matching {
        term t1
    }
    action {
        routing {
            mode: "load-balance"
        }
    }
    input {
        gigabit-ethernet "te-1/1/1"
    }