Centos 6.4でKVM VMの作業をしてきましたが、VMにインターネットが接続されていないため、奇妙なことがわかりました。
マシンを起動した後、iptablesはFORWARDチェーンにルールを適用し、トラフィックが仮想マシンを通過できるようにし、すべてが正常です。ただし、実行すると(すべての転送拒否のデフォルト設定)から構成ルールがインポートされるようにservice iptables restart
見える/etc/sysconfig/iptables
ため、物理ホストからファイアウォールを完全に削除または再起動して追加するように降格しました。転送ルールが再び機能します。
編集する:
実際、ファイアウォールルールを直接変更してこれを許可することもできますが、これはこの質問の要点ではありません。私は質問#1についてもっと興味があります。
私の質問は次のとおりです
- これらのFORWARDルールはいつ(またはどのメカニズムによって)追加されますか?
- コンピュータを再起動せずにFORWARDルールを復元するにはどうすればよいですか?
正直言って、私はこの問題をどこから見つけなければならないのかわかりません。私が見つけたこのページ/etc/sysctl.conf
netfilterがブリッジ接続トラフィックを無視するようにする次の変数を変更するように求められます。
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
問題は、私がsysctl.conf
このように設定されているのですが、netfilterがまだ私の役割を果たしながら仮想マシンのすべてをブロックすることです。
答え1
KVM自体は、VMを実行する以外は何もしません。 iptablesルールはlibvirt(またはハードコアおよび手動操作を実行する場合はqemu-ifupスクリプト)によって作成されます。
それにもかかわらず、iptablesの複雑さを避けるために、NAT構成で仮想マシンを使用せず、代わりにブリッジまたはOVSを使用してください。