V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kyrre
V2EX  ›  Linux

PVE 的 SDN 怎么解决 DNAT 的问题?

  •  
  •   kyrre · 7 天前 · 1068 次点击

    我在公司 Lab 里的一台物理机上跑了最新的 PVE 8.3 ,主要是为了跑 CI/CD ,测试环境需要随时创建一系列 runner VM 。这是大背景。 公司是大内网,10.x.x.x 的,IT 也不管这些内部机器的 DNS 解析啥的。我就在这个 PVE 上自己先建了个 VM 用来跑 PowerDNS 服务,然后配到了 PVE 的 SDN 里,现在已经可以在创建 vm 时自动把这个 vm 的域名登记到 powerDNS 里,这些 vm 用了 192.168....的地址,然后 vm 里也可以联网出去更新系统啥的。VM 本身是用了 SNAT 访问大内网(当然也就能访问互联网)。

    现在主要的问题是公司大内网的机器访问这些 SNAT 的 runner 不方便,不能直接 ssh 进去,不知道这种情况各位大拿是怎么解决的?

    有个思路是在 PVE 这个主机上直接配 iptable 的规则,类似这样: iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 30022 -j DNAT --to-destination 192.168.200.10:22

    7 条回复    2025-02-06 15:45:13 +08:00
    starryloki
        1
    starryloki  
       7 天前
    1. 找 IT 加静态路由指向 PVE
    2. 端口映射
    yinmin
        2
    yinmin  
       7 天前 via iPhone
    客户机手工加路由: route add 192.168.0.0/16 [pve 大内网 ip]

    或者别这么折腾,虚拟机桥接网络直接用大内网 ip10.x.x.x
    guanzhangzhang
        3
    guanzhangzhang  
       7 天前
    你 pve 上跑个路由协议把你路由宣告出去,然后你的 pve 上的 snat 关闭
    snoopygao
        4
    snoopygao  
       7 天前
    PVE 部署了 SDN ,不提供一对一映射吗
    kyrre
        5
    kyrre  
    OP
       6 天前
    @snoopygao 目前这个版本的 SDN 还比较弱,只有 SNAT 。

    @guanzhangzhang 能展开说说么?或者给个链接我研究一下。

    @starryloki @yinmin 我目前就用 iptables 这个方式加了 DNAT 规则,稍微傻了点,只能说凑活着用
    smileawei
        6
    smileawei  
       6 天前
    PVE 的网络 新建一个网络 选择一个物理网卡 进行桥接。这样和 PVE 宿主机的网卡就在一个二层了。
    blackeeper
        7
    blackeeper  
       6 天前
    你这个其实是要去除 DNAT ,把 192.168.0.0/16 作为独立的 VM 网段,只需要在路由器上加一条静态路由把去往 192.168.0.0/16 的网络下一跳是这个 PVE IP ,然后 PVE 上把 nat 网络改为 host-only 模式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5354 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:46 · PVG 11:46 · LAX 19:46 · JFK 22:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.