kvm初体验之五:vm连接网络的两种方式:bridge和nat

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命令用来管理虚拟网络


[[email protected] 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


[[email protected] 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的配置文件


[[email protected] 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网络所配地址段中的地址。


[[email protected] ~]# 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)

[[email protected] ~]# 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

时间: 2024-08-02 05:32:00

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

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

ADB(Android Debug Bridge)安卓测试桥,它是连接电脑开发端和安卓设备的桥梁,这个安卓设备可以是真实的安卓手机或者平板,也可以是虚拟的安卓模拟器, 这里介绍ADB连接手机的两种方式, 先说USB数据线连接方式, 分三步, 第一步:把安卓设备用Usb数据线连接到电脑上(注意手机上要在设置里"开发模式"打开"USB调试功能") 第二步:要安装ADB驱动程序,有了这个驱动,ADB才能驱动手机,下载地址通用型ADB驱动, 下载后自动安装就行. 第三步:当

网络协议 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次. >强烈依赖数据库的驱动jar 解决办法: Class.forName("com.mysql.jdbc.Driver"); 1.1.2 API详解:java.sql.Statement接口: 操作sql语句,并返回相应结果 String sql = "某SQL语句&qu

Java连接Neo4j的两种方式

1.Neo4j数据库的两种方式 Neo4j可以以两种方式运行: Java应用程序中的嵌入式数据库 通过REST的独立服务器 不管哪一种方式,这个选择不会影响查询和使用数据库的方式. 它是由应用程序的性质(无论是独立服务器还是客户端服务器),性能,监视和数据安全性驱动的架构选择. 1.1Neo4j Server(服务器式数据库) Neo4j Server是互操作性,安全性和监控的最佳选择. 实际上,REST接口允许所有现代平台和编程语言与它进行互操作. 此外,作为独立应用程序,它比嵌入式配置更安全

adb连接手机的两种方式

ADB有两种连接手机的方式,在测试过程中,各有优缺点. 使用USB连接手机 优点:插上就可以连接,延迟低. 缺点:需要借助USB线来连接,做兼容的自动化测试的时候比较麻烦 在手机上打开开发者模式,启用USB调试. USB线连接手机和电脑 在CMD窗口输入adb devices(手机上会有一个提示:是否允许此电脑进行调试,确认) C:\Users\wy.DESKTOP-KENPKKP> adb devices List of devices attached emulator-5554 devic

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

1. tomcat方式:在context.xml配置连接池,然后在web.xml中写配置代码(也可以在server.xml文件中配置连接池),这两种方法的区别是:在tomcat6版本及以上中context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中.因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载.然而context.xml文件则不然,tomcat服务器会定时去扫描这个文件,一旦发现文件被修改

移动端针对图片过多时,为了提高用户体验性,常采用的两种方式

<1>由于在手机上网络请求太多会造成阻塞,特别是ios设备,然后针对图片的话: 针对图片 一个是做懒加载   提供插件(jquer.lazyload.min.js) 一个是压缩图片尺寸 <2>在说说预加载图片是提高用户体验的一个很好方法,图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享三个不同的预加载技术,来增

sql server anaylsis service 连接字符串的两种方式

本地连接: string strConnect = "Provider=MSOLAP; Data Source=localhost;Initial Catalog=Analysis Services Tutorial;Integrated Security=SSPI;"; 网络连接方式: string strConnect = "Provider=MSOLAP;Initial Catalog=Analysis Services Tutorial;Data Source=htt

spring创建连接池的几种方式

spring使用连接池有很多种方式,jdbc(不使用连接池),c3p0,dbcp,jndi,下面将分别贴代码介绍这几种:  1.jdbc方式 使用的是DriverManagerDataSource,DriverManagerDataSource建立连接是只要有连接就新建一个connection,  根本没有连接池的作用 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManag

JDBC 创建连接对象的三种方式

创建连接对象的三种方式 //第一种方式 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb?user=root&password=root") ; //第二种方式 //读取properties文件 Properties pro = new Properties() ; InputStream in = JdbcDemo3.class.getClassLoader().ge