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

7 天前
 kyrre

我在公司 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

1073 次点击
所在节点    Linux
7 条回复
starryloki
7 天前
1. 找 IT 加静态路由指向 PVE
2. 端口映射
yinmin
7 天前
客户机手工加路由: route add 192.168.0.0/16 [pve 大内网 ip]

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

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

@starryloki @yinmin 我目前就用 iptables 这个方式加了 DNAT 规则,稍微傻了点,只能说凑活着用
smileawei
7 天前
PVE 的网络 新建一个网络 选择一个物理网卡 进行桥接。这样和 PVE 宿主机的网卡就在一个二层了。
blackeeper
7 天前
你这个其实是要去除 DNAT ,把 192.168.0.0/16 作为独立的 VM 网段,只需要在路由器上加一条静态路由把去往 192.168.0.0/16 的网络下一跳是这个 PVE IP ,然后 PVE 上把 nat 网络改为 host-only 模式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1109247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX