当前位置:首页 » 币种行情 » kvm配置eth0

kvm配置eth0

发布时间: 2023-06-02 19:45:23

A. 2、kvm网络篇---网络配置Bridge方式、NAT方式

NAT方式和Bridge方式。

Bridge方式的配置原理和步骤。

Bridge方式适用于服务器主机的虚拟化。

NAT方式适用于桌面主机的虚拟化。

选择:当需要外界能定位(找)到虚机时使用Bridge方式、当不需要外界定位到虚机时使用NET方式。

安装完kvm后默认网卡的工作方式为NET

适用范围:服务器主机虚拟化

原理:即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。

好处:可以使虚拟机成为网络中具有独立IP的主机。

上图,网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。

下图,对应计算机上真实的route表。其中br0为桥接网卡。

网桥方式配置步骤:

一、命令模式

1、编辑修改网络设备脚本文件,增加网桥设备br0

vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=static

IPADDR=192.168.12.118

GATEWAY=192.168.12.1

DNS1=180.76.76.76

DNS2=114.114.114.114

DEFROUTE=yes

备注:如不需要静态地址,可以使用如下配置

DEVICE="br0"

ONBOOT="yes"

TYPE="Bridge"

BOOTPROTO=dhcp

2、编辑修改网络设备脚本文件,修改网卡设备eth0

DEVICE="eth0"

NM_CONTROLLED="no"

ONBOOT="yes"

TYPE=Ethernet

BOOTPROTO=none

BRIDGE="br0"

NAME="System eth0"

HWADDR=44:37:E6:4A:62:AD

备注:NM_CONTROLLED这个属性值,根据 RedHat 公司的文档是必须设置为“no”的(这个值为“yes”表示可以由服务NetworkManager来管理。NetworkManager服务不支持桥接,所以要设置为“no”。),但实际上发现设置为“yes”没有问题。通讯正常。

3、重启网络服务

#service network restart

4、校验桥接接口

#brctl show

适用范围:不需要外网访问虚拟机情况、桌面主机虚拟化。

原理:NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。

好处:无法从网络上定位和访问虚拟主

上图可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界。

下图,对应计算机上真实的route表。其中virbr0为虚拟网卡。

Bridge方式的影响

Bridge方式配置出来的接口对NAT方式没有影响,因为NAT方式并没有使用物理网卡。

但作为客户机,只能选择其中的一种。

实践经验:

当将虚拟机网卡方式更改为Briage后需要注意几点

1、关闭宿主机与虚机的NetworkManager服务并设置开机不自启。不然将会影响两者的网络功能,甚至出现虚机无法启动的情况。

2、虚机网卡已设置为启动开启,但实际情况为开机后宿主机网卡启动了,而虚拟机网卡不能启动,即使手动启动也将失败。这种情况为网卡的启动顺序造成,因为Briage桥接方式虚拟网卡需要在宿主机网卡启动之前启动。而在开机时Network服务启动顺序高于libvirtd服务,所以才会有该现象。解决方式有两个:1、更改服务启动顺序并重启。 2、停止br0网卡,启动虚拟网卡后再启动br0网卡。

3、配置正常并关闭冲突服务后依然无法使用Briage正常上网。此时可以从route表信息开始排查,一般第一次启动Briage方式之后默认的路由表会遭到更改,使得无法连接外网,而内网正常的情况。

1、http://www.linuxidc.com/Linux/2012-05/61445p2.htm

2、 http://blog.csdn.net/hzhsan/article/details/44098537/

B. kvm在ubuntu下怎么不能用

默认情况下,KVM是没有安装的,在安装之前,需要先检查一下,CPU是否支持VT技术

1. 切换到root模式
默认情况下,ubuntu的root帐号是没有启用的,要启用,需要做一些设置,为了安装方便,就启用root吧
sudo passwd root
输完密码后,su root进入高权限模式

2. 检查CPU信息
egrep '(vmx|svm)' --color=always /proc/cpuinfo
flags
: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dts
tpr_shadow vnmi flexpriority
flags
: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64
monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dts
tpr_shadow vnmi flexpriority
如果出现这个,就表示支持VT技术 www.linuxidc.com
还可以用这个命令
egrep -c '(vmx|svm)' --color=always /proc/cpuinfo
如果为0,表示符合的个数为0,那么肯定不支持了,如果大于0,那么可能有一个或两个符合结果,就支持vmx或svm

