是时候用新服务器替换旧服务器了。在旧服务器中,一切都设置在裸机上。使用新服务器,我尝试为特定任务设置虚拟服务器。
主机操作系统是 Debian 9。来宾我将在 HVM 模式下运行(也是 Debian)。计划的服务器是:MySql、电子邮件(postfix、curys、垃圾邮件过滤器和所有与电子邮件相关的)、Web 服务器(nginx+php)、Web 代理(SSL 终结器)
但问题是关于网络的。我不希望客人从外面可见并且他们没有公共 IP。但每位客人都必须见到其他客人。
我创建了两个桥梁。hostbr0
和xenbr0
。在hostbr0
我添加的物理接口eno1
中,女巫有一个静态 IP(公共)。在xenbr0
我添加vdum1
的界面。
vdum1
是与模块的虚拟接口dummy
,IP = 192.168.1.1。所有客人的 IP 地址都来自 192.168.1.0 子网。所以所有客人都在一个网络中。
如何配置 iptables,让客人可以上网?我不是要求确切的命令,而是要求指示。我需要设置伪装吗?那么女巫界面必须伪装?是否可以在网桥之间设置转发?
我已经尝试过伪装展位桥和接口,但我无法从访客操作系统访问互联网。
我还想控制访客对互联网的访问。例如,mysql guest 根本不需要互联网(通常)。
在主机操作系统上,我将使用shorewall
.
在主机操作系统上,您在 IPTables 上添加一条规则,该规则对从内部来宾传入和传出的数据包执行 SNAT。
在 Shorewall 中,条目如下所示
/etc/shorewall/masq
:这里,
eth0
是连接到互联网的接口。192.168.10.1
是您要 NAT 的访客 IP 地址。10.10.10.10
是 SNAT 后数据包将收到的 IP 地址(通常与主机操作系统的公共 IP 地址相同)。