目录
????????本文将从设计和配置两方面详细说明在Centos和Ubuntu两种场景下,allinone部署的OpenStack想要实例能够正常连接外部网络,在网卡上需要做的配置。
? ? ? ? 在安装完OpenStack后,通过ip add show可以看到有几下几张网卡:1.物理网卡 2.br-ex 3.br-int 4.br-tun。详细的OpenStack网络结构可以参考
????????下文中假设物理网卡名称为eth0,eth1(在虚拟环境中网卡名可能是ens33,ens36),连接公网的统一的思路都是将外部网口设置成二层接口,使用br-ex来获取ip地址或者使用静态ip地址。
????????在设计中,在分离部署情况下,两网卡是将业务流量、管理流量走其中一个网卡,存储流量走另一个网卡。不过我们这是融合部署,两网卡就是业务流量和管理流量分离:设置业务流量的网卡eth0为external网卡,管理流量的网卡eth1为internal网卡。
????????多网卡场景要求网卡之间网段不相同。如果相同,外部网卡绑定的br-ex获取ip后,内部网卡将无法使用。这种情况下不如直接将内外部网卡设置为同一个。
? ? ? ? 如果已经采取了这样的配置也没事,反正你都能访问的。但此时外部网卡不能断开连接,一旦断开连接,由于外部网卡的原因,内部网卡也将无法访问网关,擦除br-ex的ip之后恢复。
????????不使用网络连接进行管理的场景,比如VMware,在进行安装时指定eth0同时为internal网卡和external网卡。
????????此时eth0无ip地址,需要关闭NetworkManager,使用service Network的方式来管理网卡
#在/etc/sysconfig/network-scripts中添加网卡配置文件
#添加eth0的配置文件
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<END
TYPE=OVSPort
HWADDR=xx:xx:xx:xx:xx:xx
ONBOOT=yes
DEVICE=eth0
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
END
#添加br-ex的配置文件————采用DHCP
cat > /etc/sysconfig/network-scripts/ifcfg-br-ex <<END
TYPE=OVSBridge
NAME="br-ex"
DEVICE=br-ex
DEVICETYPE=ovs
BOOTPROTO=dhcp
DEFROUTE=yes
ONBOOT=yes
DELAY=0
END
#添加br-ex的配置文件————采用静态地址
cat > /etc/sysconfig/network-scripts/ifcfg-br-ex <<END
TYPE=OVSBridge
NAME="br-ex"
DEVICE=br-ex
DEVICETYPE=ovs
BOOTPROTO=static
IPADDR=<静态IP地址>
NETMASK=<子网掩码>
GATEWAY=<网关IP地址>
DNS1=<首选DNS服务器IP地址>
DNS2=<备用DNS服务器IP地址>
DEFROUTE=yes
ONBOOT=yes
DELAY=0
END
#应用设置——重启服务
systemctl disable NetworkManager --now
systemctl enable network --now
systemctl restart network
这是博主现在遇到的场景,博主使用的物理机有无线网卡和有线网卡各一块:
无线网卡打通隧道用以远程管理,所以无法使用单网卡场景
有线网卡作为外部网卡连接公网(刚安装完是个二层口),对端是路由器用的dhcp
大多配置与单网卡相同,但需要额外配置eth1的网卡:
#在/etc/sysconfig/network-scripts中添加网卡配置文件
#静态ip地址
cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<END
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=<静态IP地址>
NETMASK=<子网掩码>
GATEWAY=<网关IP地址>
DNS1=<首选DNS服务器IP地址>
DNS2=<备用DNS服务器IP地址>
END
#无线,dhcp获取地址
cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<END
TYPE=Wireless
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=eth1
DEVICE=eth1
ONBOOT=yes
END
#重启服务
systemctl restart network
? ? ? ??不使用网络连接进行管理的场景,比如VMware
? ? ? ? 从Ubuntu 18.04开始,默认网络管理工具已切换为NetPlan,它使用YAML格式的配置文件(/etc/netplan/*.yaml)来定义网络接口和配置。配置文件可以包括静态IP地址、DHCP、路由、DNS服务器等网络参数。
? ? ? ? 修改netplan网络配置文件
#修改/etc/netplan/网络配置文件
#vim /etc/netplan/01-network-manager-all.yaml 这个是我的
#动态获取ip
cat /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: networkd #网络渲染器
ethernets:
eth0:
dhcp4: true
bridges:
br-ex:
interfaces: [eth0] # 将外部网卡接口绑定到网桥
dhcp4: true # 启用网桥的 DHCPv4
#静态指定ip
cat /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
bridges:
br-ex:
interfaces: [eth0]
addresses: [x.x.x.x/xx]
gateway4: x.x.x.x
nameservers: #dns地址
addresses: [8.8.8.8]
#重启服务
netplan apply
systemctl disable NetworkManager --now
systemctl enable systemd-networkd --now
这是博主现在遇到的场景,博主使用的物理机有无线网卡和有线网卡各一块:
无线网卡打通隧道用以远程管理,所以无法使用单网卡场景
有线网卡作为外部网卡连接公网(刚安装完是个二层口),对端是路由器用的dhcp
无线网卡用Networkmanager做管理
#不关闭NetworkManager
#就算调整了配置文件将无线网卡纳管到netplan,关闭了NetworkManager之后无线网卡也会嘎掉
cat /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true # 启用有线网卡的 DHCPv4
bridges:
br-ex: # 定义网桥名称
interfaces: [eth0] # 将外部有线网卡接口绑定到网桥
dhcp4: true # 启用网桥的 DHCPv4