3. 安装kvm所需软件,ubuntu这个很方便
apt-get ubuntu-virt-server python-vm-builder kvm-pxe

4. 将用户加入到kvm管理组里面
adser “id -un” libvirtd
adser “id -un“ kvm
如果id -un无法加入,那么使用用户名替换

5. 检测安装是否成功
运行virsh -c qemu:///system list
如果出现
root@server1:~# virsh -c qemu:///system list
Id Name State
----------------------------------
6. KVM的桥接
默认情况下,启动kvm后,自带NAT模式,生成一个网卡virbr0,网段是192.168.122.0的,这个虽然可以联网,但是网络功能受限,毕竟,一些服务需要端口都要开,NAT模式不能满足需求,那么就需要使用桥接模式,使用这个模式需要单独下载安装桥接软件
apt-get install bridge-utils

7. 桥接配置
安装完成后,还需要配置一下桥接接口,在ubuntu下,桥接接口被定义为br0,需要手动配置一下,这个地方弄错了,配置的时候出现问题,导致无法上网,所以需要小心配置。这个无非就是配置ubuntu的网络设置,跟RHEL
里面的system-config-network是一样的。在ubuntu中,使用vim打开网络配置文件
/etc/network/interfaces
记得提前安装vim,ubuntu的vi难用至极
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
bridge_ports eth0
这个配置文件定义了3个网卡设备,lo跟eth0不用说了,关键是br0,配置跟eth差不多,关键是bridge_ports eth0
指定要桥接到哪一块网卡,这个需要明确定义
说一下配置文件interfaces,跟RHEL还真不太一样
开机自动启动网卡
auto 网卡接口
获取IP的方式,dhcp或静态
iface eth0 inet dhcp(static)
如果是静态的话,还需要设置ip与网关

address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
跟RHEL还真不太一样啊。
ok了,保存之后就开始下一步了

8. 启动网络服务
有两种方法
/etc/init.d/networking restart
或者
ifup br0
9. 查看配置结果
ifconfig
可以看到br0已经启动了
br0 Link encap:以太网 硬件地址 00:22:15:ca:59:2e
inet 地址:192.168.1.102 广播:192.168.1.255 掩码:255.255.255.0
inet6 地址: fe80::222:15ff:feca:592e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:10 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:47 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:1920 (1.9 KB) 发送字节:10157 (10.1 KB)
10. 现在可以启动KVM管理器,通过图形界面安装虚拟机了
11. 其实还有命令行安装,这个比较cool,还没开始看,等下一篇。
12. 期望有snapshot功能,这个功能可方便了,特别是做实验的时候,相当方便,不知道kvm有这个功能不

C. 如何给ubuntu kvm配置桥接

首先:要停止网络服务


sudo /etc/init.d/networking stop


其次:修改网络配置文件


sudo gedit /etc/network/interfaces


如果想手动设置ip等请将以下代码复制到编辑的文件中,注意:IP等设置自己按照需要修改。


auto lo

iface lo inet loopback

auto eth0

iface eth0 inet manual

auto br0

iface br0 inet static

address 192.168.200.130

network 192.168.200.0

netmask 255.255.255.0

broadcast 192.168.200.255

gateway 192.168.200.1

dns-nameservers 8.8.8.8

bridge_ports eth0

bridge_stp off

bridge_fd 0

bridge_maxwait 0


如果想自动从DHCP获取,请将一下代码复制到编辑的文件中。


auto lo

iface lo inet loopback

auto eth0

iface eth0 inet manual

auto br0

iface br0 inet dhcp

bridge_ports eth0

bridge_stp off

bridge_fd 0


最后:重新启动网络服务便可


sudo /etc/init.d/networking restart


网卡的配置完成了,还要对虚拟机进行一下设置.


打开虚拟机控制器:


sudo virt-manager


将虚拟机的网络属性更改为:br0


有图为例:




通过以上步骤的设置KVM的桥接问题解决了,但是还是有问题的, 无线网卡桥接是不成功的,默认的是有线网卡!


使用过程中如果有问题欢迎交流!


D. centos7创建kvm虚拟机有几种方法

