centos 7實例,連接多個接口。之前說過路由衝突引起的問題。
這次碰到的是由於接口分離再連接導致的網卡索引號問題。(索引號改變和串網卡)
問題分爲兩種
1、接口分開再連接,網卡名沒變,但是通過ip a命令查看,可以看到網卡的網卡索引號改變了。
網卡索引號,累加,添加了一個當前最大索引號加1的網卡。ip a可以看到分離再添加的網卡排到了最後。
通過網卡索引號,來識別網卡的程序,碰到了問題。
此時我改爲使用通過網卡名,來獲取索引號的方式,來識別網卡。使應用程序正常工作。
2、接口分開再連接,關閉實例之後,再開機,出現串網卡的問題。
reboot不影響,不會產生串網卡問題。實例內部使用ip a查看IP地址和mac地址,
對應所掛網絡,發現分開再連接的網絡接口,變成了最後一塊網卡。
查找資料,發現,centos實例開機加載網卡的順序保存在openstack的nova數據庫instance_info_caches表中。
每次重掛網絡時,改變表中network_info字段順序,即可。
此字段爲json格式。
[{"profile": {}, "ovs_interfaceid": "ce6a61ff-15b9-4102-9ba8-1755ad4840a1", "preserve_on_delete": false, "network": {"bridge": "br-int", "subnets": [{"ips": [{"meta": {}, "version": 4, "type": "fixed", "floating_ips": [], "address": "192.168.1.10"}], "version": 4, "meta": {"dhcp_server": "192.168.1.2"}, "dns": [], "routes": [], "cidr": "192.168.1.0/24", "gateway": {"meta": {}, "version": 4, "type": "gateway", "address": "192.168.1.1"}}], "meta": {"injected": false, "tenant_id": "40026f6973464ee9a19ad04f6221e213", "mtu": 1500}, "id": "d6fcefec-8216-4c24-a8a5-fa32c498d615", "label": "network_7260"}, "devname": "tapce6a61ff-15", "vnic_type": "normal", "qbh_params": null, "meta": {}, "details": {"port_filter": true, "datapath_type": "system", "ovs_hybrid_plug": false}, "address": "fa:16:3e:6e:34:44", "active": true, "type": "ovs", "id": "ce6a61ff-15b9-4102-9ba8-1755ad4840a1", "qbg_params": null}]
將其裝換後,修改順序,就能回去之前順序。