文档章节

在ubuntu上运行LXC虚拟机

j
 jenningsloy318
发布于 2015/05/15 11:14
字数 628
阅读 183
收藏 2

背景:由于工作测试需要,在不同的主机上测试软件功能,但是又没有单独的虚拟机可以使用,想到可以使用LXC进行轻量级的虚拟化。LXC虚拟机选择在主机上虚拟macvlan网卡供虚拟机使用。主机eth0网络地址时192.168.85.153,主机的网关是192.168.85.1,虚拟机的网络使分两种情况,一种是使用单独的网络,192.168.100.0/24。另外一种是自动获取和主机一样的IP网络。

主机准备:

1 主机打开转发功能,在/etc/sysctl.conf添加net.ipv4.ip_forward = 1。 然后执行sysctl -p

2 主机网卡设置。

  #ip link add link eth0 macvlan0 type macvlan mode bridge

        #ip link set macvlan0 up

Case 1:

此时虚拟机的配置文件如下:

    lxc.network.type = macvlan

    lxc.network.macvlan.mode = bridge

    lxc.network.flags = up

    lxc.network.link = macvlan0

    lxc.network.hwaddr = fe:e9:51:8f:88:08

    lxc.network.ipv4 = 192.168.100.2/24    

    lxc.network.ipv4.gateway = 192.168.85.153

    lxc.rootfs = /home/lxc/centos-test1/rootfs

    lxc.include = /usr/share/lxc/config/centos.common.conf

    lxc.arch = x86_64

    lxc.utsname = centos-test1.synnex.org

     lxc.autodev = 1

    lxc.mount.auto = proc sys cgroup

    在启动虚拟机之前应该修改虚拟机的网卡配置文件,

      # vim rootfs/etc/sysconfig/network-scripts/ifcfg-eth0

        更改为使用静态IP :BOOTPROTO=none

    主机路由设置:

  #route add -net 192.168.100.0/24 dev macvlan0 

    此时虚拟机路由:

        route -n 

        Kernel IP routing table

        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

        0.0.0.0         192.168.85.153  0.0.0.0         UG    0      0        0 eth0

        169.254.0.0     0.0.0.0         255.255.0.0     U     1006   0        0 eth0

        192.168.85.153  0.0.0.0         255.255.255.255 UH    0      0        0 eth0

        192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

此时主机和虚拟机之间是连通的。

Case 2: 

     此时LXC虚拟机的配置文件如下

        lxc.network.type = macvlan

        lxc.network.macvlan.mode = bridge

        lxc.network.flags = up

        lxc.network.link = macvlan0

        lxc.network.hwaddr = fe:e4:24:fc:55:da

        lxc.rootfs = /home/lxc/centos-test2/rootfs

        lxc.include = /usr/share/lxc/config/centos.common.conf

        lxc.arch = x86_64

        lxc.utsname = centos-test2.lmy.org

        lxc.autodev = 1

        lxc.mount.auto = proc sys cgroup

    获取IP:192.168.85.228 

     主机路由设置:

  #route add -host 192.168.85.228 gw 192.168.85.1 

  说明:虽然使用了macvlan0作为虚拟机网卡,但是它的网关也是192.168.85.1,所以在主机上设置主机访问该虚拟机的路由也应该设置为同样的路由

       此时虚拟机路由,

        [root@centos-test2 ~]# route -n 

        Kernel IP routing table

        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

        0.0.0.0         192.168.85.1    0.0.0.0         UG    0      0        0 eth0

        169.254.0.0     0.0.0.0         255.255.0.0     U     1022   0        0 eth0

        192.168.85.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

    可以看出多了一条路由设置,将他删除

        #route del -net 192.168.85.0/24 dev eth0

    此时的虚拟机路由:

        # route -n 

        Kernel IP routing table

        Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

        0.0.0.0         192.168.85.1    0.0.0.0         UG    0      0        0 eth0

        169.254.0.0     0.0.0.0         255.255.0.0     U     1022   0        0 eth0

    此时虚拟机和主机之间网络是互通的,但是虚拟机与外网还未通。

© 著作权归作者所有

共有 人打赏支持
j
粉丝 0
博文 21
码字总数 4605
作品 0
成都
私信 提问
加载中

评论(1)

东虎
写的挺好的!!!!
CentOS 6 使用 LXC

LXC 自kernel 2.6.27 加入linux 内核,依赖Linux 内核的cgroup和namespace功能而实现,非常轻量级,设计用于操作系统内部应用级别的隔离。 不同于vmware,kvm等虚拟化技术,它是一种类似chr...

紫色葡萄
2013/12/22
0
0
Ubuntu中使用Docker/LXC迅速启动一个桌面系统

2013年07月18日 | 标签: cloud, container, docker, lxc | 作者:vpsee Docker 是 dotCloud 最近几个月刚宣布的开源引擎,旨在提供一种应用程序的自动化部署解决方案,简单的说就是,在 Linu...

openthings
2015/08/01
0
0
使用 Docker/LXC 迅速启动一个桌面系统

Docker 是 dotCloud 最近几个月刚宣布的开源引擎,旨在提供一种应用程序的自动化部署解决方案,简单的说就是,在 Linux 系统上迅速创建一个容器(类似虚拟机)并在容器上部署和运行应用程序,...

鉴客
2013/12/15
4.9K
1
测试环境用LXD替换掉了KVM

生命不息,折腾不止。在折腾中成长,在踩坑中进步。 前言 不错,再一次折腾了一把,这次是把测试环境的hadoop集群从KVM中迁移到了LXD容器中。目前运行很稳定,这次就来分享一下这次的体会和一...

Feng_Yu
2016/10/16
324
0
如何理解LXC与Docker之间的主要区别

两者的概述 容器技术独立运行并且从主机系统上封装应用程序工作量。把容器想象成可以安装和运行应用程序的主机操作系统里面的操作系统,从实用目的来讲,它就像一个虚拟机。 LXC项目给不同配...

Caicloud
2016/05/13
14
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
今天
6
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
今天
3
0
Nmap之防火墙/IDS逃逸

选项 解释 -f 报文分段 --mtu 指定偏移大小 -D IP欺骗 -sI 原地址欺骗 --source-port 源端口欺骗 --data-length 指定发包长度 --randomize-hosts 目标主机随机排序 --spoof-mac Mac地址欺骗 ...

Frost729
今天
2
0
带你搭一个SpringBoot+SpringData JPA的环境

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。 其实我在学完SpringBoot和SpringData JPA了之...

java菜分享
今天
7
0
Chocolatey 在Window搭建一个开发环境

在看了(利用 Chocolatey 快速在 Windows 下搭建一个开发环境)后,准备从零开始 一、准备工作 1、用管理员权限启动:powershell,执行错误请参考(PowerShell因为在此系统中禁止执行脚本的解...

近在咫尺远在天涯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部