給nova虛機新增網絡卡
場景
虛機只有一張網絡卡能通業務網,但是需要有另一張網絡卡能通管理網。
以下手動給虛機新增一張網絡卡。
VM有nic-1
通過br-int
連線到物理網絡卡eth0
上,需要增加nic-2
通過br-bond0
連線到物理interface bond0.706
上。
原理很簡單:建立Linux bridge br-bond0
,把物理介面bond0.706
加到br-bond0
上,再用virsh attach-interface
給VM新增網絡卡nic-2
在CentOS 7上嘗試兩種配置:
配置一
直接修改、新增網絡卡配置檔案。
1. 去掉bond0.706
上配置的IP,並增加BRIDGE
屬性
[
BOOTPROTO=none
DEVICE=bond0.706
ONBOOT=yes
NM_CONTROLLER=no
BONDING_OPTS="mode=1 miimon=100"
#PREFIX=24
#IPADDR=172.16.231.27 <=== 註釋掉IP地址等資訊
#GATEWAY=172.16.231.1
VLAN=yes
BRIDGE=br-bond0 <=== 新增
br-bond0
就是網橋名,現在還沒有這個網橋,下一步中配置。
新增
br-bond0
配置檔案[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-bond0 NAME=br-bond0 BOOTPROTO=static DEVICE=br-bond0 ONBOOT=yes TYPE=Bridge NM_CONTROLLER=no PREFIX=24 IPADDR=172.16.231.27 GATEWAY=172.16.231.1 VLAN=yes
注意,
原來bond0.706上的IP地址放到了這個bridge上
TYPE=Bridge
,區分大小寫!我一開始寫成了TYPE=bridge
,重啟之後死活報錯:
May 17 07:15:01 NFJD-TESTN-COMPUTE-3 network: Bringing up interface br-bond0: ERROR : [/etc/sysconfig/network-scripts/ifup-eth] Device br-bond0 does not seem to be present, delaying initialization. May 17 07:15:01 NFJD-TESTN-COMPUTE-3 /etc/sysconfig/network-scripts/ifup-eth: Device br-bond0 does not seem to be present, delaying initialization. May 17 07:15:01 NFJD-TESTN-COMPUTE-3 network: [FAILED]
檢視
/etc/sysconfig/network-scripts/ifup-eth
指令碼後發現TYPE一定要寫成Bridge。(實際上這個指令碼也是用brctl
等命令操作的)給VM新增網絡卡
[root@NFJD-TESTN-COMPUTE-3 ~]# virsh attach-interface instance-000005ac --type bridge --source br-bond0 Interface attached successfully [root@NFJD-TESTN-COMPUTE-3 ~]# virsh domiflist instance-000005ac Interface Type Source Model MAC <hr /> tape6ffc79e-b4 bridge alubr0 virtio fa:16:3e:83:d7:0b vnet3 bridge br-bond0 rtl8139 52:54:00:69:b5:d2
在VM中配置靜態IP
[root@bigdata04 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens7 BOOTPROTO=static NAME=ens7 DEVICE=ens7 ONBOOT=yes IPADDR=172.16.231.120 PREFIX=25 [root@bigdata04 ~]# ifconfig ens7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.16.231.120 netmask 255.255.255.128 broadcast 172.16.231.127 inet6 fe80::5054:ff:fee2:6be0 prefixlen 64 scopeid 0x20<link> ether 52:54:00:e2:6b:e0 txqueuelen 1000 (Ethernet) RX packets 373 bytes 23929 (23.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 100 bytes 12967 (12.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.10.10.5 netmask 255.255.255.0 broadcast 10.10.10.255 inet6 fe80::f816:3eff:fe83:d70b prefixlen 64 scopeid 0x20<link> ether fa:16:3e:83:d7:0b txqueuelen 1000 (Ethernet) RX packets 9 bytes 976 (976.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 920 (920.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
修改nova-compute啟動配置
物理機重啟時,經常看到nova-compute連不上libvirtd而啟動失敗,所以修改nova-compute啟動配置:[[email protected] ~]# cat /usr/lib/systemd/system/openstack-nova-compute.service [Unit] Description=OpenStack Nova Compute Server After=syslog.target network.target libvirtd.service # 把libvirtd.service加上 #After=syslog.target network.target [Service] Environment=LIBGUESTFS_ATTACH_METHOD=appliance Type=notify NotifyAccess=all TimeoutStartSec=0 Restart=always User=nova ExecStart=/usr/bin/nova-compute [Install] WantedBy=multi-user.target
注意:
物理機重啟時,nova會從資料庫讀取配置並重新生成VM的libvirt.xml檔案,所以新增網絡卡會消失,需要再次執行virsh attach-interface
命令。如果是用virsh啟動的虛機,可以用virsh dumpxml instance-000005ac > /etc/libvirt/qemu/instance-000005ac.xml
儲存新增加的網絡卡配置。
配置二
用virsh
、brctl
配置(另一個計算節點)
和配置一中的第一步一樣,去掉
bond0.706
上配置的IP ,但不增加BRIDGE
屬性。建立
nic.xml
[[email protected] ~]# cat nic.xml <network> <name>virsh-net-0</name> <bridge name="br-bond0"/> <forward mode="route" dev="bond0"/> <model type='virtio'/> <ip address="172.16.171.2" netmask="255.255.255.0"> </ip> </network>
建立一個Linux bridge名叫
br-bond0
,給橋配置上IP地址。
<forward mode="route" dev="bond0"/>
這個沒太懂,可以看libvirt官方解釋1、官方解釋2:forward - This element is optional. When not defined, the virtual network will work in isolated mode. However, inclusion of this element indicates that the virtual network is to be connected to the physical network. The element can have two attributes, ‘mode’ and ‘dev‘. The first one specifies the mode in which will the virtual bridge operates. Allowed values are ‘nat’ and ‘route‘. The second attribute is used whenever one wants to restrict forwarding to the named device only. If no attributes are set, NAT forwarding will be used for connectivity. Firewall rules will allow forwarding to any other network device.
簡單來說,如果沒有
forward
引數,則這個net是isolated
network。如果要配,則有兩種模式:1) nat:虛機IP外部不可見:出去時做IP轉換;2) route:虛機IP外部可見建立libvirt net
[root@NFJD-PSC-IBMN-SV502 ~]# virsh net-define nic.xml Network virsh-net-0 defined from nic.xml [root@NFJD-PSC-IBMN-SV502 ~]# virsh net-list --all Name State Autostart Persistent <hr /> default active yes yes virsh-net-0 inactive no yes
啟動這個net,並設定為自啟動
[[email protected] ~]# virsh net-start virsh-net-0 Network virsh-net-0 started [[email protected] ~]# virsh net-autostart virsh-net-0 Network virsh-net-0 marked as autostarted
autostart
表示libvirtd重啟時,會自動start這個net[[email protected] ~]# virsh net-info virsh-net-0 Name: virsh-net-0 UUID: 19442a5d-45fd-4fe7-bded-caced3a137c1 Active: yes Persistent: yes Autostart: yes Bridge: br-bond0 [[email protected] ~]# virsh net-dumpxml virsh-net-0 <network> <name>virsh-net-0</name> <uuid>19442a5d-45fd-4fe7-bded-caced3a137c1</uuid> <forward dev='bond0' mode='route'> <interface dev='bond0'/> </forward> <bridge name='br-bond0' stp='on' delay='0'/> <mac address='52:54:00:e9:7e:39'/> <ip address='172.16.171.2' netmask='255.255.255.0'> </ip> </network>
此時可以看到bridge
br-bond0
[root@NFJD-PSC-IBMN-SV502 ~]# brctl show bridge name bridge id STP enabled interfaces br-bond0 8000.525400e97e39 yes br-bond0-nic virbr0 8000.5254003ea676 yes virbr0-nic
把
bond0
加到br-bond0
上[root@NFJD-PSC-IBMN-SV502 ~]# brctl addif br-bond0 bond0 [root@NFJD-PSC-IBMN-SV502 ~]# brctl show bridge name bridge id STP enabled interfaces br-bond0 8000.525400e97e39 yes bond0 <=== 多了bond0 br-bond0-nic virbr0 8000.5254003ea676 yes virbr0-nic
給VM新增網絡卡
[[email protected]-PSC-IBMN-SV502 ~]# virsh attach-interface instance-000a039d --type bridge --source br-bond0 Interface attached successfully [[email protected]-PSC-IBMN-SV502 ~]# virsh domiflist instance-000a039d Interface Type Source Model MAC <hr /> tap6d788a74-ea bridge alubr0 virtio fa:16:3e:ea:02:2c vnet0 bridge br-bond0 rtl8139 52:54:00:22:33:c7
設定/etc/rc.local
[[email protected] ~]# tail /etc/rc.local touch /var/lock/subsys/local #Added by eldon sleep 3 #ifconfig bond0 down #virsh net-start virsh-net-0 #ifconfig bond0 up brctl addif br-bond0 bond0 route add -net 0.0.0.0 gateway 172.16.171.254
如果不sleep 3:
May 17 21:49:38 NFJD-PSC-IBMN-SV502 rc.local: bridge br-bond0 does not exist!
還曾嘗試不使用
brctl addif br-bond0 bond0
,直接建立ifcfg-br-bond0
,但是在物理機啟動時/var/log/messages顯示virsh net-start virsh-net-0
時br-bond0
已經存在了。
後續
相關推薦
給nova虛機新增網絡卡
場景 虛機只有一張網絡卡能通業務網,但是需要有另一張網絡卡能通管理網。 以下手動給虛機新增一張網絡卡。 VM有nic-1通過br-int連線到物理網絡卡eth0上,需要增加nic-2通過br-bond0連線到物理interface bond0.706上
VM linux虛擬機器新增網絡卡修改ip 並修改mac地址
修改ip 開啟終端 vi /etc/sysconfig/network-script/ifcfg-eth0; 具體是哪個可以到這個目錄地下檢視一下,我的是ifcfg-system-eth0. 開啟檔案後修改裡面的ip地址,IPADRR這一項是填寫ip地址的地方。 然後開啟拎一個檔案檢視我
kvm虛擬機器新增網絡卡
前幾篇文章介紹了有關KVM安裝虛擬機器以及如何給虛擬機器新增硬碟,今天我們再來介紹下有關如何給KVM虛擬機器新增網絡卡。 給KVM虛擬機器新增網絡卡,可以分為兩種形式:圖形介面的和virsh attach-interface命令的。 圖形介面的很簡單,現在已虛擬機器centos2為例:如下圖操作:
Esxi 6.0 -- Esxi 5.0 新增網絡卡驅動
et-e1000e:Obsolete- Driver for Intel I217/I218/82579LM/82574L net-tulip: DECchip 2114
新增網絡卡驅動和USB支援 以及一些問題的集中處理
之前核心移植時沒有新增網絡卡驅動和USB支援,新增如下: 1.乙太網卡驅動安裝: 1.1第一步、修改核心程式碼 [[email protected] ~]$ cd fl2440 [[email protected] fl2440]$ cd kernel
為KVM虛擬機器新增網絡卡,並配置IP
環境:[[email protected] ~]# uname -a Linux room1pc01.tedu.cn 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x8
Python獲取本機所有網絡卡的MAC地址
在拙作《Python可以這樣學》(清華大學出版社,2017.2)第297頁介紹了一種獲取本機網絡卡MAC地址的方法,不過程式碼顯得稍微有點囉嗦,並且只能獲得一塊網絡卡的MAC地址。本文對該內容稍加補充。 1、這樣更簡潔 >>> import uuid
怎樣在oracle virtualbox裡新增網絡卡
我想在oracle virtualbox裡新增一塊兒網絡卡,用於內部網路,和另一臺機器做Heartbeat心跳測試。 怎樣新增呢? 關閉虛擬機器,新增一塊虛擬網絡卡: 啟動虛擬機器後,此時還檢視不到新加的網絡卡: [[email protected] ~]#
VirtualBox下為Ubuntu虛機新增第二塊網絡卡
問題描述 因為做Docker網路實驗,需要將原先Ubuntu虛機的一塊“橋接”網絡卡改為“HostOnly”網絡卡,並且新增另一塊“NAT”網絡卡。幾經周折發現只有第一塊網絡卡可以正確配置,ifconfig里根本看不到有第二塊網絡卡。 查詢問題 於是上
kvm 給虛機增加網卡
配置文件 root scrip valid log con detach light oba [[email protected]/* */ ok]# virsh domiflist c03 Interface Type Source
linux 下給網絡卡新增ipv6、路由
新增IPV6地址 ip -6 addr add <ipv6address>/<prefixlength> dev <interface> ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0 ifconfig &
KVM修改虛機網絡卡模式:由NAT模式改為Bridge模式
1)關閉虛機# virsh shutdown vm1 2)編輯虛機配置檔案# virsh edit vm1 <interface type='default'> 改為<interface type='bridge'> 
通過設定雙網絡卡實現VirtualBox虛機上網及主宿互訪
最近,經過一些研究,終於調通了VirtualBox虛擬機器互連、主宿機互連、以及主宿機連線網際網路。下面分享一下。 1、VirtualBox中的虛擬網絡卡。VirtualBox安裝完成後,會在系統中裝一塊虛擬網絡卡,我們在管理->全域性設定中可以看到。這塊網絡卡是
OpenStack虛機網絡卡的建立過程
OpenStack最基本和常用的操作就是啟動虛機。虛機啟動的過程中涉及很多內容,其中非常重要的一個環節就是建立並繫結虛機的虛擬網絡卡。虛機的建立和管理是Nova的任務,虛機網路的建立和管理是Neutron的任務,而虛機網絡卡,作為連線虛機和虛機網路的橋樑,其建立
centos 7 物理機新增虛擬網絡卡
1. 確認核心是否支援tun/tap確認核心是否有tun模組 [[email protected]_196_26_centos ~]# modinfo tun filename: /lib/modules/3.10.0-327.el7.x86_64/
轉:在fedora 9上給我的TP-Link 620G 網絡卡安裝驅動
作者:林俊桂 出自: http://www.linuxdiyf.com 貪希奇,給電腦裝了個Fedora 9 。由於家裡只需沒有佈網線,只能無線上網,用了個TP-Link的USB無線網絡卡,型號是TL-WN620G ,上網基本找不到Linux體系下的驅動順序。沒要領,只
新增網橋,新增一對虛擬網絡卡
新增網橋 新增網橋,名稱為br0 brctl addbr br0 將網橋關聯到網絡卡ens33 brctl addif br0 ens33 這裡如果你是ssh連線,執行完了你可能就會斷開連線了,所以最好吧這一步和下面幾步連在一起執行這樣就不會斷開了 brctl addif
安裝VMware後,本機網路介面卡中沒有虛擬網絡卡VMnet1、VMnet8
1、開啟本機服務,開啟相關的服務。 2、重置虛擬網路編輯器 1>開啟VMware,點選下圖左上角標註的"編輯",然後選中並進入"虛擬網路編輯器"。 2>還原預設設定 如果 "還原預設設定" 如上圖一
如何新增刪除子網絡卡eth0:1(linux案例)
這種方法實現了單網絡卡多IP,我的系統是centos7的,如何新增刪除子網絡卡IP詳細請看下面操作例子 新增子網絡卡IP:ifconfig ens3:1 192.168.0.100/24 //ens3是網
linux程式設計獲取本機網絡卡資訊
轉自:https://blog.csdn.net/shaderdx/article/details/78403437 ifaddrs結構體定義如下: struct ifaddrs { &