openstack-neutron

本文深入解析了Neutron网络组件的工作原理,包括虚拟机网络配置、叠加网络如何解决物理网络限制,以及安全组和路由服务的具体实现。阐述了在LinuxBridge和Open vSwitch环境下数据包传输路径,以及虚拟路由、floating IP和安全组的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

neutron各组件:

neutron价格:

创建一个网络的流程:

 

(open vswitch)SDN: (看不懂可忽略这部分)

虚拟机网卡由tap设备提供,例如vnet0

虚拟网卡对,可以相当于一对网线

linuxbridger相当于一个hub,连接虚拟网对的一个和tap设备

open vSwitch 相当于一个虚拟的switch,用于vm与物理机的互通

 

(以下需要明白)

在linuxbridge环境下(不支持GRE)一个数据包从instance发送到物理网卡,会经过以下设备:

tap(虚拟机启动时映射为VIF(虚拟机的虚拟网卡)),linuxbridge,vlan interface(ethX.Y,vlan网络),vxlaninterface(vxlan-Z,vxlan网络),物理interface(ethX网卡)

 

 

叠加网络(vlan,GRE,vxlan):解决问题

物理网络基础设施限制

1 不改变物理网络变更VN网络拓扑

2 VM迁移

多租户场景:支持IP地址重叠

 

每个flat network都会独占一个物理网卡

例如:

local 网络:无法与外部网络通信

vlan网络示意图

1)

 2)

实例在不同节点上的网络示意图

有关namespace的dhcp工作示意图

虚拟路由服务是由L3agent 提供的,除此之外l3agent通过iptables提供firewall和floating ip 服务,L3agent为每个router建立一个namespace,通过veth pair 与 tap设备相连,然后将Gateway配置于namespace里面的veth interface,提供路由,namespace使得每个router有自己独立的路由表,不会与其他路由冲突,可以很好的实现网络重叠

veth interface与tap设备组成了虚拟网卡对,相当于一根网线

示意图:

外部网络示意图:

instance通过source NAT来访问外部网络,而外部网络是无法访问instance的,因为这种结构下instance没有外网的IP地址,这是需要floating ip,它提供静态nat的功能,建立外网ip与instance租户网络的一对一ip映射。

 关于安全组:

 

open  vswitch 实现的vlan网络

open vswitch 下的路由服务

### 解决 `yum install` 命令报错的方法 当执行命令 `yum install openstack-neutron ml2 linuxbridge ebtables` 出现错误时,可能的原因有多种。以下是几种常见的原因以及相应的解决方案。 #### 1. 检查仓库配置 确保 YUM 仓库已正确配置并可用。如果缺少必要的 OpenStack 或 EPEL (Extra Packages for Enterprise Linux) 仓库,则可能导致依赖项无法解析或下载失败。可以尝试添加这些仓库: 对于 CentOS/RHEL 用户来说,可以通过以下方式启用额外的软件源: ```bash sudo yum install centos-release-openstack-yoga epel-release -y ``` #### 2. 清理缓存重新同步数据 有时本地元数据可能会损坏或者过期,这也会引起安装过程中的问题。清理现有缓存再重试有助于解决问题: ```bash sudo yum clean all && sudo yum makecache fast ``` #### 3. 使用完整的包名进行安装 根据提供的信息,在实际操作过程中应当使用更具体的名称来代替缩写的参数[^1]。因此建议按照官方文档推荐的方式输入完整指令如下所示: ```bash sudo yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables conntrack-tools ``` #### 4. 修改内核参数支持桥接防火墙过滤功能 为了使Linux Bridge能够正常工作于Neutron环境中,还需要调整一些内核级别的设置以允许网桥上的流量被iptables规则所影响[^4]: ```bash echo 'net.bridge.bridge-nf-call-iptables=1' >> /etc/sysctl.conf echo 'net.bridge.bridge-nf-call-ip6tables=1' >> /etc/sysctl.conf sysctl -p modprobe br_netfilter ``` 通过以上措施应该能有效减少因环境差异而导致的各种潜在错误情况的发生概率。当然具体到每一个特定场景下还可能存在其他因素干扰成功部署流程,这时就需要结合日志文件进一步排查分析了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值