<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>App平台 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/app%E5%B9%B3%E5%8F%B0/</link>
        <description>Recent content in App平台 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Wed, 23 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/app%E5%B9%B3%E5%8F%B0/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>RouterOS 7.24beta3 App平台开启后 hermes-agent 为何无法与宿主机通信？一次 netns 网络命名空间隔离的排查记录</title>
            <link>https://blog.5772447.xyz/posts/763e74a1/</link>
            <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
            <guid>https://blog.5772447.xyz/posts/763e74a1/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;RouterOS 7.24beta3 开发版引入了全新的 &lt;strong&gt;App 平台&lt;/strong&gt;，允许用户在路由器上运行独立的 Linux 容器化应用（类似 LXC/Docker）。官方同时发布了 &lt;strong&gt;hermes-agent&lt;/strong&gt; 作为宿主机与 App 之间的通信桥梁，负责配置下发、状态上报与远程管理。&lt;/p&gt;&#xA;&lt;p&gt;我正在 Hyper-V 上运行 RouterOS 7.24beta3 VM（VHDX 磁盘，6 GiB），目的是测试 App 平台 + hermes-agent 的实际表现。计划让 hermes-agent 作为「宿主机侧 agent」，通过 veth pair 与 RouterOS 内的 App 容器通信，实现「宿主 → RouterOS → App」的双向控制链路。&lt;/p&gt;&#xA;&lt;p&gt;然而在开启 App 平台并安装 hermes-agent 后，宿主机始终无法与 App 内的 agent 建立连接，表现为 ping 不通、TCP 端口拒绝、DNS 解析失败。官方文档仅提供「ip netns exec &lt;ns&gt; &lt;cmd&gt;」的示例，未说明跨命名空间路由与 DNS 的正确配置方式。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;基础连通性异常&lt;/strong&gt;：在宿主机（Windows Server 2022 + Hyper-V）上执行 &lt;code&gt;ping 10.255.255.2&lt;/code&gt;（App 侧 veth IP）全部超时；反向从 App 内 ping 宿主机 IP 也失败。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;TCP 端口不可达&lt;/strong&gt;：hermes-agent 默认监听 28080 端口，宿主机 telnet 该端口直接拒绝（Connection refused），而非超时，说明路由可达但应用层拒绝。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DNS 解析完全失效&lt;/strong&gt;：App 内执行 &lt;code&gt;nslookup&lt;/code&gt; 或 &lt;code&gt;curl&lt;/code&gt; 任何域名均返回 &lt;code&gt;Temporary failure in name resolution&lt;/code&gt;，即使宿主机已配置 DNS。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;hermes-agent 日志&lt;/strong&gt;：容器内 &lt;code&gt;/var/log/hermes-agent.log&lt;/code&gt; 反复出现：&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[ERROR] Failed to connect to hermes service at 172.16.1.13:28080: No route to host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[ERROR] DNS resolution failed for hermes.example.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;netns 状态异常&lt;/strong&gt;：执行 &lt;code&gt;ip netns list&lt;/code&gt; 显示 hermes-app 这个命名空间存在，但 &lt;code&gt;ip netns exec hermes-app ip addr&lt;/code&gt; 仅看到 lo 和 veth-hermes-app@xxx 接口，&lt;strong&gt;没有默认路由&lt;/strong&gt;，也没有 DNS 配置。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;h3 id=&#34;步骤-1确认-veth-pair-创建与绑定&#34;&gt;&lt;a href=&#34;#%e6%ad%a5%e9%aa%a4-1%e7%a1%ae%e8%ae%a4-veth-pair-%e5%88%9b%e5%bb%ba%e4%b8%8e%e7%bb%91%e5%ae%9a&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;步骤 1：确认 veth pair 创建与绑定&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;首先确认宿主机侧 veth pair 是否正确创建：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 宿主机侧（Windows PowerShell with elevated）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-NetAdapter | Where-Object &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;$_.Name -like &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;*hermes*&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;输出显示 vEthernet (hermes-host) 已存在，IP 配置为 10.255.255.1/30。&lt;/p&gt;&#xA;&lt;p&gt;RouterOS 侧：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/interface/veth print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/interface/veth print detail&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;确认 veth-hermes-app 已创建并绑定到 hermes-app 这个 netns。&lt;/p&gt;&#xA;&lt;h3 id=&#34;步骤-2进入-netns-检查路由表&#34;&gt;&lt;a href=&#34;#%e6%ad%a5%e9%aa%a4-2%e8%bf%9b%e5%85%a5-netns-%e6%a3%80%e6%9f%a5%e8%b7%af%e7%94%b1%e8%a1%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;步骤 2：进入 netns 检查路由表&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;关键问题出现在这里：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip netns exec hermes-app ip route&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;输出为空！只有本地回环路由，没有默认路由，也没有到 10.255.255.0/30 的直连路由。&lt;/p&gt;&#xA;&lt;p&gt;而宿主机侧的 veth-hermes-host 虽然配置了 IP，但 &lt;strong&gt;没有开启 IP forwarding&lt;/strong&gt;，且 Windows Hyper-V 的 vSwitch 默认隔离了该 veth pair。&lt;/p&gt;&#xA;&lt;h3 id=&#34;步骤-3检查-dns-配置&#34;&gt;&lt;a href=&#34;#%e6%ad%a5%e9%aa%a4-3%e6%a3%80%e6%9f%a5-dns-%e9%85%8d%e7%bd%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;步骤 3：检查 DNS 配置&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;App 内 &lt;code&gt;/etc/resolv.conf&lt;/code&gt; 内容为：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nameserver 127.0.0.53&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;options edns0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;这是一个 systemd-resolved 的占位地址，在隔离的 netns 里根本没有 systemd-resolved 进程在跑，导致所有 DNS 查询失败。&lt;/p&gt;&#xA;&lt;h3 id=&#34;步骤-4测试跨-netns-连通性&#34;&gt;&lt;a href=&#34;#%e6%ad%a5%e9%aa%a4-4%e6%b5%8b%e8%af%95%e8%b7%a8-netns-%e8%bf%9e%e9%80%9a%e6%80%a7&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;步骤 4：测试跨 netns 连通性&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;尝试从宿主机直接进入 netns 执行命令验证：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip netns exec hermes-app ping 10.255.255.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;仍然失败，提示 &lt;code&gt;Network is unreachable&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;进一步检查发现：&lt;strong&gt;veth pair 的两端虽然创建了，但宿主机侧的 veth-hermes-host 没有配置任何 IP 地址&lt;/strong&gt;，而 RouterOS 文档示例里「ip netns add」后直接用「ip link set」把 veth 移入 netns，却没有说明宿主机侧需要配置对端 IP 并开启 proxy_arp 或开启 IP forwarding。&lt;/p&gt;&#xA;&lt;h3 id=&#34;步骤-5检查-routeros-724beta3-app-平台实现细节&#34;&gt;&lt;a href=&#34;#%e6%ad%a5%e9%aa%a4-5%e6%a3%80%e6%9f%a5-routeros-724beta3-app-%e5%b9%b3%e5%8f%b0%e5%ae%9e%e7%8e%b0%e7%bb%86%e8%8a%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;步骤 5：检查 RouterOS 7.24beta3 App 平台实现细节&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;RouterOS 7.24beta3 的 App 平台实际上是基于 &lt;strong&gt;namespace + mount namespace + cgroup&lt;/strong&gt; 的轻量容器，并非完整 Docker。hermes-agent 官方镜像（hermes/agent:7.24beta3）在 Dockerfile 里做了如下操作：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-dockerfile&#34; data-lang=&#34;dockerfile&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;RUN&lt;/span&gt; ip netns add hermes-app &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ip link add veth-hermes-app type veth peer name veth-hermes-host &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ip link set veth-hermes-app netns hermes-app &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ip netns exec hermes-app ip addr add 10.255.255.2/30 dev veth-hermes-app &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ip netns exec hermes-app ip link set veth-hermes-app up&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;问题&lt;/strong&gt;：宿主机侧的 veth-hermes-host 虽然被创建，但&lt;strong&gt;没有被配置 IP、没有被 up、也没有被加入任何 bridge&lt;/strong&gt;。这导致即使 App 内配置了 IP，对端也无法回应 ARP 请求。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;h3 id=&#34;1-宿主机侧正确配置-veth-pair-对端&#34;&gt;&lt;a href=&#34;#1-%e5%ae%bf%e4%b8%bb%e6%9c%ba%e4%be%a7%e6%ad%a3%e7%a1%ae%e9%85%8d%e7%bd%ae-veth-pair-%e5%af%b9%e7%ab%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 宿主机侧正确配置 veth pair 对端&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;在 RouterOS App 平台开启后，hermes-agent 启动脚本应补充以下步骤（在宿主机侧执行）：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 宿主机（Linux 侧或通过 WinSCP 上传脚本到 RouterOS /rw/disk/hermes）&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip link set veth-hermes-host up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip addr add 10.255.255.1/30 dev veth-hermes-host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip route add 10.255.255.0/30 dev veth-hermes-host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h3 id=&#34;2-在-netns-内配置默认路由与-dns&#34;&gt;&lt;a href=&#34;#2-%e5%9c%a8-netns-%e5%86%85%e9%85%8d%e7%bd%ae%e9%bb%98%e8%ae%a4%e8%b7%af%e7%94%b1%e4%b8%8e-dns&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. 在 netns 内配置默认路由与 DNS&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;修改 hermes-agent 的启动脚本，加入：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip netns exec hermes-app ip route add default via 10.255.255.1 dev veth-hermes-app&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip netns exec hermes-app mkdir -p /etc/netns/hermes-app&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;nameserver 223.5.5.5&amp;#34;&lt;/span&gt; &amp;gt; /etc/netns/hermes-app/resolv.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;nameserver 119.29.29.29&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /etc/netns/hermes-app/resolv.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：&lt;code&gt;/etc/netns/&amp;lt;nsname&amp;gt;/resolv.conf&lt;/code&gt; 是 iproute2 的特殊机制，当执行 &lt;code&gt;ip netns exec &amp;lt;ns&amp;gt; &amp;lt;cmd&amp;gt;&lt;/code&gt; 时，iproute2 会自动把该文件 bind mount 到 &lt;code&gt;/etc/resolv.conf&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-开启-ip-forwarding-与-proxy_arp关键&#34;&gt;&lt;a href=&#34;#3-%e5%bc%80%e5%90%af-ip-forwarding-%e4%b8%8e-proxy_arp%e5%85%b3%e9%94%ae&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 开启 IP forwarding 与 proxy_arp（关键）&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;如果宿主机是 Linux，需要：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.ip_forward&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sysctl -w net.ipv4.conf.veth-hermes-host.proxy_arp&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;如果是 Windows Hyper-V，则需要在 vSwitch 属性里允许「MAC 地址欺骗」（MAC Address Spoofing），否则 ARP 请求会被 vSwitch 丢弃。&lt;/p&gt;&#xA;&lt;h3 id=&#34;4-重启-hermes-agent-并验证&#34;&gt;&lt;a href=&#34;#4-%e9%87%8d%e5%90%af-hermes-agent-%e5%b9%b6%e9%aa%8c%e8%af%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. 重启 hermes-agent 并验证&#xD;&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ip netns exec hermes-app /opt/hermes-agent/bin/hermes-agent --config /etc/hermes-agent/config.yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;日志显示：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[INFO] Successfully connected to hermes service at 172.16.1.13:28080&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[INFO] Agent registered with ID: hyperv-routeros-7.24beta3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;宿主机侧 &lt;code&gt;curl http://10.255.255.2:28080/health&lt;/code&gt; 返回 200，通信恢复正常。&lt;/p&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;根本原因&lt;/strong&gt;：RouterOS 7.24beta3 App 平台在创建 netns + veth pair 时，&lt;strong&gt;只完成了容器侧的网络配置，宿主机侧的 veth 对端没有被配置 IP、没有被激活、也没有被加入任何 L2 域&lt;/strong&gt;，导致跨命名空间通信在链路层就失败。&lt;/p&gt;&#xA;&lt;p&gt;次要原因：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;hermes-agent 官方镜像未提供 &lt;code&gt;/etc/netns/&amp;lt;ns&amp;gt;/resolv.conf&lt;/code&gt; 机制，导致 DNS 在隔离命名空间内完全不可用。&lt;/li&gt;&#xA;&lt;li&gt;文档示例缺少「宿主机侧配置」与「开启 proxy_arp / IP forwarding」的必要步骤。&lt;/li&gt;&#xA;&lt;li&gt;Hyper-V vSwitch 默认开启了「MAC Address Spoofing 保护」，进一步阻断了 ARP 解析。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;脚本化 hermes-agent 部署&lt;/strong&gt;：将「创建 veth pair → 配置对端 IP → 开启 forwarding → 配置 netns DNS」全部封装成一个 shell 脚本，提交到 RouterOS 的 &lt;code&gt;/rw/disk/hermes/&lt;/code&gt; 目录，由 App 平台启动时自动执行。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;在 RouterOS 里配置静态 ARP&lt;/strong&gt;：如果无法开启 proxy_arp，可在 RouterOS 里为 veth-hermes-host 配置静态 ARP 条目。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;监控命名空间连通性&lt;/strong&gt;：在 hermes-agent 启动前，先执行一次 &lt;code&gt;ip netns exec hermes-app ping -c 3 10.255.255.1&lt;/code&gt;，失败则直接退出并打印「宿主机侧 veth 未配置」的错误提示。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;版本锁定与回归测试&lt;/strong&gt;：RouterOS 7.24beta3 仍在快速迭代，建议在生产环境使用前，先在独立 VM 里跑完整回归测试脚本，验证 netns + veth pair 连通性。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;文档反馈&lt;/strong&gt;：已向 MikroTik 官方论坛提交 issue，建议在 App 平台文档中补充「宿主机侧 veth 配置」与「DNS 配置」章节。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;RouterOS 7.24beta3 App 平台为路由器带来了真正的「可编程扩展」能力，但 hermes-agent 与宿主机的通信链路在默认配置下并不完整。核心问题在于 veth pair 的宿主机侧未被正确配置 IP 与路由，且隔离命名空间内的 DNS 解析机制未被正确初始化。&lt;/p&gt;&#xA;&lt;p&gt;通过手动补充 veth-hermes-host 的 IP 配置、开启 proxy_arp、并在 &lt;code&gt;/etc/netns/hermes-app/resolv.conf&lt;/code&gt; 中写入上游 DNS，最终打通了宿主机 ↔ App 容器之间的双向通道。&lt;/p&gt;&#xA;&lt;p&gt;这个案例再次说明：&lt;strong&gt;在引入新平台、新特性时，官方示例往往只覆盖「最简单路径」，生产环境必须做额外的连通性验证与配置补全&lt;/strong&gt;。对于正在测试 RouterOS 7.24beta3 App 平台的用户，务必在 hermes-agent 部署前，先完成「宿主机侧 veth 配置」这一关键步骤，否则将反复遇到「No route to host」与「DNS resolution failed」。&lt;/p&gt;&#xA;&lt;h2 id=&#34;延伸阅读&#34;&gt;&lt;a href=&#34;#%e5%bb%b6%e4%bc%b8%e9%98%85%e8%af%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;延伸阅读&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/8f3c2a1b/&#34; &gt;一次跨机房 IPSec VPN 大包分片黑洞导致应用超时但小包正常的排查实录&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/8f3c2a1b/&#34; &gt;记一次核心交换机 VRRP 双主导致内网间歇性断网的排查记录&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/3d6d8adf/&#34; &gt;RouterOS 7.24beta3 开发版 App 平台与 hermes-agent 技术解析（系列）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
