V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
phlips5437
V2EX  ›  宽带症候群

有没有方法让局域网内的 client 向指定的 DHCP Server 发起请求

  •  
  •   phlips5437 · 174 天前 · 2086 次点击
    这是一个创建于 174 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,我的目的想通过这种方式,让 IPTV 机顶盒指定向光猫进行 DHCP 申请,而其他局域网内的终端向另外一台 ROS 进行申请

    目前的情况如下:
    1 、DHCP Server 2 台,1 台是光猫网关(拨号、DHCP 分发),另 1 台 ROS/Open Wrt ( DNS 、DHCP 、DDNS 等其他服务)
    2 、IPTV 因各种限制,需要由光猫进行鉴权获得专有地址进行联网。为何不做光猫桥接原因如下:
    a)光猫是 10G WAN 口,出口带宽 1000M ,家里其他设备还未跟上
    b)技术太菜,在 ROS/OpenWrt 桥接下成功过 IPTV 联网,但效果不理想,每次开机联网时间太长,约 5 分钟左右

    因此,我希望能实现 IPTV 机顶盒向光猫进行 DHCP 申请;其余客户端向另外一台 DHCP 申请这种方式来实现。
    22 条回复    2022-03-03 13:42:15 +08:00
    rrfeng
        1
    rrfeng  
       174 天前 via Android
    DHCP 是广播,你可以控制 DHCP server 不给某个设备回应。

    但是没懂你这个问题跟 DHCP 有啥关系…
    pesowen
        2
    pesowen  
       174 天前 via iPhone
    可以绑定 mac 地址的
    disk
        3
    disk  
       174 天前
    你让路由 NAT ,IPTV 接光猫上不行吗?
    Tink
        4
    Tink  
       174 天前 via Android
    机顶盒接到光猫上,不就从光猫拿 ip 了?
    belldasd
        5
    belldasd  
       174 天前
    光猫桥接,ROS 做主路由,接 iptv 机顶盒。随便弄个 openwrt 路由接 ROS ,专门给 iptv 机顶盒做 B 面的 dhcp options 125 认证用。上海电信 iptv 稳定使用了几个月。
    Kowloon
        6
    Kowloon  
       174 天前 via iPhone
    同一子网内俩 DHCP Server 不太科学,建议 STB 直连光猫。
    geekvcn
        7
    geekvcn  
       173 天前
    就一台设备直接固定 IP 网关不就得了
    pH
        8
    pH  
       173 天前
    @belldasd “随便弄个 openwrt 路由接 ROS ,专门给 iptv 机顶盒做 B 面的 dhcp options 125 认证用”。老铁方便解释下这个细节么? OP 是二级 NAT 接在一级 NAT 上面么? 这种情况下 IPTV 是走公网还是专网看电视?
    jiangyang123
        9
    jiangyang123  
       173 天前
    如果只有一根网线连接的话,研究下 单线复用( vlan)
    jousca
        10
    jousca  
       173 天前
    这个只能通过 VLAN 交换机实现,IPTV 走一个 VLAN ,互联网走另外的 VLAN ,这样广播包范围就可以可以实现你说的要求控制。
    belldasd
        11
    belldasd  
       173 天前
    @pH iptv 走专网。op 只作为同一网络里的第二个 dhcp server 使用。
    belldasd
        12
    belldasd  
       173 天前
    @Kowloon “同一子网内俩 DHCP Server 不太科学” 很正常的应用
    belldasd
        13
    belldasd  
       173 天前   ❤️ 1
    @pH 光猫桥接,ROS 路由 wan 和 lan 之间创建 vlan85 桥接。我用闲置的 WR703N 刷 op ,接 ROS 路由器,op 设置固定 ip ,开启 DHCP SERVER ,网关设成 ros 的,修改 dnsmasq.conf 文件把
    dhcp-option-force=125,00:00:00:00:14:02:06:48:47:57:2d:43:54:0a:02:20:00:0b:02:00:55:0d:02:00:2e
    dhcp-option=15
    dhcp-option=28
    dhcp-option=60

    加进去,重启 dnsmasq 服务。
    接下来你可以关闭 ros DHCP SERVER ,op 作为全网 DHCP 服务器,机顶盒就能用了。

    另外也可以不关闭 ros DHCP SERVER ,op 设置静态 DHCP 服务器专门给 iptv 机顶盒用。
    911061873
        14
    911061873  
       172 天前
    我有个思路 但是本人没用 IPTV 没有验证过,理论可行
    光猫的 IPTV 接口和网络接口都接 OP 上,默认路由是外网口。
    抓一下 IPTV 的 IP ,也就五六个网段,在路由里添加静态路由,下一跳指向光猫的接口。
    linuxyz
        15
    linuxyz  
       171 天前
    听起来你只有一个 LAN, ROS 是做旁路由, 但是光猫和 ROS 分配的 IP 地址范围不一样。

    如果直连光猫的设备少可以,给这些设备指定 IP+GW, 比如:IPTV 可以指定 IP 地址,用光猫做 GW
    禁用光猫的 DHCP , 让 ROS 做 DHCP Server 。
    如果需要连 ROS 的设备少,可以反向操作。


    其实更方便的方法是,光猫和 ROS 都分配同样的网段,但是地址范围不同。
    比如
    光猫 LAN: 192.168.1.0/24, range: 100-200
    ROS LAN: 192.168.1.0/24, range: 200-250
    这样家里的设备都可以互相访问,同时可以通过手动指定 GW 来实现不同的外网访问功能。
    phlips5437
        16
    phlips5437  
    OP
       170 天前
    @rrfeng 电信光猫分发 dhcp 的时候会带一条 dhcp option 125 ,value 是带着厂商信息,iptv 获取后才能顺利鉴权完成认证
    phlips5437
        17
    phlips5437  
    OP
       170 天前
    @pesowen 请问绑定 mac 地址是在光猫侧这边做吗?
    phlips5437
        18
    phlips5437  
    OP
       170 天前
    @disk 这样就多了一层 NAT 。。。。。不舒服哎
    phlips5437
        19
    phlips5437  
    OP
       170 天前
    @belldasd 我之前也实现过,但不知为何每次开 iptv 认证的时间都很久,不知道你那边的情况如何?
    phlips5437
        20
    phlips5437  
    OP
       170 天前
    @geekvcn iptv 设备没法手动设置局域网信息,只得靠 dhcp 来获取
    pesowen
        21
    pesowen  
       170 天前
    @phlips5437 假如我没理解错的话,你的需求可以简化为:1 ) ROS 不分配 IP 地址给机顶盒; 2 )光猫只分配 IP 地址给机顶盒。

    1 )可以在 ROS 端的 DHCP 配置中设置

    host block_host_1 {
    hardware ethernet ho:st:ma:ca:dd:rs;
    deny booting;
    }

    https://forums.freebsd.org/threads/how-to-block-a-mac-using-dhcpd-conf.71987/

    2 )可以在光猫的 DHCP 配置中设置 whitelist ,即仅分配 IP 地址给指定的 mac

    class "clients" {
    # mac is 48 bit, or 6 Byte, so that is 6 here.
    match if substring (hardware,1,6) = 00:0c:29:d9:07:a2;
    }
    pool {
    range 192.168.1.100 192.168.1.250;
    allow members of "clients";
    }



    我没有尝试过,仅仅给出思路,希望有所帮助~
    phlips5437
        22
    phlips5437  
    OP
       169 天前
    @pesowen 你好,是的,的确如你所说,我会按照你的思路研究一下,非常感谢~~~
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2197 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:36 · PVG 09:36 · LAX 18:36 · JFK 21:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.