Kvm-Virtualization
帶有 Tap 介面的 QEMU VM 可以看到所有包來自管理程序而不是真實源 IP
我已經使用 Alpine Linux 設置了一個非常簡單的 Hypervisor,我的 VM 看到所有流量都來自 hypervisor 的 IP。
這也意味著如果 fail2ban 試圖阻止攻擊,它總是會阻止虛擬機管理程序 IP
如何讓 VM 看到真實的 IP 地址,而不僅僅是管理程序的 IP?
介面設置
在 HV (
192.168.5.5
) 上,我有一個br0
工作正常的橋接介面# tun1 setup script on Hypervisor iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE iptables -P FORWARD ACCEPT ip tuntap add dev tap1 mode tap user root ip link set dev tap1 up ip link set tap1 master br0 qemu-system-x86_64 [..non related parameters removed ..] \ -device virtio-net-pci,netdev=network0,mac=02:1f:ba:26:d7:56 \ -netdev tap,id=network0,ifname=tap1,script=no,downscript=no
VM 可以訪問 Internet,但它看到的所有流量都來自管理程序的 IP。
虛擬機只看到 HV IP
原因是後路由 iptable 規則。
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
使用命令刪除後,iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE
它可以工作。