从头搭建Openstack运行环境--租户网络间路由与防火墙

Posted run4life

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从头搭建Openstack运行环境--租户网络间路由与防火墙相关的知识,希望对你有一定的参考价值。

7.两个租户网络添加路由并配置防火墙规则

为两个租户网络添加路由和配置防火墙规则,可以实现不同租户网络的互通,并配置防火墙规则实现。这里选取tenant1和tenant2此两个租户来创建路由并配置防火墙规则

1)配置信息

#tenant1 add to qrouter01,gateway:qr01 10.0.0.1

#tenant2 add to qrouter01,gateway:qr02 10.0.1.1

2)创建tenant1网关qr01设备和qrouter01路由命名空间

ovs-vsctl -- --if-exists del-port qr01 -- add-port br-int qr01 -- set interface qr01 type=internal
ovs-vsctl --timeout=10 set Port qr01 tag=1
ip netns add qrouter01
ip netns exec qrouter01 ip link set lo up
ip link set qr01 netns qrouter01
ip netns exec qrouter01 ip link set qr01 up
ip netns exec qrouter01 ip -4 addr add 10.0.0.1/24 brd 10.0.0.255 scope global dev qr01
ip netns exec qrouter01 sysctl -w net.ipv4.ip_forward=1

3)创建tenant2网关qr02设备

ovs-vsctl -- --if-exists del-port qr02 -- add-port br-int qr02 -- set interface qr02 type=internal
ovs-vsctl --timeout=10 set Port qr02 tag=2
ip link set qr02 netns qrouter01
ip netns exec qrouter01 ip link set qr02 up
ip netns exec qrouter01 ip -4 addr add 10.0.1.1/24 brd 10.0.1.255 scope global dev qr02

4)通过在qrouter01命名空间中同时分配添加了qr01(10.0.0.1)和qr02(10.0.1.1)两个租户的网关

通过命名空间内部路由表,即可实现两个租户网络间互相通讯。

 

5)配置租户间防火墙基础规则

ip netns exec qrouter01 iptables -F
ip netns exec qrouter01 iptables -X
ip netns exec qrouter01 iptables -Z
ip netns exec qrouter01 iptables -t filter -P INPUT ACCEPT
ip netns exec qrouter01 iptables -t filter -P FORWARD ACCEPT
ip netns exec qrouter01 iptables -t filter -P OUTPUT ACCEPT
ip netns exec qrouter01 iptables -t filter -N neutron-filter-top
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-FORWARD
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-INPUT
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-OUTPUT
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-fwaas-defau
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-iv01
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-local
ip netns exec qrouter01 iptables -t filter -N neutron-l3-agent-ov01
ip netns exec qrouter01 iptables -t filter -A INPUT -j neutron-l3-agent-INPUT
ip netns exec qrouter01 iptables -t filter -A FORWARD -j neutron-filter-top
ip netns exec qrouter01 iptables -t filter -A FORWARD -j neutron-l3-agent-FORWARD
ip netns exec qrouter01 iptables -t filter -A OUTPUT -j neutron-filter-top
ip netns exec qrouter01 iptables -t filter -A OUTPUT -j neutron-l3-agent-OUTPUT
ip netns exec qrouter01 iptables -t filter -A neutron-filter-top -j neutron-l3-agent-local
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-FORWARD -o qr+ -j neutron-l3-agent-iv01
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-FORWARD -i qr+ -j neutron-l3-agent-ov01
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-FORWARD -o qr+ -j neutron-l3-agent-fwaas-defau
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-FORWARD -i qr+ -j neutron-l3-agent-fwaas-defau
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-INPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 9697 -j ACCEPT
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-fwaas-defau -j DROP
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-iv01 -m state --state INVALID -j DROP
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-iv01 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-ov01 -m state --state INVALID -j DROP
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-ov01 -m state --state RELATED,ESTABLISHED -j ACCEPT

 

6)放开ping和ssh服务

ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-iv01 -p icmp -j ACCEPT
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-ov01 -p icmp -j ACCEPT
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-iv01 -p tcp -m tcp --dport ssh -j ACCEPT
ip netns exec qrouter01 iptables -t filter -A neutron-l3-agent-ov01 -p tcp -m tcp --dport ssh -j ACCEPT

 

 

参考资料:

SammyLiu的《Neutron 理解》系列 http://www.cnblogs.com/sammyliu/p/4622563.html

深入理解Neutron -- OpenStack 网络实现 https://www.gitbook.com/book/yeasy/openstack_understand_neutron/details

 

作者简介:赵俊峰,现为华胜信泰信息产业发展有限公司 云计算部Openstack开发工程师。主要从事Power和x86混合环境下Openstack相关计算、网络、存储相关服务软件开发和系统架构设计工作。

 

以上是关于从头搭建Openstack运行环境--租户网络间路由与防火墙的主要内容,如果未能解决你的问题,请参考以下文章

openstack的四大服务组件及openstack环境搭建

中小企业openstack私有云布署实践15 创建租户网络+实例

Open stack生产环境中几种常见的网络结构

OpenStack neutron相关概念阐述

openstack——使用命令行发放云主机

玩转OpenStack网络Neutron--使用Open vSwitch实现VLAN类型租户网络