1

我有很多 pppoe 帐户,想用它们建立一个小型蜘蛛网络。

所以,我想用docker来虚拟化多个centos mehine并在里面做pppoe拨号。

我的methine有两个适配器,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 分配?

4

2 回答 2

2

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

--privileged --cap-add=NET_ADMIN
于 2018-02-01T10:49:41.193 回答
0

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

主要问题是 pppoe 模块没有在主机端加载,所以在容器(OpenWRT)端你会看到类似“/dev/ppp 不存在,由 mknod /dev/ppp ... 创建它”之类的错误消息。按照说明创建 /dev/ppp 后,问题将得到解决,但只是暂时的。重新启动系统后,您必须再次创建 /dev/ppp。

要彻底解决这个问题,只需在开机时@主机端加载pppoe模块,

echo pppoe >> /etc/modules

然后 /dev/ppp 将自动创建 @container(OpenWRT) 端。

在以下环境中测试:

  • 硬件:Phicomm N1
  • 主机操作系统:armbian_5.60_aml-s9xxx_debian_stretch_default_4.18.7
  • 容器:openwrt-18.06.2-armvirt-64-default-rootfs.tar.gz
于 2019-07-15T03:59:41.417 回答