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

openwrt 拨号获取到两个公网 ip,只有一个公网 ip 能被外网 ping 通,请教是什么原因?

  •  
  •   sunny155 · 14 天前 · 934 次点击
    本人目前是在 openwrt 单线多拨,用 eth0 创建了两个 pppoe 接口 wan 和 wan2 ,其中 wan 接口通过指定 ac name 拨回原来的 bras 上,wan2 接口拨号到 vbras 上获取到固定的公网 ip 。wan 没有配置跃点,wan2 配置了跃点 10 。目前也就是所有流量都从 wan 口走,wan2 基本没有流量。


    这样做的想法如下:
    1 、一旦有一天指定 bras 拨号的方式失效,家中网络不会中断;

    2 、经过测试如果配置负载均衡两条宽带是可以叠加带宽的,但考虑到弄负载均衡可能引入更多问题,所以目前还是主要利用原来的 bras 上网,vbras 获取到的公网 ip 只用于外网访问。

    3 、注意到有地区因为 ddns 而停宽带的案例,而传统 bras 获取到的公网 ip 会变动,而 vbras 获取到的公网 ip 一直不变,所以希望利用这个固定的公网 ip 做所有外网访问的业务。

    4 、如果想法 2 和 3 能实现,那么外网访问的带宽就相当于独立的了。不会影响家中正常上网的带宽。


    发现的问题:
    目前 wan 口能被外网 ping 通,wan2 口获取到的固定公网 ip 无法被外网 ping 通。如果将 wan 口关闭,wan2 就立即能 ping 通了。

    而如果将 wan 口跃点配置为 10 ,wan2 口跃点配置为 0 ,此时所有流量都从 wan2 出了,这时 wan2 获取的公网 ip 能陪外网 ping 通,而 wan 口获取到的就不能 ping 通了。

    也即拨号获取到两个公网 ip ,同时只有一个公网 ip 能被外网 ping 通,

    通过对 wan2 口抓包,发现如下错误提示。感觉包能到接口,但 openwrt 没有回应。
    ICMP 76 Echo (ping) request id=0x0003, seq=18288/28743, ttl=123 (no response found!)
    Frame 181: 76 bytes on wire (608 bits), 76 bytes captured (608 bits) on interface -, id 0
    Linux cooked capture v1
    Internet Protocol Version 4, Src: xxxx, Dst: xxxx
    Internet Control Message Protocol
    Type: 8 (Echo (ping) request)
    Code: 0
    Checksum: 0x05e9 [correct]
    [Checksum Status: Good]
    Identifier (BE): 3 (0x0003)
    Identifier (LE): 768 (0x0300)
    Sequence Number (BE): 18288 (0x4770)
    Sequence Number (LE): 28743 (0x7047)
    [No response seen]
    [Expert Info (Warning/Sequence): No response seen to ICMP request]
    [No response seen to ICMP request]
    [Severity level: Warning]
    [Group: Sequence]
    Data (32 bytes)
    Data: 6162636465666768696a6b6c6d6e6f7071727374757677616263646566676869
    [Length: 32]

    由于本人对网络方面不是专业的,只能通过网上检索相关信息,目前尝试过感觉有关联的方案,但都没有解决:
    1 、wan 和 wan2 口都加到了防火墙的 wan 区域,通信规则允许了 ICMP 协议通过;

    2 、在 OpenWrt 中关闭反向路径过滤(反向路由检测),在/etc/sysctl.conf 中增加了下列命令:
    net.ipv4.conf.all.rp_filter=0
    net.ipv4.conf.default.rp_filter=0

    想求教,如何设置能让两个公网 ip 同时都能被外网 ping 通?谢谢。
    5 条回复    2024-05-26 00:47:32 +08:00
    povsister
        1
    povsister  
       14 天前 via iPhone   ❤️ 1
    你 wan2 加了 metric ,但是没做源进源出,所以…
    icmp 回程的包被从 wan 口发出去了,不对称路由导致的
    titanium98118
        2
    titanium98118  
       14 天前   ❤️ 1
    把 2 个 wan 口的跃点设为不一样,如 wan 是 10 ,wan2 是 20 ,装上 mwan3 ,把 mwan3 的最后一条规则 default_rule ,设为 wan 优先,这样 wan 、wan2 都是能被外面 ping 通的
    sunny155
        3
    sunny155  
    OP
       14 天前
    @povsister 谢谢提示!
    @titanium98118 按您说的设置后,问题已经成功解决了,谢谢指教!
    shenguna
        4
    shenguna  
       12 天前
    @sunny155 如何查看和指定 vbars ?
    lxcopenwrt
        5
    lxcopenwrt  
       8 天前
    @shenguna openwrt 可使用以下命令查看 bras 名称:pppoe-discovery -I eth0 ( eth0 是指你的 WAN 口,你那里不一定是这个),指定 bras 就是把上面扫描到的 Access-Concentrator 名称填进 openwrt 的网络-接口-WAN-接入集中器里面

    @sunny155 电信看来不怎么管多播,移动对多播管的真的严,我尝试指定不同 AC 多播一开始可以拿到两个 IP 但没几分钟就被踢下线了,再试就直接提示 AUTH_TOPEER_FAILED ,只有一个 bras 能一直在线
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:49 · PVG 19:49 · LAX 04:49 · JFK 07:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.