Iptables
使用 nat 進行 libvirt 和網路過濾 - iptables 覆蓋
首先,我想說:我知道,最初做錯了,我想避免因為一般停機時間而從頭開始做所有事情。
我在 RHEL 上執行 libvirt/KVM。我有使用 NAT 網路配置文件(預設配置文件)執行的 VM。我已經通過 sysconfig/iptables 從主機設置了埠轉發等,一切都很好。
但是,如果 libvird 守護程序由於某種內部原因重新載入,或者接收
SIGHUP
- 它重新載入 iptables 配置並從其過濾配置文件中添加規則,即一切都按設計和記錄的方式工作(libvirt 和防火牆+ libvirt nwfilter 文件) - SW 沒有問題,這是配置問題。但是一些規則
REJECT
在我需要它之前引入了 s,我無法通過轉發埠連接到機器,如下所示:執行後
service iptables restart
- 一切都會像以前一樣工作。有沒有辦法強制 libvirt 改變這兩個的順序或禁用這些特定的?
也許有人面臨完全相同的問題並準備好答案。
謝謝
您可以創建自己的 NAT 網路,這意味著 libvirt 不會添加任何防火牆規則。請參閱此libvirt Networking Handbook上的Custom NAT-based Network。
我感覺到你的痛苦。我真的希望 libvirt 能更好地支持這一點。
創建一個腳本,在您的訪客上應用埠轉發防火牆規則。請務必使用
iptables -I
,以便在 libvirt 的 REJECT 規則之前插入您的規則。每次 libvirt 啟動或重新載入時,您都需要使用掛鉤來執行該腳本。
此外,您應該確保 libvirt 和埠轉發的規則沒有保存在*/etc/sysconfig/iptables*中。讓 libvirt 和你的鉤子設置它們。