【问题标题】:All-in-One Openstack instance network not communicate to LAN network - External-VM ping OK - VM-External/Internet ping NOT OK一体机 Openstack 实例网络无法与 LAN 网络通信 - 外部虚拟机 ping 正常 - 虚拟机外部/互联网 ping 不正常
【发布时间】:2020-09-08 03:41:59
【问题描述】:

我刚刚完成了 openstack packstack all-in-one 的部署。我只是遵循默认部署而不编辑/修改任何内容。我能够使用默认公共网络 (172.24.4.0/24) 或使用创建的专用网络 (10.0.0.0/24) 创建用于测试的实例。那么现在如何将 172.24.4.0/24 更改为我自己的 LAN 子网(192.168.0.0/24),以便我可以远程访问我的 LAN 中的每个实例。

我是否需要重新部署所有内容以及如何将我的子网添加到 openstack 安装以进行 LAN 访问。请帮忙。

顺便说一句,主机 ifconfig 没有列出网络 172.24.4.0/24..因此我认为它是一个独立/隔离的网络...这就是为什么 VM 实例无法与 LAN 通信。仅供参考我的 VM enp0s3正在使用 192.168.0.18(局域网 IP)

谢谢


按照建议,我重新安装 centos 并部署干净的 openstack。 我创建了答案文件并在下面编辑

CONFIG_NEUTRON_L3_EXT_BRIDGE=br-ex
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:enp0s3
CONFIG_NEUTRON_OVS_BRIDGES_COMPUTE=br-ex
CONFIG_PROVISION_DEMO=n

部署成功并完成。我比

  1. 创建公共外部网络(public-network)
  2. 在此外部网络中创建子网(192.168.0.0/24 和池 110-120)
  3. 创建专用网络
  4. 创建路由器
  5. 将私有和公共连接到路由器。
  6. 创建浮动ip(使用公网)
  7. 创建新实例使用私有网络并附加浮动 ip
  8. 允许 icmp 策略

现在.... 从我的电脑我可以 ping 新实例 vm 但从 vm 实例我无法 ping pc 和 lan gw...和互联网...

下面的ip地址输出

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000
    link/ether 08:00:27:98:9b:a3 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fe98:9ba3/64 scope link
       valid_lft forever preferred_lft forever
5: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 8a:17:8b:e5:dc:c2 brd ff:ff:ff:ff:ff:ff
6: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 08:00:27:98:9b:a3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.121/24 brd 192.168.0.255 scope global br-ex
       valid_lft forever preferred_lft forever
    inet6 2001:e68:5435:d135:a00:27ff:fe98:9ba3/64 scope global mngtmpaddr dynamic
       valid_lft 86399sec preferred_lft 86399sec
    inet6 fe80::a00:27ff:fe98:9ba3/64 scope link
       valid_lft forever preferred_lft forever
7: br-int: <BROADCAST,MULTICAST> mtu 1450 qdisc noop state DOWN group default qlen 1000
    link/ether 32:ff:0f:26:18:43 brd ff:ff:ff:ff:ff:ff
8: br-tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether d6:52:08:a9:68:4f brd ff:ff:ff:ff:ff:ff
29: qbr1f637f14-9c: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default qlen 1000
    link/ether 42:95:e8:c0:a3:07 brd ff:ff:ff:ff:ff:ff
30: qvo1f637f14-9c@qvb1f637f14-9c: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1450 qdisc noqueue master ovs-system state UP group default qlen 1000
    link/ether 6e:2e:07:8d:79:86 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::6c2e:7ff:fe8d:7986/64 scope link
       valid_lft forever preferred_lft forever
31: qvb1f637f14-9c@qvo1f637f14-9c: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1450 qdisc noqueue master qbr1f637f14-9c state UP group default qlen 1000
    link/ether 42:95:e8:c0:a3:07 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4095:e8ff:fec0:a307/64 scope link
       valid_lft forever preferred_lft forever
32: tap1f637f14-9c: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast master qbr1f637f14-9c state UNKNOWN group default qlen 1000
    link/ether fe:16:3e:05:2d:50 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc16:3eff:fe05:2d50/64 scope link
       valid_lft forever preferred_lft forever

尝试从 qrouter ping 192.168.0.1 (LAN GW) 和 qdhcp failed , ip netns

qrouter-f6967bba-986e-4bb3-838e-d035a684e2c4 (id: 2)
qdhcp-dbd713cd-1af4-4e2c-9c57-d8a675a10608 (id: 1)
qdhcp-fa6fb1d6-b65e-4eb2-a4a4-5552fde8bb08 (id: 0)

sudo ip netns exec qrouter-f6967bba-986e-4bb3-838e-d035a684e2c4 ip route
default via 192.168.0.1 dev qg-0ba7da31-7f
10.0.0.0/24 dev qr-7e6f9436-40 proto kernel scope link src 10.0.0.1
192.168.0.0/24 dev qg-0ba7da31-7f proto kernel scope link src 192.168.0.221

我什至尝试使用 public-ip (192.168.0.226) 旋转新的虚拟机,我的主机电脑可以 ping 这个虚拟机,但虚拟机无法 ping 我的主机电脑和互联网...与使用浮动 ip 时的问题相同。

根据网络映像,VM 实例可以 ping 到路由器 gw 1​​92.168.0.221,但无法连接到我的局域网路由器/主机电脑和互联网。


2009 年 10 月更新

