1. 在安装vm时指定网络连接方式

1)bridge

virt-install --name vm1 --ram=1024 --vcpus=1 --disk path=/vm-images/vm1,size=2 --cdrom /root/iso/CentOS-6.6-x86_64-minimal.iso --network bridge:br0

2)nat

virt-install --name vm1 --ram=1024 --vcpus=1 --disk path=/vm-images/vm1,size=2 --cdrom /root/iso/CentOS-6.6-x86_64-minimal.iso --network network:default

若没有指定—network参数,默认为bridge方式

2. 在安装vm之后修改网络连接方式

修改vm网络连接方式之前先将vm关机,修改完成之后启动vm即可生效。

1)通过图形界面修改

用virt-manager打开vm的管理页面,如下图所示

nat:选择”Source
device”为Virtual
network 'default': NAT

bridge: 选择”Source
device”为Host
device eth0 (Bridge 'br0')

2)通过命令行修改

virsh edit vm1修改vm1的配置文件(vm的配置文件以xml形式存在,如vm1.xml)

<interface>选项用来指定vm的网络连接方式

nat:

<interface type='network'>

<mac address='52:54:00:eb:d7:7d'/>

<source network='default'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

bridge:

<interface type='bridge'>

<mac address='52:54:00:eb:d7:7d'/>

<source bridge='br0'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>

3. 新增virtual network

1)通过图形界面添加

virt-manager打开vm管理界面,选择Edit->Connection Details,在弹出的localhost Connection Details窗口的Virtual Networks选项卡中显示了当前已经存在virtual network。在host中安装了libvirt之后,会默认创建虚拟网络接口virbr0,它的forwarding方式为nat。

现在我们创建一个虚拟网络nat1,forwarding方式为nat

选择上图左框中的“+”

Forward

Forwad

Forwad

Forwad

Forwad

Finish.

Localhost Connection Details窗口中显示出了新增的nat1网络的信息。

将vm1的虚拟网络接口选为刚刚创建的nat1

将vm1先关机后启动

由下图可以看到,vm1获取到了nat1网络所配地址段中的地址。

2)通过命令行添加

参考:http://wiki.libvirt.org/page/Networking

virsh下的net-xxx命令用来管理虚拟网络

[root@tanghuimin thm]# virsh

Welcome to virsh, the virtualization interactive terminal.

Type: 'help' for help with commands

'quit' to quit

virsh # net-

net-autostart net-define net-dumpxml net-info net-name net-undefine net-uuid

net-create net-destroy net-edit net-list net-start net-update

net-list –all列出当前已经存在的virtual
network

virsh # net-list --all

Name State Autostart Persistent

--------------------------------------------------

default active yes yes

nat1 active yes yes

virtual network的配置文件同样是以xml的形式存在,如nat1.xml

[root@tanghuimin thm]# find / -name "nat1.xml"

/etc/libvirt/qemu/networks/nat1.xml

/etc/libvirt/qemu/networks/autostart/nat1.xml

/var/lib/libvirt/network/nat1.xml

以default网络的配置为模板创建虚拟网络nat2的配置文件

[root@tanghuimin thm]# virsh net-dumpxml default >
/etc/libvirt/qemu/networks/nat2.xml

修改nat2.xml中参数使与已存在的虚拟网络不重合。

<network>

<name>nat2</name>

<uuid>d8d274ff-fe1f-4e88-94f9-222c1ae11c69</uuid>

<forward mode='nat'/>

<bridge name='virbr2' stp='on' delay='0' />

<mac address='52:54:00:25:90:C2'/>

<ip address='192.168.101.1' netmask='255.255.255.0'>

<dhcp>

<range start='192.168.101.2' end='192.168.101.254' />

</dhcp>

</ip>

</network>

net-define从xml文件定义虚拟网络

virsh # net-list --all

Name State Autostart Persistent

--------------------------------------------------

default active yes yes

nat1 active yes yes

virsh # net-define /etc/libvirt/qemu/networks/nat2.xml

Network nat2 defined from /etc/libvirt/qemu/networks/nat2.xml

virsh # net-list --all

Name State Autostart Persistent

--------------------------------------------------

default active yes yes

nat1 active yes yes

nat2 inactive no yes

将nat2设为自启动,并启动nat2

virsh # net-autostart nat2

Network nat2 marked as autostarted

virsh # net-start nat2

Network nat2 started

virsh # net-list --all

Name State Autostart Persistent

--------------------------------------------------

default active yes yes

nat1 active yes yes

nat2 active yes yes

将vm1的虚拟网络接口选为刚刚创建的nat2

virsh edit vm1

......

......

<interface type='network'>

<mac address='52:54:00:eb:d7:7d'/>

<source network='nat2'/>

<address type='pci' domain='0x0000' bus='0x00'
slot='0x03' function='0x0'/>

</interface>

......

......

将vm1先关机后启动

由下图可以看到,vm1获取到了nat2网络所配地址段中的地址。

