OpenStack物理机与虚拟机外部网络连接:网卡配置实战指南
1. OpenStack网络连接基础概念第一次接触OpenStack网络配置时我也被各种网桥和虚拟设备搞得晕头转向。简单来说OpenStack的网络连接就像是在物理机和虚拟机之间搭建一座桥梁。物理网卡eth0、ens33这类是真实的硬件设备而br-ex、br-int这些则是OpenStack创建的虚拟网桥。在实际部署中最常见的有四种网络设备物理网卡服务器上真实的网卡接口br-ex负责连接外部网络的虚拟网桥br-int处理虚拟机内部流量的集成网桥br-tun用于隧道网络的网桥在复杂部署中才会用到我刚开始配置时犯过一个典型错误直接把IP地址配在物理网卡上。后来发现正确的做法是让物理网卡作为二层接口把IP地址配置在br-ex网桥上。这就好比把网卡变成一根网线真正的网络功能由虚拟网桥来实现。2. CentOS系统配置实战2.1 单网卡场景配置在测试环境或资源有限的情况下我们经常需要单网卡承担所有网络流量。我最近在VMware虚拟机上部署OpenStack时就遇到了这种情况。首先需要关闭NetworkManager服务这是CentOS 7下必须做的一步systemctl disable NetworkManager --now systemctl enable network --now然后创建物理网卡配置文件。假设我们的网卡是eth0cat /etc/sysconfig/network-scripts/ifcfg-eth0 END TYPEOVSPort HWADDRxx:xx:xx:xx:xx:xx ONBOOTyes DEVICEeth0 DEVICETYPEovs OVS_BRIDGEbr-ex END接下来配置br-ex网桥。根据你的网络环境选择DHCP或静态IPDHCP方式cat /etc/sysconfig/network-scripts/ifcfg-br-ex END TYPEOVSBridge NAMEbr-ex DEVICEbr-ex DEVICETYPEovs BOOTPROTOdhcp DEFROUTEyes ONBOOTyes DELAY0 END静态IP方式更推荐生产环境使用cat /etc/sysconfig/network-scripts/ifcfg-br-ex END TYPEOVSBridge NAMEbr-ex DEVICEbr-ex DEVICETYPEovs BOOTPROTOstatic IPADDR192.168.1.100 NETMASK255.255.255.0 GATEWAY192.168.1.1 DNS18.8.8.8 DNS28.8.4.4 DEFROUTEyes ONBOOTyes DELAY0 END配置完成后重启网络服务systemctl restart network2.2 多网卡场景配置生产环境中我们通常会使用多块网卡实现流量分离。最近我在一台戴尔服务器上部署时就配置了双网卡eth0用于业务流量eth1用于管理流量。首先配置外部网络网卡eth0与单网卡配置相同cat /etc/sysconfig/network-scripts/ifcfg-eth0 END TYPEOVSPort HWADDRxx:xx:xx:xx:xx:xx ONBOOTyes DEVICEeth0 DEVICETYPEovs OVS_BRIDGEbr-ex END然后配置内部管理网卡eth1。这里有个关键点管理网卡和业务网卡必须在不同网段否则会出现路由冲突。静态IP配置示例cat /etc/sysconfig/network-scripts/ifcfg-eth1 END TYPEEthernet BOOTPROTOstatic DEFROUTEyes NAMEeth1 DEVICEeth1 ONBOOTyes IPADDR10.0.0.100 NETMASK255.255.255.0 GATEWAY10.0.0.1 DNS18.8.8.8 DNS28.8.4.4 END如果是无线网卡用于管理我在笔记本上测试时遇到过这种情况配置会稍有不同cat /etc/sysconfig/network-scripts/ifcfg-eth1 END TYPEWireless BOOTPROTOdhcp DEFROUTEyes NAMEeth1 DEVICEeth1 ONBOOTyes END3. Ubuntu系统配置实战3.1 单网卡场景配置从Ubuntu 18.04开始网络配置改用netplan这个变化让我刚开始很不适应。但用习惯后发现YAML格式的配置其实更清晰。假设网卡是eth0编辑netplan配置文件通常在/etc/netplan/目录下vim /etc/netplan/01-network-manager-all.yamlDHCP配置方式network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true bridges: br-ex: interfaces: [eth0] dhcp4: true静态IP配置方式network: version: 2 renderer: networkd ethernets: eth0: dhcp4: false bridges: br-ex: interfaces: [eth0] addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8]应用配置netplan apply3.2 多网卡场景配置Ubuntu下多网卡配置有个特殊注意事项无线网卡最好继续使用NetworkManager管理否则可能会失去连接。这是我的一个实际配置案例有线无线组合network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true wlan0: dhcp4: true optional: true bridges: br-ex: interfaces: [eth0] dhcp4: true注意这里wlan0的optional: true参数很关键它允许无线网卡在启动时暂时不可用而不会阻塞系统启动。4. 常见问题与排错指南在实际部署中我遇到过各种网络连接问题。这里分享几个典型问题的解决方法。问题1网桥创建成功但无法获取IP地址检查物理网卡是否真的连接到了网桥ovs-vsctl show应该能看到类似这样的输出Bridge br-ex Port br-ex Interface br-ex type: internal Port eth0 Interface eth0问题2多网卡场景下内部网络无法访问这通常是因为网卡配置在了相同网段。检查各网卡的IP配置ip addr show确保不同网卡不在同一子网内。问题3Ubuntu系统重启后网络失效这可能是netplan配置未正确应用。尝试netplan generate netplan apply并检查服务状态systemctl status systemd-networkd问题4虚拟机无法访问外部网络首先检查物理主机能否上网然后验证NAT和路由规则iptables -t nat -L route -n记得每次修改配置后最好重启网络服务或直接重启服务器。我在实际运维中发现有些网络变更需要完全重启才能生效。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438094.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!