wis*_*shi 11 networking iptables linux-kvm
我有一个专用的 Linux (Debian 7.5) 根服务器,并设置了许多来宾服务器。来宾是 KVM 实例,并通过桥接工具(NAT、内部 IP、使用主机作为网关)获得网络访问权限。
例如,一个 KVM 是我的 WebServer 来宾,它可以通过主机 IP 以这种方式访问:
iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z
--dport 80 -j DNAT --to-destination 192.168.100.X:80
Run Code Online (Sandbox Code Playgroud)
我对其他服务也做同样的事情,让它们保持独立、NATed 和隔离。
但是一个来宾应该是网络监视器,并且应该执行网络流量检查(如 IDS)。通常,在非虚拟设置中,我会使用 VACL 或 SPAN 端口来镜像流量。当然,在这台主机中,我不能这样做(很容易,因为我不想使用复杂的虚拟交换方法)。
vnet1.vnet1作为管理接口(带有 IP)时,来宾是否需要特定的接口设置?我很高兴能指出正确的方向:
iptables 1.4.14-3.1
linux 3.2.55
bridge-utils 1.5-6
Run Code Online (Sandbox Code Playgroud)
非常感谢 :)
Pat*_*Pat 15
通过以下方式在根服务器预路由模块 Mangle 表规则之前添加:
iptables -I PREROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee
Run Code Online (Sandbox Code Playgroud)
然后通过类似的方式在路由后模块 Mangle 表规则之前添加
iptables -I POSTROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee
Run Code Online (Sandbox Code Playgroud)
其中 192.168.200.1 是网络监视器。
这些规则将镜像所有传入和传出流量,将其转发到 192.168.200.1
编辑:
mangle table specific
-j ROUTE (explicitly route packets, valid at PREROUTING)
options:
--iface <iface_name>
--ifindex <iface_idx>
Run Code Online (Sandbox Code Playgroud)
但你也可以使用类似的东西
iptables -I PREROUTING –t mangle –i eth0 –j TEE –gateway 192.168.200.1
Run Code Online (Sandbox Code Playgroud)
和
iptables -I POSTROUTING –t mangle –j TEE –gateway 192.168.200.1
Run Code Online (Sandbox Code Playgroud)
这里TEE现在是一个目标,其在PREROUTING需要更多的像IE选项-i,-p等