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

RouteOS 的 upnp 奇怪问题,求助

  •  
  •   zlkent · 214 天前 · 1350 次点击
    这是一个创建于 214 天前的主题,其中的信息可能已经有所发展或是发生改变。

    环境:在 ESXI 8 下的 RouteOS 7.11.2 版本 PPPoE 拨号,上网正常,有公网 IP 。upnp 按照网上教程开启,防火墙的 NAT 里有软件生成的条目,但实际上没有打通。

    upnp 设置:

    enabled: yes
    allow-disable-external-interface: yes
    show-dummy-rule: yes
    
    /ip/upnp/interfaces> print
    Columns: INTERFACE, TYPE
    # INTERFACE   TYPE
    0 pppoe-dx    external
    1 bridge-lan  internal
    

    NAT:

    Flags: X - disabled, I - invalid; D - dynamic
    0    chain=srcnat action=masquerade log=yes log-prefix=""
    

    防火墙配置:

    Flags: X - disabled, I - invalid; D - dynamic
    0  D ;;; special dummy rule to show fasttrack counters
    chain=forward action=passthrough
    
    1    ;;; accept ping
    chain=input action=accept protocol=icmp log=no log-prefix=""
    
    2    ;;; accept established,related,untracked
    chain=input action=accept connection-state=established,related,untracked
    log=no log-prefix=""
    
    3    ;;; drop invalid
    chain=input action=drop connection-state=invalid log=no log-prefix=""
    
    4    ;;; drop all from WAN
    chain=input action=drop in-interface-list=WAN log=no log-prefix=""
    
    5    ;;; defconf: fasttrack
    chain=forward action=fasttrack-connection hw-offload=yes
    connection-state=established,related log=no log-prefix=""
    
    6    ;;; accept established,related, untracked
    chain=forward action=accept
    connection-state=established,related,untracked log=no log-prefix=""
    
    7    ;;; drop invalid
    chain=forward action=drop connection-state=invalid log=no log-prefix=""
    
    8    ;;; drop all from WAN not DSTNATed
    chain=forward action=drop connection-state=new
    connection-nat-state=!dstnat in-interface-list=WAN log=no log-prefix=""
    

    目前的症状: upnp 的软件可以在 NAT 里自动生成条目,类似:

    chain=dstnat action=dst-nat to-addresses=192.168.1.66 to-ports=47984 protocol=tcp dst-address=218.80.xxx.xxx in-interface=pppoe-dx
    dst-port=47984
    

    但实际上并没有成功,外网无法访问(端口扫描,telnet 等方法无法连上)

    如果手动创建一条 NAT

    2   chain=dstnat action=dst-nat to-addresses=192.168.1.12 to-ports=9000 protocol=tcp dst-port=9000 log=no log-prefix=""
    

    则可以成功,外网正常访问

    如果手动创建的这条,指定 in-interface=pppoe-dx ,则失败。

    尝试了关闭所有防火墙规则,取消 upnp 的 interface 设置,对调 interface 里内外网的接口,重置 ROS ,都无效。

    不知道有 ROS 大神知道如何解决么? ROS 新手折腾了好多天了,查了无数网站都无解。

    第 1 条附言  ·  214 天前

    问题解决,在@bjzhou1990 的帮助下,原来是内网没有回源,导致内网直接测试telnet无法连上,实际上是成功的,手机切换到运营商网络后正常。另外群晖的端口映射测试失败,是因为添加了一条规则

    /ip firewall nat print
    Flags: X - disabled, I - invalid; D - dynamic 
     0    chain=srcnat action=masquerade log=yes log-prefix=""
    

    但没加上 out-interface=pppoe-dx 导致的。加上后就正常了。

    0   chain=srcnat action=masquerade out-interface=pppoe-dx log=yes log-prefix=""
    

    最后谢谢大家。

    11 条回复    2023-09-26 17:43:03 +08:00
    TESTFLIGHT2021
        1
    TESTFLIGHT2021  
       214 天前   ❤️ 1
    routeros 不支持 NAT1 哎
    gearfox
        2
    gearfox  
       214 天前   ❤️ 1
    @TESTFLIGHT2021 不是说 endpoint-independent-nat 支持 udp 的 nat1 了吗?
    bjzhou1990
        3
    bjzhou1990  
       214 天前   ❤️ 1
    给手动创建的 NAT 加个 log ,看下走的 interface ?
    zlkent
        4
    zlkent  
    OP
       214 天前
    @TESTFLIGHT2021 #1 和 NAT1 有关系吗?我查了好多个教程,都一样,看着也很简单,但开了就是没效果。
    zlkent
        5
    zlkent  
    OP
       214 天前
    @bjzhou1990 #3 dstnat: in:bridge-lan out:(unknown 0), connection-state:new ....(后面就是 ip 什么的敏感就删了)
    KenGe
        6
    KenGe  
       214 天前   ❤️ 1
    为啥不直接用 nat1 ?
    bjzhou1990
        7
    bjzhou1990  
       214 天前   ❤️ 1
    @zlkent #5 设置应该没问题,不要在内网访问,自动创建的 upnp 规则只允许了通过外网访问(in-interface=pppoe-dx),你在内网是访问不通的,你自己创建的规则没做限制所以内网可以访问
    zlkent
        8
    zlkent  
    OP
       214 天前
    @KenGe #6 刚接触 Ros ,以前一直 ikuai ,还不熟悉,我去看看


    @bjzhou1990 #7 尴尬了,还真是,手机换 5G 就正常访问...内网一直不通就没往那方面想。而且群晖里路由器配置的端口映射测试都是失败,就一直觉得是 ROS 问题...
    TESTFLIGHT2021
        9
    TESTFLIGHT2021  
       214 天前   ❤️ 1
    @zlkent 内网访问需要回源
    zlkent
        11
    zlkent  
    OP
       214 天前
    @TESTFLIGHT2021 #9 ROS 不熟悉,闹笑话了😂


    @ppbaozi #10 嗯,这个官方文档粗略看过,水平有限,当时看完没解决😅,所以跑来发帖问,好在现在问题解决了😁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1043 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:05 · PVG 07:05 · LAX 16:05 · JFK 19:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.