ip netns list
qrouter-f6967bba-986e-4bb3-838e-d035a684e2c4 (id: 2)
qdhcp-dbd713cd-1af4-4e2c-9c57-d8a675a10608 (id: 1)
qdhcp-fa6fb1d6-b65e-4eb2-a4a4-5552fde8bb08 (id: 0)
[root@myospackanswer ~(keystone_admin)]# ip netns exec qrouter-f6967bba-986e-4bb3-838e-d035a684e2c4 arp -an
? (192.168.0.211) at <incomplete> on qg-0ba7da31-7f 
? (192.168.0.227) at fa:16:3e:ed:19:81 [ether] on qg-0ba7da31-7f (Instance IP)
? (192.168.0.160) at d4:d2:52:73:de:80 [ether] on qg-0ba7da31-7f (host pc IP)
? (192.168.0.1) at 80:26:89:b2:98:50 [ether] on qg-0ba7da31-7f (home router GW)
? (10.0.0.4) at fa:16:3e:01:63:42 [ether] on qr-7e6f9436-40 (private subnet)

ip r
default via 192.168.0.1 dev br-ex
169.254.0.0/16 dev enp0s3 scope link metric 1002
169.254.0.0/16 dev br-ex scope link metric 1006
192.168.0.0/24 dev br-ex proto kernel scope link src 192.168.0.121

我的设置 Windows10---Virtualbox(bridge)---HostCentos---Openstack 无线网络。 混杂模式Virtualbox(全部)

我测试了不同的 openstack 版本和全新安装的操作系统,都是同样的问题,无法从 VM 实例访问 LAN/Internet。如果有人像我一样面临同样的问题,请分享您的解决方案。谢谢。

只是为了分享,我正在通过 vmware 进行部署并解决了问题。不确定是否是由于virtualbox造成的网络问题。也许有人可以分享他们在 virtualbox 上部署 openstack 的经验并且没有这个问题(VM 无法 ping 外部/互联网)

【问题讨论】:

    标签: networking openstack openstack-neutron


    【解决方案1】:

    public确实是一个孤立的网络,默认只存在于Packstack主机上。但是,您应该看到br-ex 网桥。也许ifconfig 不支持 Openvswitch 网桥;请改用ip address

    要将云连接到您现有的网络,请尝试Neutron with existing external network(此页面的链接位于Packstack installation page 的末尾)。

    很遗憾,您将不得不重新部署云。实际上,我会从头开始,即重新安装 Centos。

    【讨论】:

    • 嗯。您可以使用 Packstack 主机上的“ip a”和 VM 上的“ip r”的输出来更新您的问题吗?当你说你可以 ping 虚拟机时,你的意思是它的浮动 IP?
    • 是的....我将浮动 ip 附加到虚拟机,我的本地电脑 ping 到虚拟机浮动 ip...我已经更新了上面 ip addr 的输出。
    • 你确定192.168.0.1是云外的路由器?如果是这样,我感到困惑的是,您无法从 Neutron 路由器访问该地址。我会使用 tcpdump 来查看数据包是如何路由的,还要检查 br-int 和 br-ex 中的规则。还要检查路由器命名空间中的 IP 地址和路由规则。目前,我不知道问题可能是什么。黑暗中的一枪:是否有可能多个设备在网络中具有相同的 IP 地址?
    • 是的...192.168.0.1是我家的路由器gw。我什至刷新所有规则,并接受所有规则......仍然没有解决......为什么问题......真的让我很困惑......这是我的公共子网......我的家庭局域网范围IP(确认不使用)而我的家庭路由器 gw 1​​92.168.0.1..这是正确的,对吧?...===>openstack subnet create public-subnet --dhcp --subnet-range 192.168.0.0/24 --allocation-pool start=192.168。 0.220,en d=192.168.0.230 --gateway 192.168.0.1 --dns-nameserver 8.8.8.8 --network public-network
    • ====>openstack network create public-network --share --external --default --provider-network-type flat --provider-physical-network extnet
    【解决方案2】:

    我遇到了完全相同的问题。这也是一个多合一的包装和皇后版本。直到几周前,这一切都很好。无法回忆或在我的历史文件中找到任何指向我所做更改的内容。

    因为我部署了很多堆栈,所以我花了太多时间试图解决这个问题。

    无法从我的 qrouter 命名空间 ping 到我的家庭路由器。 所以我没有从外面到达我的实例的原因是他们找不到回去的路。主机可以到达实例,实例可以到达主机。

    qrouter 的路由表看起来不错。

    【讨论】:

    • 我的问题通过 vmware 部署解决。希望您的问题尽快解决...谢谢
    【解决方案3】:

    @chenoi 正如您所提到的,当您在 vmware 上部署 Packstack 时问题已解决。 目前,我和你有类似的问题

    Public= 192.168.100.0/24
    Private= 10.5.5.0/24Compute node = 198.168.100.180
    Instance = 192.168.100.200/10.5.5.73
    qRouter = 192.168.100.186/10.5.5.1
    Other machine = 192.168.100.71
    

    计算节点(CentOS)-> qRouter/Instance(通过浮动 IP)OK

    qRouter -> 计算节点(CentOS)(通过公网)OK

    qRouter -> 实例(浮动IP和私网)OK

    实例 -> qRouter(公共/私有网络)OK

    Instance -> 计算节点(CentOS)(通过公网)OK

    同时

    qRouter -> 其他机器(在同一个公共网络中)无法访问

    实例 -> 其他机器(在同一个公共网络中)无法访问

    其他机器(在同一个公共网络)-> qRouter/Instance(通过公共网络)无法访问

    我不确定我的问题是否与您的问题有关。但是只是想尝试一下。

    PS。我的计算节点在混杂模式下运行 ESXI7,但我找不到可以将 NIC 更改为桥接模式的位置。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多