chv-cell: networkd 不管 ve + 单元内 DNS 修复
- systemd-networkd(/usr/lib 80-container-ve.network,匹配 ve-*) 会在 veth 建好后几秒内刷掉静态 10.200.0.1、改 DHCP/链路本地, 致单元网关不可达、TCP/UDP 全灭(FORWARD/NAT 计数器恒 0; 早先一次 curl 403 是刷掉前的窗口期偶发)。修法:镜像内置 /etc/systemd/network/79-chv-cell.network(Unmanaged=yes), 须排在 80 之前(99 会被 80 抢走,已实测);build.sh copy-in + 校验、BASE_CONTENTS 与两处 DECLARED_SOURCES 登记。 - run_cell 配网后复核 ve 上确有 10.200.0.1(_iface_has_ip), 不见即大声失败、不跑无网单元(第二道防线)。 - 单元内 DNS:/etc/resolv.conf 是 127.0.0.53 stub,单元独立 netns 里自己的 lo 上没有 resolver;把上游 /run/systemd/resolve/resolv.conf 绑到 /etc/resolv.conf (解析 symlink 后挂真实目标)。live 验证:DNS-UDP-OK、 getaddrinfo 解析成功、curl https://gitea.tose.top 200。 - 单测:CellResolvTest + _iface_has_ip 真实 lo 断言 + 规约 dns_resolv_conf 字段;P2 + 阶段 2 共 74 项全过。
This commit is contained in:
1 parent
4b5f2f124f
commit
1cbaf7c1d5
7 files changed
+48
No files matched your search
@@ -306,6 +306,8 @@ VC_ARGS=(-a "$OUT/disk.raw"
|
||||
--copy-in "$SCRIPT_DIR/chv-execd.py:/usr/local/bin/"
|
||||
--copy-in "$SCRIPT_DIR/chv-syncd.py:/usr/local/bin/"
|
||||
--run-command 'mv /usr/local/bin/chv-daemon.py /usr/local/bin/chv-daemon && mv /usr/local/bin/chv-execd.py /usr/local/bin/chv-execd && mv /usr/local/bin/chv-syncd.py /usr/local/bin/chv-syncd && chmod +x /usr/local/bin/chv-daemon /usr/local/bin/chv-execd /usr/local/bin/chv-syncd'
|
||||
--copy-in "$SCRIPT_DIR/79-chv-cell.network:/etc/systemd/network/"
|
||||
--run-command 'test -f /etc/systemd/network/79-chv-cell.network && grep -q "^Unmanaged=yes" /etc/systemd/network/79-chv-cell.network && grep -q "^Name=ve-chv-cell" /etc/systemd/network/79-chv-cell.network'
|
||||
--run-command 'printf "runcmd:\n - systemctl restart ssh || service ssh restart || true\n - test -f /etc/chv/guest-env && chown chv:chv /etc/chv/guest-env || true\n - /usr/local/bin/chv-data-mount >>/var/log/chv-data-mount.log 2>&1 || true\n - /usr/local/bin/chv-sync boot >>/var/log/chv-sync.log 2>&1 || true\n" > /etc/cloud/cloud.cfg.d/99-chv-sync.cfg'
|
||||
--run-command 'git config --system user.name chv && git config --system user.email chv@localhost && git config --system credential.helper store && git config --system init.defaultBranch main'
|
||||
--run-command "$GT_INSTALL_CMD"
|
||||
|
||||
Reference in new issue
Block a user