V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xh3ccc
V2EX  ›  宽带症候群

请教下大家我在配光猫 vlan 单线复用时遇到的问题(tag/untag/DHCP)

  •  
  •   xh3ccc · 2021-11-11 00:27:13 +08:00 · 4200 次点击
    这是一个创建于 1113 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

    租住房子的网是 symmetric NAT(无法更改),家里新安装的电信宽带发现也是 symmetric NAT 。有台式机远程桌面的需求(相互远程),期望用 zerotier 打洞成功后相互间能直连。

    环境

    • 电信千兆光猫 (1 个千兆 LAN 、3 个百兆 LAN - 其中一个是 IPTV 口) (放在弱电箱),有管理员账号公网 IP
    • 电信送的 IPTV 盒子(放在客厅电视墙处)
    • AC86u 路由器 (放在客厅电视墙处)
    • 水星最便宜的 5 口千兆交换机 (无 vlan 支持)(放在弱电箱)
    • 弱电箱到客厅电视墙埋了2 根网线
    • 台式机 (放在卧室)

    起初的网络配置

    电信师傅过来装好后,起初如下图配置。光猫拨号,LAN1 接交换机,交换机出来一个到卧室的台式机、一个到客厅的路由器。光猫 IPTV 口出来到客厅的 IPTV 盒子。

    图 1

    后面问电信师傅要了猫的管理员账号,登录后发现没有改为 full cone NAT 的选项。经测试:

    • 开启DMZ,转发任意流量到台式机,可以打洞成功,但台式机暴漏在公网,不安全
    • 开启端口映射,映射 rdp 端口,也不安全;而且从家里无法远程租住的房子。

    然后

    AC86u 支持更改 NAT 类型为 full cone ,故考虑由其拨号。故打电话 10000 询问了宽带账号密码,并将光猫改为了桥接。此时还未做任何 vlan 配置

    尝试了下图方法: 图 2

    光猫 lan1 直接接路由器 wan 。路由器 lan1 出来接弱电箱的交换机、lan4 接 iptv 盒子。然后台式机和光猫 IPTV 口接交换机。尝试此接法是想奢望:IPTV 盒子数据不经过路由器 wan ,而是直接经交换机到光猫 IPTV 口。

    没想到居然可以工作 --- 至少开始一段时间。一段时间后,发现网络断掉了,只有 iptv 还可以观看。

    Question1: 这里我好奇为什么开始可以工作,一段时间为何又不行了呢?

    再然后

    配置vlan 单线复用。因为光猫支持配置简单的 vlan ,AC86U 也支持 IPTV vlan 选项。故没打算额外购买 2 个支持 vlan 的交换机。如下配置 (vlan 41 是网络、vlan 43 是 iptv):

    图 3

    光猫 lan1 改为 trunk 口,绑定 vlan 41 和 43 ;路由器配置对应 vlan id 。光猫 iptv 口什么也不接。结果:

    • 可以拨号上网
    • 可以 iptv 观看直播
    • 路由器无法再访问光猫 192.168.1.1

    正常,ac86u 拨号+DHCP 可以获取 2 个 ip ,一个公网 IP 和一个光猫 DHCP 的 192.168.1.x ip 。但这里 DHCP 失败了,ac86u wan 的第 2 个 ip 是 169.254.x.x

    但,偶尔访问 192.168.1.1 居然可以打开一个另一个型号的光猫登录界面, 注意不是我的光猫,不知哪里的。

    Question2: 为什么 DHCP 会失败,为什么有时会打开另一个光猫的登录界面?

    最后

    后面尝试 vlan 这么改后,全好了,DHCP 成功:

    图 4

    如上图,网络 vlan 41 在光猫和路由器这边都不做配置,留空

    Question3: 这就奇怪了,这时 DHCP 为什么又会成功呢?

    推测: 按我理解,配置 vlan 后,路由器 wan 和光猫 lan1 都是trunk 口了。路由器 wan 发出的链路帧可能有:

    • Tag 了 vid 43 的 iptv 数据
    • Tag 了 vid 41 的网络数据(路由器配置了网络 vid 的话)
    • 未 Tag 的网络数据 (路由器未配置网路 vid 的话)

    光猫 lan1 肯定需允许接受它们并打上 tag (光猫里我没有找到配置端口 pvid 的选项,假设 lan1 的 pvid 为 1 ,光猫光纤出口 pvid 也为 1 吧),对应上面:

    • 接受 Tag 了 vid 43 的 iptv 数据 并做交换转发
    • 接受 Tag 了 vid 41 的网络数据 并做交换转发
    • 接受未 Tag 的网络数据,Tag 上 PVID 1 后 做交换转发

    如上,光猫 lan1 进来的链路帧应都打上了 vid 的,为什么打了 vid 41 的无法 DHCP 成功,打了 pvid 1 的却可以呢?

    最后想确定下,光猫光纤出去到 ISP 的网络的链路帧应该没打 tag 的吧?

    谢谢~

    15 条回复    2021-11-12 21:13:22 +08:00
    Archeb
        1
    Archeb  
       2021-11-11 01:06:11 +08:00
    Question1: 这里我好奇为什么开始可以工作,一段时间为何又不行了呢?

    Answer: 从拓扑图可以看到,你的 台式机、IPTV 盒子、光猫 IPTV 口、路由器 CPU 的 LAN 接口 都是在同一个广播域下面的

    如果你的运营商 IPTV 配置与我们这里一样是 DHCP 下发 IP 的话,那么这个局域网里面同时存在着 路由器 DHCP 服务器、运营商 DHCP 服务器 两者。

    那么一开始可以用的原因应该是你台式机从路由器拿到的的 DHCP 分配还没有 Renew ,而在 DHCP 分配过期之后,他又从运营商 DHCP 服务器拿了一个 IP ,属于 IPTV 专网,自然不可以上网了

    而 IPTV 盒子自始自终都从运营商 DHCP 拿 IP ,所以可以一直上网
    Archeb
        2
    Archeb  
       2021-11-11 01:15:36 +08:00   ❤️ 1
    Question2: 为什么 DHCP 会失败,为什么有时会打开另一个光猫的登录界面?
    Question3: 这就奇怪了,这时 DHCP 为什么又会成功呢?

    Answer: 光猫的 DHCP 服务器与你看到光猫中的几个连接( INTERNET VID41 、TR069 VID46 、IPTV VID43/45 )以及端口 VLAN 绑定是没有关系的,它会无视这些东西直接跑在 LAN 口上...

    在默认情况下(你没有开端口 VLAN 绑定),INTERNET 连接直接绑定到 LAN ,光猫 DHCP 服务器也跑在 LAN ,所以你可以同时 PPPoE+DHCP

    但当你绑定了端口 VLAN ,VLAN41 就会直接和 INTERNET 这个连接绑定,跑在默认 LAN 上的光猫 DHCP 服务器就没办法给你发放 IP 了
    Archeb
        3
    Archeb  
       2021-11-11 01:19:51 +08:00
    补充:默认 LAN 意思就是 PVID=1

    Q:会打开另一个光猫的登录界面?

    A:这个真不知道

    Q:最后想确定下,光猫光纤出去到 ISP 的网络的链路帧应该没打 tag 的吧?

    A:这个涉及到 PON 和 OLT 之间的连接到底是个什么架构的问题,不熟,需要运营商相关人士解答。

    以上是我根据经验推测的结论,如果大家观察到了有什么不一致的现象或者有其他结论,欢迎指正。
    xh3ccc
        4
    xh3ccc  
    OP
       2021-11-11 01:53:19 +08:00
    @Archeb #1 感谢回复。抱歉我没讲清楚,台式机的 IP 是设置了静态的,不是 DHCP 获取的。Question1 里的没网了:不只台式机,路由器 /wifi 都没网了。iptv 拨号还是 dhcp 忘记看了,应该是拨号。
    xh3ccc
        5
    xh3ccc  
    OP
       2021-11-11 01:59:16 +08:00
    @Archeb #2 好奇你说的"DHCP 服务器无视这些东西直接跑在 LAN 口上"、"当你绑定了端口 VLAN ,VLAN41 就会直接和 INTERNET 这个连接绑定,跑在默认 LAN 上的光猫 DHCP 服务器就没办法给你发放 IP 了" 是什么原理?能从链路层、应用层面说说吗?
    coolan
        6
    coolan  
       2021-11-11 02:24:30 +08:00 via Android   ❤️ 2
    我试着回答一下 dhcp 的问题,光猫 vlan 绑定是区分上下行的,41/41 ,后一个 41 指的上行到局端打 tag41 ,前一个指下行给路由器 tag41 ,默认的话,路由器 wan 没有 vlanid ,那就跟光猫 dhcp 那个服务在同一个 vlan 里,那么你的 dhcp 正常获得 IP ,路由拨号的包光猫自动上行打 tag41 去局端。当你修改了 vlan 绑定 41/41 ,路由器 wan 也成了 41 ,跟光猫 LAN 不在一个 vlan 了,dhcp 当然不通。如果光猫默认 vid 是 1 ,那你光猫 lan1 配置 1/41 ,路由器 wan 配 1 ,应该还是正常。
    coolan
        7
    coolan  
       2021-11-11 02:31:03 +08:00 via Android
    vlan 绑定提供了一个对应关系,此端口 vlanid/局端 vlanid ,这样你出端口就是前一个 id ,出光纤就是后一个 id 。
    xh3ccc
        8
    xh3ccc  
    OP
       2021-11-11 02:34:57 +08:00
    @coolan #6 赞~ 解惑了为什么这种"41/41"书写方式的原因,原来分上下行,之前都没搜到相关资料。
    你这么解释明白了,原来 dhcp 服务处于 vlan 1 这个广播域内。
    coolan
        9
    coolan  
       2021-11-11 02:35:30 +08:00 via Android
    说的再简单一点就是 aid/bid ,路由器打 aid 进光猫,光猫转 bid 送光纤,光纤带 bid 进光猫,转 aid 从端口出给路由。
    xh3ccc
        10
    xh3ccc  
    OP
       2021-11-11 02:56:11 +08:00
    @coolan 咦,我又有个疑问,未启用 vlan 绑定的时候,INTERNET 桥接配置如下图这样的:

    ![图 6]( https://i.bmp.ovh/imgs/2021/11/076be026b322cc11.png)

    图里 LAN1 打钩了端口绑定,和不打勾的端口 3 、端口 4 有何区别呢?若此时 LAN1 是 access 端口,路由器数据到 lan1 不就是会打上 vid 41 的吗,,按理这样访问不了 vlan 1 广播域内的 DHCP 呀。。。但实际此时从 lan1 可以访问光猫的。从端口 3 、端口 4 也可以访问光猫的。
    coolan
        11
    coolan  
       2021-11-11 03:16:20 +08:00 via Android   ❤️ 1
    我理解是在你没有配置 vlan 绑定时,端口始终打默认的 pvid 的 tag ,此时所有没有做 vlan 绑定的口全部互通。所以可以访问光猫界面。通过配置了 Internet 连接绑定端口 1 ,是让端口 1 进来的包,在从光纤口出时,打上 tag41 。并不影响内部交换使用 pvid1 。
    coolan
        12
    coolan  
       2021-11-11 03:20:59 +08:00 via Android
    正常的交换机不会修改你的 vlanid ,光猫就是在光纤出口那修改你的 vlanid ,同时负责反向的转换。
    coolan
        13
    coolan  
       2021-11-11 04:14:35 +08:00 via Android   ❤️ 1
    另外关于第一个问题,pppoe 协议通过二层广播找服务器 mac 地址,那你的宽带就会同时把请求发给局端的宽带和 IPTV 对应的服务器,IPTV 拨号也是如此,假如 IPTV 的 pppoe 服务器回应的更快,那你的宽带就连了 IPTV 服务器导致账号密码错误了。当然一旦成功连接准确的服务器,不重新拨号的情况下,是会正常使用。
    cxh116
        14
    cxh116  
       2021-11-12 09:35:41 +08:00 via Android
    方案一应该没问题,我现在用的就是这样的。

    你得先找到为什么这种网络会断的原因,个人大概率觉得是 iptv lan 的 dhcp 是开了,导到有时获取 iptv lan 的 ip ,导致网断。
    xh3ccc
        15
    xh3ccc  
    OP
       2021-11-12 21:13:22 +08:00
    @cxh116 光猫 IPTV 口配置里的"关闭 lan 侧的 DHCP"打钩了的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3048 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.