我可以在docker容器中使用pppoe吗?

时间:2018-01-25 11:22:30

标签: docker iptables docker-networking pppoe docker-network

我有很多pppoe帐户,并想与他们建立一个小蜘蛛网络。

所以,我想使用docker虚拟化多个centos methine并在其中进行pppoe拨号。

我的次甲基有两个适配器,em1用于pppoe拨号,em2有一个静态IP地址。当我运行带有桥接器的容器时,它使用em2并可以访问Internet。

我试过macvlan:

docker network create -d macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.1 -o parent=em1 -o macvlan_mode=bridge pppoe

和主持人模式:

docker run --net=host --cap-add=NET_ADMIN -it --rm pppoe

似乎没什么用......

如何在容器中拨号并使用em1进行分配?

2 个答案:

答案 0 :(得分:1)

pppoe由于无法访问/ dev / ppp设备而失败,您可以使用以下方法解决此问题:

--privileged --cap-add=NET_ADMIN

答案 1 :(得分:0)

昨天我刚刚解决了这个问题,创建了OpenWRT 18.06.2作为容器,将我的homelan用作主要路由器,并使用macvlan创建了WAN网络。

主要问题是pppoe模块未在主机端加载,因此在container(OpenWRT)端,您将看到错误消息,例如“ / dev / ppp不存在,请通过mknod / dev / ppp创建它... ”。按照说明创建/ dev / ppp后,该问题将得到解决,但是暂时的。重新启动系统后,必须再次创建/ dev / ppp。

要完全解决此问题,只需在启动时在主机端加载pppoe模块

echo pppoe >> /etc/modules

然后/ dev / ppp将在容器(OpenWRT)端自动创建。

在以下环境中测试:

  • 硬件:Phicomm N1
  • 主机操作系统:armbian_5.60_aml-s9xxx_debian_stretch_default_4.18.7
  • 容器:openwrt-18.06.2-armvirt-64-default-rootfs.tar.gz