V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aijialefu
V2EX  ›  程序员

付费解决 centos7 vlan 相关问题。

  •  
  •   aijialefu · 2021-07-26 01:10:22 +08:00 · 1625 次点击
    这是一个创建于 998 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境:centos7 经过 1 根网线接交换机 3 口( trunk ),交换机 1 口( vlanid=101 )接路由器,2 口(vlanid=102)接光猫。交换机配置没问题,1 口 2 口做了 access,3 口做了 trunk (已经接 Windows10 机器做过测试,交换机配置没有问题) 需求:centos7 通过 vlan 能获取 1 口路由器连接外网,2 口经过 pppoe 链接外网。最终目的是打算聚合负载均衡这 2 条网络 目前做了很多操作,系统都重装 10 次不止了,没辙了。。。 做过以下测试: macvlan 设置虚拟网卡 enp0s25.101 ,enp0s25.102,然后 enp0s25.101 用 dhclient 获取 ip,enp0s25.102 用 rp-pppoe 包的 pppoe-setup 设置拨号。8021q 正常开启

    结果就是网卡一直启动不起来。 绿色软件:aijialefu,个人折腾 费用不会太高,确实折腾的没脾气。。。

    第 1 条附言  ·  2021-07-26 20:07:52 +08:00
    已解决,11 楼是正确方法。
    16 条回复    2021-07-26 20:07:04 +08:00
    felixcode
        1
    felixcode  
       2021-07-26 02:08:40 +08:00
    pppoe 应该是链路层的协议,没法通过 trunk 口到达 2 口再到光猫。
    最好是路由器上 2 口做拨号,或者电脑上用双网卡。
    felixcode
        2
    felixcode  
       2021-07-26 02:10:41 +08:00
    @felixcode
    ”最好是路由器上 2 口做拨号“
    说错了,交换机 2 口做拨号,或连一个路由器拨号。
    billlee
        3
    billlee  
       2021-07-26 02:43:34 +08:00
    搞错了吧,macvlan 和 vlan 不是一回事。你先试试在只有 enp0s25 的状态下, 手工配置 vlan 和 ip 路由,看看能不能走通

    ip link add link enp0s25 name enp0s25.101 type vlan id 101
    ip addr add enp0s25.101 x.x.x.x/x
    ip route add default via x.x.x.x
    aijialefu
        4
    aijialefu  
    OP
       2021-07-26 07:10:27 +08:00
    @billlee 因为设备就一个网口,所以用 macvlan 相当于虚拟出来 2 张网卡,一张经过交换机接路由通过 dhcp 获取 ip,一张经过交换机接光猫做 pppoe 。交换机 1 、2 口的 vlanid 分别是 101 、102,交换机 3 口 trunk 会识别 1 、2 口 tag,我自己也是乱的... 你上面的意思看懂了,你这也是对的,你不用 macvlan 虚拟出来 2 站网卡,直接用物理网卡带着 tag101 过去也是可行的,我马上试试!---- 之前也用过这个思路搞过,没通...可能是我代码不对
    aijialefu
        5
    aijialefu  
    OP
       2021-07-26 07:12:00 +08:00
    @felixcode 可以的,我 Windows 就用的这套方案,可以完美跑起来。trunk 只是识别带着 tag 标签的 1 、2 号口,相当于做好分流,形成 2 条通路
    aijialefu
        6
    aijialefu  
    OP
       2021-07-26 07:42:31 +08:00
    @billlee ip link add link enp0s25 name enp0s25.101 type vlan id 101
    ip link set enp0s25.101 up
    ip addr add 192.168.8.222/24 dev eth0

    ip route add default via 192.168.8.222
    还是不行,ping 网关 192.168.8.1 不通
    aijialefu
        7
    aijialefu  
    OP
       2021-07-26 07:48:28 +08:00
    开启 8021q 模块,直接用 dhclient 给 enp0s25.101 自动获取 ip 也没成功。
    aijialefu
        8
    aijialefu  
    OP
       2021-07-26 08:09:01 +08:00
    modprobe -a 8021q
    ip link add link enp0s25 name enp0s25.101 type vlan id 101
    ip link set enp0s25.101 up
    ip addr add 192.168.8.222/24 dev enp0s25
    ip route add default via 192.168.8.222
    aijialefu
        9
    aijialefu  
    OP
       2021-07-26 08:09:43 +08:00
    modprobe -a 8021q
    ip link add link enp0s25 name enp0s25.101 type vlan id 101
    ip link set enp0s25.101 up
    ip addr add 192.168.8.222/24 dev enp0s25
    ip route add default via 192.168.8.222

    @billlee
    还是不通
    jingslunt
        10
    jingslunt  
       2021-07-26 09:33:54 +08:00
    overlay 需要结合服务注册发现服务,比如 consul
    ipvlan 需要较新的内核支持
    macvlan 也有四种网络模式
    https://mp.weixin.qq.com/s?__biz=MzI1OTY2MzMxOQ==&mid=2247485246&idx=1&sn=c42a3618c357ebf5f6b7b7ce78ae568f
    defunct9
        11
    defunct9  
       2021-07-26 09:50:38 +08:00   ❤️ 1
    这个想法没毛病,好弄。做法么我建议 CentOS 做桥接,再子接口走 vlan tag, 两个网关,需要做策略路由。类似的东西搞过,似乎没问题的。
    defunct9
        12
    defunct9  
       2021-07-26 09:52:21 +08:00
    @jingslunt 答非所问
    realpg
        13
    realpg  
       2021-07-26 11:55:51 +08:00
    明码标价看看值不值当
    defunct9
        14
    defunct9  
       2021-07-26 15:30:15 +08:00
    已解决。
    defunct9
        15
    defunct9  
       2021-07-26 15:48:30 +08:00
    @realpg 很好奇,开多少你会答应接这一单活?
    aijialefu
        16
    aijialefu  
    OP
       2021-07-26 20:07:04 +08:00
    @defunct9 感谢兄弟定理帮忙,折腾了好些天。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5246 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:42 · PVG 11:42 · LAX 20:42 · JFK 23:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.