【问题标题】:Can I use pppoe in docker container?我可以在 docker 容器中使用 pppoe 吗?
【发布时间】:2019-07-15 12:28:10
【问题描述】:

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

所以,我想用docker来虚拟化多个centos mehine,在里面做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 分配?

【问题讨论】:

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


    【解决方案1】:

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

    --privileged --cap-add=NET_ADMIN
    

    【讨论】:

      【解决方案2】:

      我昨天刚刚解决了这个问题,创建了 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-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-06
        • 2014-11-11
        • 2020-10-26
        • 1970-01-01
        • 2018-03-28
        相关资源
        最近更新 更多