文章目录
dashboard添加网络以及子网
说明
- 添加网络前提:首先需要交换机上做相关操作,网络不归们管我也不是搞网络的,所以交换机具体要添加什么我不清楚,反正肯定要添加一个vlanid标签并且将这个vlanid提供给我们,我们在dashboard中根据网络部门同事提供的vlanid和相关网关这些信息来添加。
- 我以添加下面私网地址为例,下面地址是集团提供的,不在我们云池规划内~ 因为集团需要在某些虚拟机中添加指定的虚拟机网络,所以我们需要再底层添加下面网络分配给虚拟机。。。
下面10.46.195.37
这个地址需要放一个虚拟机里面,网关是10.46.195.34
,vlanid是1113
【是的,你没看错,这么一个网络只需要一个地址,根据集团要求我这需要添加14个这种vlanid的网络,每个vlanid都只有1-2个地址】
添加网络
- 登录dashboard-进入admin域-进入系统-点击网络-创建网络
- 创建网络,具体意思看图片
- 上面内容填好以后,之间点击提交
查看物理网络名称
-
方式1:dashboard看已有网络的名称,建议多看2个,这个名称都是一样的才对。
-
方式2:底层控制节点看配置文件,注意看注释说明
[root@controller01 ~]# cd /etc/neutron/
conf.d/ plugins/
[root@controller01 ~]# cd /etc/neutron/plugins/ml2/
[root@controller01 ml2]# ls -l
total 36
-rw-r-----. 1 root neutron 8055 Jan 8 2018 linuxbridge_agent.ini
-rw-r----- 1 root neutron 8739 May 6 2019 ml2_conf.ini
-rw-r-----. 1 root neutron 4638 Jun 17 2016 ml2_conf_sriov.ini
-rw-r-----. 1 root neutron 5303 Jun 17 2016 sriov_agent.ini
# 主要是下面这个命令哦
[root@controller01 ml2]# grep -E -v "^#|^$" ml2_conf.ini
[DEFAULT]
[ml2]
type_drivers = flat,vlan,vxlan
mechanism_drivers = linuxbridge,l2population
extension_drivers = port_security
tenant_network_types = vlan
[ml2_type_flat]
[ml2_type_geneve]
[ml2_type_gre]
[ml2_type_vlan]
# 下面这个就是名称
network_vlan_ranges = provider:1:4000
[ml2_type_vxlan]
[securitygroup]
enable_ipset = True
[root@controller01 ml2]# ls
linuxbridge_agent.ini ml2_conf.ini ml2_conf_sriov.ini sriov_agent.ini
[root@controller01 ml2]# grep -E -v "^#|^$" linuxbridge_agent.ini
[DEFAULT]
[agent]
[linux_bridge]
# 这个地方其实就是配置用哪个bond来通信用。 就是我前面说的,bond1用来虚拟机通信,配置在集群中。
physical_interface_mappings = provider:bond1
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
enable_ipset = true
[vxlan]
enable_vxlan = False
[root@controller01 ml2]#
添加子网
-
点击刚才创建成功的网络,进去以后点击增加子网
-
看图片填写内容
- 子网名称自定义,命名最好能看出是哪个网络。
- 注:网络地址我用32/28结尾是因为网关是34,看下面网络掩码对应网络为说明,我会说明我为什么用32/28,而不是用0/28
-
点击下一步后填写ip区间,因为我只需要一个,所以我起始和结尾都填了同一个地址,如果是区间,根据系统提示填写即可,这个不需要掩码
- 注:我这是没有激活dhcp的,因为激活dhcp会占用一个ip地址。我这只有一个ip地址,所以就没有勾上激活,如果子网ip地址很多,建议勾上激活dhcp。
- 同时没有勾上激活dhcp好像又有另外一个问题,我之前创建一个网络2个ip可用,没有勾上激活DHCP,但是创建虚拟机的时候选择该网 络,创建虚拟机是会报错的。 但是可以用其他网络创建出虚拟机,后面通过绑定该网络接口,系统内也可以正常使用该网络,只是用该网络创建虚拟机会报错而已。也不知道是dhcp的问题还是因为创建时指定的计算节点的agent网络服务不正常导致的。
-
创建完成
测试:给虚拟机添加该网络接口
-
随便找个虚拟机连接接口
-
选择刚才定义名称的网络
-
ip有了
-
进系统内核实mac地址【可以不用的,但因为这个虚拟机是生产环境的虚拟机,有6个网卡,而且ip使用很乱,所以为了避免出错,我还是核对一下mac】
-
配置该配置文件的ip,我这用的是
PREFIX=28
28是掩码,看得懂把
-ifdown eth4, ifup eth4
重启该网卡以后,ip a
能看到ip,能ping通网关,完成。
至此,网络添加完成
物理机光纤到交换机的作用
-
如果各位去机房见过计算节点服务器到交换机的光纤布局,可能能看到有2组4根光纤【我们这是这样哈】
-
2组光纤的作用,一般2组光纤都会做bond,一组用来服务器之间通信,一组用来虚拟机之间通信
-
光纤组1:我们这做的是bond0,用来服务器之间通信的,可以看到bond0中有明确ip,每个服务器都会有这么一个ip,这个没啥好说的。
-
光纤组2:做的是bond1,用来虚拟机之间通信用的,这并看不到bond1中有明确ip,是因为bond1配置在openstack集群中使用了,集群中会配置bond1用来通信。
-
-
所以现在反过来一个疑问:
dashboard添加网络报错
报错内容说明
报错文字大概:
错误:为网络“None”创建子网失败,Invalid input for operation:Gateway is not valid on subnet. Neutron server returns request_ids:
原因及处理方法
- 原因: 如下,我创建子网的时候,网络地址我用的是
10.46.195.0/28
,而网关是10.46.195.34
深入分析,28位掩码可用ip16个,而从0开始,那么可用ip范围就是1-16,而网关是34,明显网关ip超出子网范围了,所以创建就会报错。
- 解决方法:如下图,我们将网络位改为32,整体为:
10.46.195.32/32
这样问题就解决了
深入分析,因为28位掩码可用ip16,34再32-48范围内。所以问题得以解决。 更多看下面网络掩码对应网络位说明的分析。
网络掩码对应网络位说明
-
上面网络位为啥用32,是有一个逻辑的,
1,2,4,8,16,32,64,128
28位掩码是固定的可用ip16个,所以根据网关是34,满足条件的网络位就只有32了。 -
扩充一下知识点: 其实掩码主要是交换机上用来规划网络位的,上面
10.46.195.32/28
其实和10.46.195.0/24
再使用上不会有啥区别,但如果交换机上规划了28位的各个网络段,我们直接用0/24就会造成子网重复,可能会导致网络冲突。