云网牛站
所在位置:首页 > Linux教程 > Linux中在KVM桥上禁用netfilter的方法

Linux中在KVM桥上禁用netfilter的方法

2019-02-27 22:07:30作者:吴可稿源:云网牛站

KVM服务器Linux网桥出现问题,因为Netfilter阻止了所有流量到VM的流量和流量从VM流出,我只能从虚拟机管理程序处理,在进一步的故障排除中,我注意到问题出在Netfilter过滤流量上,解决这个问题的方法是防止桥接流量被推送到主机的iptables规则。

 

netfilter和iptables简介

netfilter是Linux提供的框架,允许以自定义处理程序的形式实现各种与网络相关的操作。iptables是一种广泛使用的防火墙工具,它与内核的netfilter包过滤框架相连接。

Linux中在KVM桥上禁用netfilter的方法

iptables防火墙通过与Linux内核网络堆栈中的数据包过滤挂钩进行交互来工作,这些kernel hooks称为netfilter框架。

参考:Linux系统管理员要知道的16个iptables使用技巧

 

在KVM桥上禁用netfilter的方法

为了防止桥接流量被推送到主机的iptables规则,需要在/proc/sys/目录中设置kernel settings,这可以是运行时更改或持久性。

要快速概述/proc/sys/目录中可配置的所有设置,请输入以下命令:

# sysctl -a

可以使用sysctl命令代替echo,以将值分配给/proc/sys/目录中的可写文件,因此,让我们在KVM桥上禁用netfilter,对于运行时更改,运行:

# echo 0 > /proc/sys/net/bridge/bridge-nf-call-arptables

# echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables

# echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

请注意,重新启动计算机时,/proc/sys/中的这些特殊设置将丢失,要保留自定义设置,请将它们添加到/etc/sysctl.conf文件中:

# cat >> /etc/sysctl.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 0

net.bridge.bridge-nf-call-iptables = 0

net.bridge.bridge-nf-call-arptables = 0

EOF

# sysctl -p /etc/sysctl.conf

每次系统引导时,init程序都会运行/etc/rc.d/rc.sysinit脚本,该脚本包含使用/etc/sysctl.conf执行sysctl的命令,以确定传递给kernel的值。

如果现在正常工作,请测试你的网桥连接。

 

相关主题

如何在Ubuntu 18.04服务器上安装和配置KVM

精选文章
热门文章