实践neutronfwaas-每天5分钟玩转openstack(118)

CloudMan CloudMan     2022-08-15     763

关键词:

技术分享

前面我们学习了 FWaaS 的理论知识,今天将通过实验来学习 FWaaS。

在我们的实验环境中,有两个 instance: cirros-vm1(172.16.100.3) 和 cirros-vm2(172.16.101.3)。

技术分享

cirros-vm1 和 cirros-vm2 分别位于网络 vlan100 和 vlan101。 vlan100 和 vlan101 之间由虚拟路由器 test_router 连接。 网络拓扑如下:

技术分享

在 test_router 没有应用任何 FWaaS 的情况下,cirros-vm1 可以通过 ping 和 ssh 跨网络访问 cirros-vm2。

技术分享

下面我们将进行如下实验: 1. 创建一个不包含任何 rule 的 firewall “test_firewall” 并应用到 test_router。
此时 FWaaS 生效,默认情况下会阻止任何跨子网的流量。 2. 创建 rule 允许 ssh,并将其添加到 test_firewall。此时 cirros-vm1 应该能够 ssh cirros-vm2。

应用无 rule 的 firewall

点击菜单 Project -> Network -> Firewalls,打开 Firewall Policies 标签页面。 目前没有定义任何 Policie。

技术分享

点击技术分享按钮,显示Policy 创建页面。

技术分享

将 Policy 命名为 “test_policy”,直接点击 “Add” 按钮。

技术分享

这样我们创建的 test_policy 不包含任何 Rule。

进入 “Firewalls” 标签页,点击 “Create Firewall” 按钮

技术分享

将新的 Firewall 命名为 “test_firewall”,并关联 “test_policy”。

技术分享

在 “Routers” 标签页中选择 “test_router”。 点击 “Add” 创建 firewall。

技术分享

等待 test_firewall 的 Status 变为 “Active”,此时 test_router 已经成功应用 test_policy。

技术分享

可以通过 iptables-save 查看 router namespace 的 iptables 规则

技术分享

为了让大家了解底层到底发生了什么变化,下面用 vimdiff 显示了应用 test_firewall 前后 iptables 规则的变化。

技术分享

下面我们来分析一下这些规则。

route 在转发数据包时会使用 chain:

-A FORWARD -j neutron-vpn-agen-FORWARD

neutron-vpn-agen-FORWARD 的规则如下:

-A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-iv4e85f4601   -A neutron-vpn-agen-FORWARD -i qr-+ -j neutron-vpn-agen-ov4e85f4601   -A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-fwaas-defau   -A neutron-vpn-agen-FORWARD -i qr-+ -j neutron-vpn-agen-fwaas-defau

我们以第一条为例,其含义是:从 router namespace 任何一个 qr-* interface 发出
的流量都会应用 chain neutron-vpn-agen-iv4e85f4601,该 chain 定义如下:

-A neutron-vpn-agen-iv4e85f4601 -m state --state INVALID -j DROP   -A neutron-vpn-agen-iv4e85f4601 -m state --state RELATED,ESTABLISHED -j ACCEPT

其规则为: 1. 如果数据包的状态为 INVALID,则 DROP。 2. 如果数据包的状态为 RELATED 或 ESTABLISHED,则 ACCEPT。

其他正常传输的数据怎么处理呢? 回到 neutron-vpn-agen-FORWARD chain 的下一条关于 router 外出数据的规则:

-A neutron-vpn-agen-FORWARD -o qr-+ -j neutron-vpn-agen-fwaas-defau

neutron-vpn-agen-fwaas-defau 内容为:

-A neutron-vpn-agen-fwaas-defau -j DROP

可见,数据会被丢弃。 同样的道理,router 上所有进入 qr-* interface 的数据也会被丢弃。

其结论是:在没有定义任何 firewall rule 的情况下,进出 router 的数据包都会被丢弃。

ping 和 ssh 测试表明目前 cirros-vm1 确实已经无法与 cirros-vm2 通信。

技术分享

下节添加新的规则允许 ssh,之后我们也会比较安全组和 FWaaS 的异同。

技术分享




理解neutronfwaas-每天5分钟玩转openstack(117)

前面我们学习了安全组,今天学习另一个与安全相关的服务--FWaaS。理解概念FirewallasaService(FWaaS)是Neutron的一个高级服务。用户可以用它来创建和管理防火墙,在subnet的边界上对layer3和layer4的流量进行过滤。传统网络中的防火... 查看详情

实践configdrive-每天5分钟玩转openstack(170)

如果instance无法通过metadataservice获取metadata(无DHCP或者nova-api-metadata服务),instance还可以通过configdrive获得metadata。 configdrive是一个特殊的文件系统,OpenStack会将metadata写到configdrive,并在instance启动时挂载给instance。如过instanc... 查看详情

