终于把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设置也和别人不一样。可能别人都是再加一个子网?

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

最新文章

  1. 《转载》跟我学spring3
  2. PHP与最丑的后台管理系统
  3. IE11的CSS兼容性问题
  4. HashSet内存泄露
  5. 基于 Apache Mahout 构建社会化推荐引擎
  6. Python之向日志输出中添加上下文信息
  7. solr学习笔记section2-solr单机(节点)简单的core操作
  8. android测试用例编写
  9. jira7.3.6的安装步骤
  10. chrome开发者工具实现整站截屏
  11. loj#3 -Copycat
  12. Idea中重建maven模块,dependencies引入为空的解决办法
  13. pymysql 读取数据库没有字段
  14. Azure KeyVault设置策略和自动化添加secrets键值对
  15. jquery键盘事件
  16. Myeclipse打war包方法
  17. python基础学习2-easygui框架编程
  18. Winform快速导出
  19. PHP报错open_basedir restriction in effect
  20. OC中NSClassFromString()与NSStringFromClass()的用法及应用场景

热门文章

  1. JavaBean的toString方法工具类
  2. display:table-cell介绍
  3. MongoDB 知识要点一览
  4. CSS布局(一)
  5. python smtplib发送邮件遇到的认证问题
  6. JAVA第4次作业
  7. php的cookie和session相同主域名共享
  8. photo shop替换颜色(自己指定的颜色)
  9. CString 字符串截取_函数
  10. fuse进级