我想在 OpenStack 中通过 Neutron 配置路由和 NAT,如何开始使用它?
我创建了一个包含两个内部网络(以及它们上的实例)的网络。现在我想知道配置路由协议和NAT的命令。我检查了 OpenStack 文档,但找不到任何方便的东西。
有人可以帮助我或告诉我如何开始使用它吗?
我想在 OpenStack 中通过 Neutron 配置路由和 NAT,如何开始使用它?
我创建了一个包含两个内部网络(以及它们上的实例)的网络。现在我想知道配置路由协议和NAT的命令。我检查了 OpenStack 文档,但找不到任何方便的东西。
有人可以帮助我或告诉我如何开始使用它吗?
好吧,这将是一个很长的回答你的问题。首先,我假设您了解 Openstack Neutron 的外部/内部网络是什么,并且有一个工作设置(也有 br-ex / 外部网桥)
所以 SNATing 的第一部分
首先为简单起见,请使用仪表板在管理员租户/管理员用户中执行以下步骤
1-创建一个内部网络
2-创建路由器
3-将虚拟机/实例添加到内部网络
4-在路由器上添加子网网关接口
5- 现在作为管理员,创建外部网络。
外部网络只能由管理员创建。
6-现在将此外部网络添加为路由器网关接口
所以现在您在内部网络中有一个虚拟机。路由器上的子网网关接口和来自外部网络的路由器网关接口
从openstack的角度来看就是这样
这是他从 CLI 执行相同操作的命令列表
$ 源 keystone_admin
这里 keystone_admin 是我的 RC 文件
运行以下命令以在虚拟机上启用 ping 和 ssh,也可以直接从外部网络启用 ping 和 ssh,无需密钥对
$ nova --no-cache secgroup-add-rule 默认 icmp -1 -1 0.0.0.0/0
$ nova --no-cache secgroup-add-rule 默认 tcp 22 22 0.0.0.0/0
$ neutron net-create external_network --shared --router:external=True
$ neutron subnet-create external_network --name external_subnet --allocation-pool start=192.168.122.2,end=192.168.122.20 --disable-dhcp --gateway 192.168.122.1 192.168.122.0/24
$ neutron net-create internal_network
$ neutron subnet-create internal_network --name internal_subnet --allocation-pool start=10.10.1.2,end=10.10.1.20 --disable-dhcp --gateway 10.10.1.1 10.10.1.0/24
$中子网表
$ neutron 子网列表
$ neutron router-创建路由器
$ neutron 路由器接口添加路由器 internal_subnet
$ neutron 路由器列表
$ neutron 路由器接口添加路由器 internal_subnet
$ neutron router-gateway-set 路由器 external_network
从 Horizon 启动虚拟机(来自 CLI 的长命令)
这里我假设外网是192.168.122.0/24,内网是10.10.1.0/24
所以现在你已经从 Openstack 的角度为 SNAT 准备好了设置。现在我们需要给 BR-EX 添加一个物理接口(ethx)来测试它。
所以你需要做的就是在网桥上添加物理接口并修改“ifcfg”文件
以下是 RHEL 6.5 的步骤 - (对于其他人,您必须在网上查找 - 搜索诸如在 Ubuntu 中向 OVS 桥添加物理接口等内容。)
$ cd /etc/sysconfig/网络脚本/
在这个目录中创建这两个文件,如果不存在,否则修改现有的 -
$ vi ifcfg-br-ex
设备=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=静态
IPADDR= 例如 192.168.122.153
NETMASK= 例如 255.255.255.0 用于我们的案例 - 192.168.122.0/24 用于外部网络
网关 = 例如 192.168.122.1
开机=是
$ vi ifcfg-ethx
设备=ethx
TYPE=OVS端口
DEVICETYPE=ovs
开机=否
NM_CONTROLLED=是
BOOTPROTO=静态
OVS_BRIDGE=br-ex
现在运行
$ 服务网络重启
只是为了确保设置已启动并正在运行
$ ifup br-ex
$ ifup eth2
也在做
$ ovs-ofctl 显示 br-ex
它应该在输出中显示“ethx”
所以现在你有了一个有效的 SNAT 设置。您可以从仪表板的控制台在虚拟机/实例中尝试以下操作-
$ 平 8.8.8.8
现在为 DNAT-
运行以下命令
$ neutron floatingip-创建外部网络
这将创建一个浮动 IP 并显示“id”( floatingip_id )
$ neutron 端口列表
从此列表中,获取 VM 的“id”( port_id_of_instance )
$中子浮动IP关联
BAM 现在你已经准备好了 DNAT。
要测试 DNAT,请尝试执行类似的操作
$平
从外网机器
我试图保持直截了当,但这当然需要对 Openstack Neutron 和 Linux 有所了解!:p :)
你可以参考-https ://openstack.redhat.com/Networking_in_too_much_detail