[root@localhost ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 52:54:00:EB:D7:7D

inet addr:192.168.101.21 Bcast:192.168.101.255
Mask:255.255.255.0

inet6 addr: fe80::5054:ff:feeb:d77d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:12 errors:0 dropped:0 overruns:0 frame:0

TX packets:16 errors:0 dropped:0 overruns:0
carrier:0

collisions:0 txqueuelen:1000

RX bytes:1198 (1.1 KiB) TX bytes:2178 (2.1 KiB)

Interrupt:11 Base address:0x8000

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:65536 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

[root@localhost ~]# ping 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.

64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=5.53 ms

#

--- 192.168.1.1 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 926ms

rtt min/avg/max/mdev = 5.531/5.531/5.531/0.000 ms

kvm初体验之五:vm连接网络的两种方式:bridge和nat的更多相关文章

  1. ADB连接手机的两种方式(usb数据线连接和wifi连接)

    ADB(Android Debug Bridge)安卓测试桥,它是连接电脑开发端和安卓设备的桥梁,这个安卓设备可以是真实的安卓手机或者平板,也可以是虚拟的安卓模拟器,   这里介绍ADB连接手机的两种 ...

  2. VMware虚拟机直连物理网络的两种方式

    VMware虚拟机直连物理网络的两种方式   使用VMware构建虚拟机,通常虚拟机都使用NAT模式.这时,虚拟机有独立的网段.使用NAT模式,虚拟机之间数据都通过虚拟网络传输,不会影响实体机所在的实 ...

  3. 利用adb查看手机设备ip和连接手机的两种方式

    电脑安装adb(查看菜鸟adb教程) [cmd]->输入adb devices (设置了path,否则需要 ./路径/adb devices)如图: 查看ip两种方法(可能有更多,目前我还没看到 ...

  4. 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

    1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...

  5. adb连接手机的两种方式

    adb连接手机进行调试有两种方式,一种使用USB线,一种使用无线WiFi. 第一种  使用USB线连接 1. 在手机上启用USB调试 2. CMD窗口输入adb devices,此时可以看到自己的设备 ...

  6. Java连接Neo4j的两种方式

    1.Neo4j数据库的两种方式 Neo4j可以以两种方式运行: Java应用程序中的嵌入式数据库 通过REST的独立服务器 不管哪一种方式,这个选择不会影响查询和使用数据库的方式. 它是由应用程序的性 ...

  7. C++连接mysql的两种方式(ADO连接和mysql api连接)

    一.ADO连接mysql 1.安装mysql-5.5.20-win32.msi和mysql-connector-odbc-5.3.4-win32.msi(一般两个安装程序要匹配,否则可能连接不上)  ...

  8. 配置Java连接池的两种方式:tomcat方式以及spring方式

    1. tomcat方式:在context.xml配置连接池,然后在web.xml中写配置代码(也能够在server.xml文件里配置连接池).这两种方法的差别是:在tomcat6版本号及以上中cont ...

  9. php7 连接 mysql 的两种方式

    PHP 5 的使用者可以使用 MySQL extension,mysqli 和 PDO_MYSQL .php 7移除了mysql extension,只剩下后面两种选择.这份文档解释了每个API 的术 ...

随机推荐

  1. mycat 分页慢原理解析、mycat跨事务解惑、mycat注解调用存储过程分析

    1结合Mycat日志,分析select * from travelrecord order by id limit100000,100 的运行过程,解释下当limit M,N中的M非常大的情况下.为什 ...

  2. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

    前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...

  3. 自定义序列化技术3 (.net 序列化技术) C++ 调用C# DLL

    打开SerializableAttribute利用里面的函数进行编辑. // sparse.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

  4. Koa2 + Mongoose + Log4js 持久化日志

    代码地址如下:http://www.demodashi.com/demo/12466.html  之前做的项目是采用 Express 框架进行搭建的,其中的日志管理采用了 winston + Post ...

  5. 《C陷阱与缺陷》学习笔记(一)

    前言和导读 "得心应手的工具在初学时的困难程度往往超过那些easy上手的工具."比較认同这句话. 我至今认为自己事实上还是个刚入了门的刚開始学习的人. 第一章 "词法&q ...

  6. Hadoop--设置单一节点集群

    目的 这篇文档描述如何安装和配置一个单一节点的Hadoop,以便你可以快速使用hadoop mapreduce和Hadoop Distributed File System (HDFS)的一些简单操作 ...

  7. php selenium 测试验证码问题

    $this->pause(10000)这段代码用于停止程序执行,可以在这个空隙内输入验证码

  8. Windows 命令集合

    查看端口占用 查看8080端口使用情况: C:\>netstat -aon|findstr "8080" 结果:TCP    0.0.0.0:8080           0 ...

  9. 度度熊有一张网格纸,但是纸上有一些点过的点,每个点都在网格点上,若把网格看成一个坐标轴平行于网格线的坐标系的话,每个点可以用一对整数x,y来表示。度度熊必须沿着网格线画一个正方形,使所有点在正方形的内部或者边界。然后把这个正方形剪下来。问剪掉正方形的最小面积是多少。

    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...

  10. JavaScript系列问题

    JavaScript系列问题:  0.javascript 基础教程[温故而知新一] 1.通过JS变更页面字体的大小 2.图片压缩优化能有效提高网站浏览速度