fwaas实践:允许ssh-每天5分钟玩转openstack(119)

上一节应用了无规则的虚拟防火墙,不允许任何流量通过。今天我们会在防火墙中添加一条规则,允许ssh。最后我们会对安全组和FWaaS作个比较。下面我们添加一条firewallrule:允许ssh。在FirewallRules标签页面点击“AddRule”按钮。... 查看详情

实践neutron前的两个准备工作-每天5分钟玩转openstack(78)

650)this.width=650;"title="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160825-1472134654045035781.png"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20160825-14721347 查看详情

fwaas实践:允许ssh-每天5分钟玩转openstack(119)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161129-1480374306547066500.jpg"alt="7.png"/>上一节应用了无规则的虚拟防火墙,不允许任何流量通过。今天我们会在防火墙中添加一条规则,允许ssh。最后我们会对安全组... 查看详情

运行容器的最佳实践-每天5分钟玩转docker容器技术(24)

按用途容器大致可分为两类:服务类容器和工具类的容器。1.服务类容器以daemon的形式运行,对外提供服务。比如webserver,数据库等。通过 -d 以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec-it&... 查看详情

运行容器的最佳实践-每天5分钟玩转docker容器技术(24)

按用途容器大致可分为两类:服务类容器和工具类的容器。1.服务类容器以daemon的形式运行,对外提供服务。比如webserver,数据库等。通过 -d 以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec-it&... 查看详情

实践neutron前的两个准备工作-每天5分钟玩转openstack(78)

上一节配置了linux-bridgemechanismdriver,本节再做两个准备工作:1.检视初始的网络状态。2.了解linuxbridge环境中的各种网络设备。初始网络状态我们首先考察实验环境最初始的网络状态。随着学习的深入,我们会对网络不断进行新的... 查看详情

每天5分钟玩转容器技术整理目录

原 写在最前面-每天5分钟玩转容器技术(1)容器生态系统-每天5分钟玩转容器技术(2) 容器生态系统(续)-每天5分钟玩转容器技术(3)运行第一个容器-每天5分钟玩转容器技术(4)【视频】运行第一个容器-每天5分钟玩... 查看详情

配置lbaas-每天5分钟玩转openstack(121)

650)this.width=650;"src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20161205-1480888429992067798.jpg"/>上一节学习了NeutronLBaaS的原理,今天开始实践。首先在配置中启用LBaaS服务。Neutron通过lbaasplugin和lbaasagent提供LBa 查看详情

配置lbaas-每天5分钟玩转openstack(121)

上一节学习了NeutronLBaaS的原理,今天开始实践。首先在配置中启用LBaaS服务。Neutron通过lbaasplugin和lbaasagent提供LBaaS服务。lbaasplugin与NeutronServer一起运行在控制节点上。lbaasagent运行在网络节点上。对于我们的实验环境,控制节点和... 查看详情

回滚-每天5分钟玩转docker容器技术(141)

...通过 revisionHistoryLimit 属性增加revision数量。下面实践回滚功能。应用有如下 查看详情

写在最前面-每天5分钟玩转openstack

...OpenStack从架构到各个组件;从整体到细节逐一讨论重实践并兼顾理论主要从实际操作的角度带着大家学习OpenStack。为啥要写这个?简单回答是:因为OpenStack学习难度大,但如果掌握了 查看详情

《每天5分钟玩转容器技术》(转)

《每天5分钟玩转容器技术》《每天5分钟玩转容器技术》 查看详情

写在最前面-每天5分钟玩转容器技术

...生态环境到各个具体的技术,从整体到细节逐一讨论。重实践并兼顾理论。从实际操作的角度带领大家学习容器技术。为什么要写这个?简单回答是:容器技术非常热门,但门槛高。容器技术是继大数据和云计算之后又一炙手可... 查看详情

写在最前面-每天5分钟玩转容器技术

...生态环境到各个具体的技术,从整体到细节逐一讨论。重实践并兼顾理论。从实际操作的角度带领大家学习容器技术。为什么要写这个?简单回答是:容器技术非常热门,但门槛高。容器技术是继大数据和云计算之后又一炙手可... 查看详情

healthcheck-每天5分钟玩转docker容器技术(142)

...。避免部署无效的镜像。更加安全的滚动升级。下面通过实践学习Kubernetes的HealthCheck功能。默认的健康检查我们首先学习Kubernetes默认的健康检查机 查看详情

写在最前面-每天5分钟玩转容器技术

...环境到各个具体的技术,从整体到细节逐一讨论。重实践并兼顾理论。从实际操作的角度带领大家学习容器技术。为什么要写这个?简单回答是:容器技术非常热门,但门槛高。容器技术是继大数据和云计算之后... 查看详情