步骤
一、准备环境:
1、检查是否支持虚拟化
Centos6.2_x864
KVM 需要有 CPU 的支持(Intel vmx 或 AMD svm),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo有显示, 有显示则说明处理器具有VT功能
2、检查BIOSS是否开启虚拟化
二、安装KVM相关软件
1、复制即可(首先确认yum配置是否正常)
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt libvirt-python python-virtinst
2、检查kvm模块是否安装
[root@localhost ~]# lsmod |grep kvm
kvm_intel 55496 32
kvm 337772 1 kvm_intel
三、启动服务并开机启动
/etc/init.d/libvirtd
chkconfig libvirtd on

#以上就是KVM的安装,很简单。但是我们需要通过桌面去安装系统和偶尔的配置。所以需要在Server端安装桌面:Gnome

四、安装gonme桌面 并配置VNC桌面连接到 virtual-server服务器上
1、安装virtual-server 桌面
yum -y groupinstall "Gnome" "Desktop"
如果不安装桌面在使用svn登录服务器的时候会报错:

2、安装VNC-server端软件
yum -y install vnc *vnc-server*
3、修改VNCServer主配置文件
vim /etc/sysconfig/vncservers
跳至最后并去掉倒数第二行注释符,然后修改为
VNCSERVERS="1:root"
4、使用vncpasswd设置VNC登录密码
如下:输入两次密码即可
[root@localhost ~]# vncpasswd
Password:
Verify:
[root@localhost ~]#
设置完密码会在root宿主目录下生成.vnc开头的隐藏目录,该目录下面的文件就是root用户的VNC桌面配置文件。打开xstartup配置桌面
#vim /root/.vnc/xstartup
将最后一行改为
gnome & #这将启用gnome桌面
6、启动vncserver服务并设置为开机启动
/etc/init.d/vncserver start
chkconfig vncserver on
7、通过VNC客户端连接virtual-server
下载一个小的VNC客户端,如下图:

输入IP和端口,这个端口是在当时设置VNC-server时设置的!
结果如下:

五、配置桥接
这样安装完了之后就可以使用了,但是虚拟机不能和外面通信,只能和virtual-server内的虚拟机通信。
如果需要和外面的服务器通信需要配置桥接很简单。
临时:设置桥接网卡:KVM#设置br0与eth0桥接brctl addif br0 eth0#清空eth0IP地址ifconfig eth0 0.0.0.0#设置br0地址ifconfig br0 192.168.7.241 255.255.252.0 up
永久:
永久设置DEVICE=br0ONBOOT=yesBOOTPROTO=staticTYPE=BridgeIPADDR=192.168.9.47NETMASK=255.255.248.0GATEWAY=192.168.8.1DEVICE=eth0ONBOOT=yesBOOTPROTO=staticTYPE=EthernetBRIDGE=br0
IPV6INIT=no
注:
在桥接网卡里设置是需要注意:TYPE=Bridge
在屋里网卡要指定桥接的网卡名:BRIDGE=br0

E. KVM虚拟机桥接网卡变更导致网络不通解决方案

        物理机有两块网卡,eth0,eth1,开始创建网桥br0与eth0桥接,然后为虚拟机设置桥接方式联网。后期由于业务需要,将br0调整为与eth1,导致所有虚拟机均不能上网。虚拟机重启网卡,重启系统都不能。通过virt-manger查看显示,虚拟机网卡已经是桥接的eth1了。于是只好将虚拟机网卡删除,然后重新配置虚拟机网卡,就可以正常上网了。kvm虚拟机桥接网卡支持热插拔。

F. KVM实例总结

{% note success %} poetry

<center style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;">往事越千年,魏武挥鞭,东临碣石有遗篇。萧瑟秋风今又是,换了人间。 {% endnote %}</center>

kvm创建虚拟机的根本在于这样一条命令, virsh define vm-template.xml ,这条命令的核心就是创建一个虚拟机,之后或者之前的内容都是围绕着这条命令和这个虚拟机的。

所以,virsh define vm-template.xml 其本质是在安全可靠的前提下,将母机的资源通过kvm虚拟化的形式分配给子机。

所以主要考虑方向有两个

1、保障母机和子机的安全可靠,包括系统安全和网络安全

2、进行资源分配,包括网络资源、存储资源、计算资源等

该脚本考虑了母机分配资源不会超过母机承受范围的资源安全,其他系统层面和网络层面的安全问题还需考虑

完成过程

