0

我想在 OpenStack 中通过 Neutron 配置路由和 NAT,如何开始使用它?

我创建了一个包含两个内部网络(以及它们上的实例)的网络。现在我想知道配置路由协议和NAT的命令。我检查了 OpenStack 文档,但找不到任何方便的东西。

有人可以帮助我或告诉我如何开始使用它吗?

4

1 回答 1

1

好吧,这将是一个很长的回答你的问题。首先,我假设您了解 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

从 Horizo​​n 启动虚拟机(来自 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

于 2014-09-25T18:31:42.570 回答