zoukankan      html  css  js  c++  java
  • lxc on centos

    终于把lxc的网络配通了,也不知道对不对,记一下

    一开始都是雷同的地方

    yum install libcgroup lxc lxc-templates

    安装lxc cgroup

    然后记得

    chkconfig --level 345 libcgroup on把cgroup始终启动

    添加一个桥

    ifcfg-eth0改成如下

    DEVICE="eth0"
    ONBOOT="yes"
    TYPE=Ethernet
    IPV6INIT=no
    USERCTL=no
    BRIDGE=virbr0
    新建一个ifcfg-virbr0,如下内容

    DEVICE=virbr0
    TYPE=Bridge
    BOOTPROTO=static
    DNS1=192.168.8.254
    GATEWAY=192.168.8.254
    IPADDR=192.168.8.50
    NETMASK=255.255.255.0
    ONBOOT=yes
    重启一下桥就产生了

    然后

    lxc-create -n testcentos -t centos

    创建一个以centos为模板的容器

    然后

    vi /var/lib/lxc/testcentos/config

    lxc.network.type = veth
    lxc.network.flags = up
    lxc.network.link = virbr0
    lxc.network.hwaddr = fe:7c:d6:5a:ed:10
    lxc.network.ipv4 = 192.168.8.55/24
    lxc.network.ipv4.gateway = 192.168.8.50
    lxc.network.name = eth0
    lxc.rootfs = /var/lib/lxc/testcentos/rootfs

    装完了以后

    cat /var/lib/lxc/testcentos/tmp_root_pass

    看一下root密码

    然后

    lxc-start -n testcentos -d

    启动容器,并且

    lxc-console -n testcentos

    登陆容器

    登录完了以后问题来了,网络呢?这里搞了好久

    sysctl net.ipv4.ip_forward=1

    打开转发

    然后 iptables设一条规则

    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.8.55 -j MASQUERADE

    这条规则有问题,一开始设的有点问题,后来改成

    iptables -t nat -A POSTROUTING -o virbr0 -s 192.168.8.55 -j MASQUERADE

    就没问题了,好奇怪。不懂为什么。但这里也只是保证了能访问实验室外部网络,实验室内部网络还是不通

    最后在容器里ping实验室内部地址,再在virbr0上dump icmp包

    tcpdump -n -i  virbr0 icmp

    发现压根没有包通过,然后发现容器里的路由有问题

    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.8.0    *               255.255.255.0 UH    0      0        0 eth0
    link-local      *               255.255.0.0     U     1002   0        0 eth0
    default         192.168.8.50    0.0.0.0         UG    0      0        0 eth0
    也就是说所有192.168.8.0网段的ip都不需要转发直接能被访问到。这个不对,最后在

    vi /var/lib/lxc/testcentos/config

    里把容器的ip改为lxc.network.ipv4 = 192.168.8.55/32

    并且在容器内部的/etc/sysconfig/network-scripts/ifcfg-eth0里改掉netmask

    最后都能访问了。

    几点疑问,为什么我在所有文档上都没看到类似的做法,大家都是直接重定向到eth0完事呢?

    另外容器内部的ip设置也和别人不一样。可能别人都是再加一个子网?

    无论怎么样,这个容器算是能用了,有鉴于他的出色计算性能

  • 相关阅读:
    ZigBee学习二 LED点对点通信
    ZigBee学习一 任务处理函数_ProcessEvent
    关于count(分组字段)的问题
    hive命令行 显示字段名配置
    Linux 查看当前目录下的文件大小
    apache 端口号与 CDH端口号对比
    dbeaver驱动问题解决方案
    【数学】递推算法之平面分割问题总结
    【HDOJ】(1426)Sudoku Killer (dfs)
    【牛客】牛客小白月赛1(数学)
  • 原文地址:https://www.cnblogs.com/sickboy/p/4211267.html
Copyright © 2011-2022 走看看