该实验是在SDNLab的未来网络学院学习肖宏辉的《Openstack Neutron应用入门》课程时,借助其实验平台所做的实验。同样也适应其他环境想要自学openstack的小伙伴。
实验平台:https://www.sdnlab.com/experimental-platform/(也可以使用自己搭建的openstack环境)
实验环境:
1.一个子网
2.一台主机:HOST1(all_in_one节点)
IP: 192.168.1.10
登录用户:xiaohhui
登录密码:passw0rd
系统:Ubuntu 16.04LTS
规格:CPU-4核,内存-8GB
3.HOST1中的openstack创建的Neutron环境
net1 :
subnet:11.0.0.0/24
网关:11.0.0.1/24
DHCP sever:11.0.0.2/24
VM1:
ip地址:11.0.0.8
用户名:cirros
密码:cubswin:)
一、防火墙基本概念
1.防火墙定义:是防火墙规则的集合
2.firewall 基本概念
虚拟机和外网(南北),虚拟机之间(东西)
集中式和分布式防火墙
主要学习的是 分布式防火墙,在计算计算节点上部署
3.入方向(ingress)和出方向(egress)
4.防火墙分类:
(1)静态防火墙:两个方向都做处理
例子:ping ICMP
缺点:多余;两个方向都处理;实现不灵活
(2)有状态防火墙:只对一个方向进行处理,会记录各个流量的状态
(3)基于应用数据的模式匹配防火墙DPI
例如:敏感词过滤
实验2.1:验证防火墙的网络阻断功能(有状态安全组规则):
实验内容:
验证安全组的网络阻断功能
- 验证可以ping通虚拟机
- 删除安全组规则,验证不能ping虚拟机
- 不做修改,登陆虚拟机内部,验证仍然可以平通DHCP server
实验步骤:
(1)验证ping通虚拟机
注入用户名和密码
source devstack/openrc admin admin
查看网络
neutron net-list
查看当前网络的namespace
ip netns
找到DHCP服务器对应的网络namespace
进入HDCP网络内部
sudo ip netns exec qdhcp****(id) bash
注意用户的变化:
查看网络
ip a
退出
exit
查看虚拟机的IP地址
nova list
返回DHCP server 内部
sudo ip netns exec qdhcp****(id) bash
ping虚拟机,并保持
ping 10.0.0.8
(2)删除安全规则
开启一个新的终端,远程登陆到VM1虚拟机内部
查看namespace
ip netns
登陆DHCP服务器内部
sudo ip netns exec qdhcp****(id) bash
登陆虚拟机内部ssh
ssh
cirros@10.0.0.8
密码:cubswin:)
登录成功后,查看ip
ip a
再打开一个终端,在all_in_one 节点操作安全组:
注入用户名和密码
source devstack/openrc admin admin
查看安全组规则
neutron security-group-rule-list
找到ICMP规则
删除ICMP规则
neutron security-group-rule-delete ID
(3)验证vm1虚拟机仍然可以ping通DHCPserver
查看server已经停止ping,一直处于等待状态!
进入到ssh到虚拟机的终端
执行 ping 11.0.0.2
从虚拟机内部可以ping通server
——————————————————————————————
实验2.1:验证安全组的网络阻断功能(有状态安全组规则)无插图:
实验内容:
验证安全组的网络阻断功能
- 验证可以ping通虚拟机
- 删除安全组规则,验证不能ping虚拟机
- 不做修改,登陆虚拟机内部,验证仍然可以平通DHCP server
实验步骤:
(1)验证ping通虚拟机
注入用户名和密码
source devstack/openrc admin admin
查看网络
neutron net-list
查看当前网络的namespace
ip netns
找到DHCP服务器对应的网络namespace
进入HDCP网络内部
sudo ip netns exec qdhcp****(id) bash
注意用户的变化:
查看网络
ip a
退出
exit
查看虚拟机的IP地址
nova list
返回DHCP server 内部
sudo ip netns exec qdhcp****(id) bash
ping虚拟机,并保持
ping 10.0.0.8
(2)删除安全规则
开启一个新的终端,远程登陆到VM1虚拟机内部
查看namespace
ip netns
登陆DHCP服务器内部
sudo ip netns exec qdhcp****(id) bash
登陆虚拟机内部ssh
ssh
cirros@10.0.0.8
密码:cubswin:)
登录成功后,查看ip
ip a
再打开一个终端,在all_in_one 节点操作安全组:
注入用户名和密码
source devstack/openrc admin admin
查看安全组规则
neutron security-group-rule-list
找到ICMP规则
删除ICMP规则
neutron security-group-rule-delete ID
(3)验证vm1虚拟机仍然可以ping通DHCPserver
查看server已经停止ping,一直处于等待状态!
进入到ssh到虚拟机的终端
执行 ping 11.0.0.2
从虚拟机内部可以ping通server