Atom feed of this document
  

 防火墙即服务(FWaaS)概览

防火墙即服务 (FWaaS) 插件增加了网络的防火墙功能。FWaaS使用iptables来对整个项目的网络路由的防火墙规则起作用。FW aaS支持一个防火墙规则和每个项目的逻辑防火墙实例。

安全组的操作在实例这一层,FWaaS的操作在neutron路由的流量过滤这层。

[注意]注意

防火墙即服务目前扔属技术预览;为测试的操作是不建议的。

此示例图显示了VM2 实例的入口和出口流量的流程:

 

图 7.1. FWaaS架构


 

使用FWaaS

在OpenStack图形面板中也有FWaaS的管理选项。

  1. 在文件/etc/neutron/neutron.conf中激活FWaaS插件:

    service_plugins = firewall
    [service_providers]
    ...
    service_provider = FIREWALL:Iptables:neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver:default
    
    [fwaas]
    driver = neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver
    enabled = True
    [注意]注意

    在Ubuntu下,没有使用/etc/neutron/neutron.conf,使用的/etc/neutron/fwaas_driver.ini文件,在此文件的 [fwaas] 一节做修改。

  2. 在数据库中创建所要求的表:

    # neutron-db-manage --service fwaas upgrade head
  3. 激活选项在文件 /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py中,它在控制器节点中可以找到:

    OPENSTACK_NEUTRON_NETWORK = {
        ...
        'enable_firewall' = True,
        ...}
  4. 重启服务neutron-l3-agentneutron-server 以应用设置。

 

配置防火墙即服务

创建防火墙规则,然后创建一策略将前者囊括,再创建一防火墙应用此策略。

  1. 创建一个防火墙rule:

    $ neutron firewall-rule-create --protocol {tcp|udp|icmp|any} --destination-port PORT_RANGE --action {allow|deny}

    网络客户端会请求一协议值;如果此值时不可知的协议,那么使用any值。

  2. 创建一个防火墙规则:

    $ neutron firewall-policy-create --firewall-rules  "FIREWALL_RULE_IDS_OR_NAMES" myfirewallpolicy

    将防火墙规则的ID或名称用空格隔开。指定规则的顺序也非常的重要。

    你可以创建一个没有任何规则的防火墙策略,稍后再添加规则,如下所示:

    • 要添加多个用户,使用更新操作。

    • 要添加单个的规则,使用insert-rule操作。

    ,更多细节,请参阅OpenStack 命令行接口参考网络命令行客户端一章内容。

    [注意]注意

    FWaaS通常每个策略增加一条最低优先权的默认规则deny all ,因此,默认情况下,没有任何规则的一个防火墙策略是屏蔽所有流量。

  3. 创建一个防火墙:

    $ neutron firewall-create  FIREWALL_POLICY_UUID
    [注意]注意

    防火墙会保持 PENDING_CREATE 状态,直到创建了一个网络路由然后并将之附加到网卡为止。

Allowed-address-pairs. Allowed-address-pairs 允许您指定 mac_address/ip_address(cidr) 对,不管子网如何,它们会传递到一个端口上。这启用了协议的使用,如 VRRP,它会在两台实例之间浮动一个 IP 地址来使得快速数据平行故障转移。

[注意]注意

目前为止,仅ML2, Open vSwitch, 和 VMware NSX 插件支持allowed-address-pairs扩展。

基本的 allowed-address-pairs 操作. 

  • 基于指定的所允许的地址对来创建一个端口:

    $ neutron port-create net1 --allowed-address-pairs type=dict list=true mac_address=MAC_ADDRESS,ip_address=IP_CIDR
  • 通过添加允许的地址对来更新一个端口:

    $ neutron port-update PORT_UUID --allowed-address-pairs type=dict list=true mac_address=MAC_ADDRESS,ip_address=IP_CIDR
[注意]注意

在早于Juno的版本中,OpenStack网络所表现的设置地址对是使用端口对应MAC地址和一个固定IP地址的端口。

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page


loading table of contents...