[0]
刚开始考虑当母机资源超过一定比例则程序退出,比如磁盘使用超过2/3,后来觉得这样不够灵活,改用百分比,默认50%
在设置百分比的时候有几点小问题
1、浮点数运算保留小数
使用scale可以准确保留小数,echo "scale=2;62/3" | bc 结果 20.66
使用printf可以保留小数位,补零填充 printf %.2f 结果20.00
2、浮点数运算不保留小数
echo "123.123"|sed "s/.. //g"
代表0到多个,所以第一个命令中.
只能替换掉小数点变成空
..代表了小数点之后的1到多个
3、除法
echo "2 / 3" | bc 这个结果会显示为0
echo "scale=2 ;2 / 3" | bc 这个结果会显示为.66
printf "%.2f" echo "scale=2;2/3" | bc 这个结果会显示为0.66

[1]
刚开始的时候选择将subvm_configuration.sh这个脚本cat进内存,然后用expect登录到子机的时候echo到文件,然后执行。后来发现expect输出的时候会把subvm_configuration.sh脚本里的内容先执行一遍,而且还存在其他一些问题,比如说echo到文件的时候残缺不全、不换行、文件为空等。
后来采用磁盘共享的方式,在宿主机上创建一块磁盘,然后挂载到/tmp/share/这个目录,再将subvm_configuration.sh脚本和ipinfo配置文件复制到该目录,之后在子机的XML文件中添加一块disk(vdc),登录进子机后,挂载vdc,此时就可以看到母机上/tmp/share/下的内容了。直接执行脚本即可。
磁盘共享也有一个缺点,就是文件内容不能实时刷新,比如在母机上改了ipinfo,只有子机重启后,子机上的ipinfo才可以刷新,鉴于/tmp/share/这个目录每个子机一生只有一次用到,所以这个问题暂时不需要解决。

[2]
创建子机
1、if ( vlanid != 0 && xenbrx not in brctl show ) 会报错网卡未找到导致虚拟机启动失败
2、vm-template模板不正确,包括<emulator>/usr/local/bin/qemu-system-x86_64</emulator>路径不正确,会导致虚拟机无法启动
3、disk的slot卡槽相同会导致虚拟机无法启动
4、需要注意的是,virsh define vm-template 这条命令的执行路径是/usr/local/etc/libvirt/qemu/vm-template,最后会在/usr/local/etc/libvirt/qemu/下生成vm$ipfmt.xml的配置文件。

[3]
expect会有很多问题
1、命令不按顺序执行
2、传入的变量为空,且传入的变量下标是从0开始的;shell传入变量下标从1开始,0代表自身文件
3、set timeout $time 设置的时间不一定准确,设置了300秒延时,但未到300s,程序还是退出了,可以考虑直接设置 timeout 为-1
4、expect有多种写法,有expect << EOF ; expect eof ; 最正常的是上面用的
5、expect文件用的解释器是/usr/bin/expect,这里将login.sh使用cat写在了单独的文件中

[4]
1、subvm_configuration.sh配置了两张网卡,格式化vdb数据盘,配置ssh
2、eth0为连接外网的网卡,使用tunnel,eth1为内网网卡,使用vlan

xenbrX为隧道入口,母机收到从xenbr361口收到的报文,就发给另一端隧道,从而实现连接外网
tunnel network ---- host(default router: subhost -> netowrk , throught interface & sh vlan.sh ) ---- subhost

母机收到vlan的报文,就在指定vlan的广播域内进行路由(不一定是母机进行路由)
vlan network ---- host(broadcast router: subhost ---> broadcast/vlanid throught 802.1Q ) ---- subhost

expect合理用法

热点内容
shib币下载 发布:2025-06-28 13:27:32 浏览:542
蜜蜂矿池创始人 发布:2025-06-28 13:23:00 浏览:932
币圈量化交易系统 发布:2025-06-28 12:56:54 浏览:842
2018年比特币怎么卖出 发布:2025-06-28 12:53:33 浏览:304
区块链中国指数etf成分股 发布:2025-06-28 12:52:25 浏览:722
区块链理论图书 发布:2025-06-28 12:37:35 浏览:673
人民币怎样进行比特币交易 发布:2025-06-28 12:19:58 浏览:492
trc20能转账到trx么 发布:2025-06-28 12:19:48 浏览:969
币圈老师带单为何反向带 发布:2025-06-28 12:03:18 浏览:672
002195申请专利数字货币 发布:2025-06-28 11:16:10 浏览:986