본문 바로가기

KVM Netfilter 설정

KVM Machine Netfilter 추가 설정

KVM 머신이 외부와 통신을 하는 상황에서, Bridge 설정 및 포트포워딩을 완료해도 불안정한 상황이 발생하였다.

이미 Host 측에서 Netfilter를 비활성화하였으나, 간헐적으로 통신이 안되는 상황이 발생하였기에 VM 측의 Netfilter를 점검했다.

VM의 Bridge Netfilter 비활성화

점검 결과는 다음과 같았다.

$ cat /proc/sys/net/bridge/bridge-nf-call-arptables
1
$ cat /proc/sys/net/bridge/bridge-nf-call-iptables
1
$ cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
1

값이 1이면 netfilter가 활성화 상태이다.

 

KVM Bridge에서 netfilter를 비활성화하고 런타임을 변경한다.

echo 0 | sudo tee /proc/sys/net/bridge/bridge-nf-call-arptables
echo 0 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 | sudo tee /proc/sys/net/bridge/bridge-nf-call-ip6tables

머신이 재부팅되면 /proc/sys/ 내의 설정이 초기화되므로, /etc/sysctl.conf에 영구 설정을 추가한다.

sudo tee -a /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

설정을 다시 로드한다.

sudo sysctl -p /etc/sysctl.conf

설정 적용 원리

시스템을 부팅한다.

  1. init 프로그램이 /etc/sysctl.conf를 불러온다.
  2. /etc/rc.d/rc.sysinit 스크립트가 sysctl을 실행하여 설정을 적용한다.

결과

그래도 SpringBoot의 간헐적 통신 불가능 문제는 바뀌지 않았다.

참고 문헌


KVM Machine Netfilter 추가 설정 2

Host의 브릿지 넷필터를 비활성화 한다.

브릿지 넷필터 비활성화

/etc/sysctl.d/bridge-filter.conf로 저장한다.

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

/etc/udev/rules.d/99-bridge-filter.rules로 저장한다.

ACTION=="add", SUBSYSTEM=="module", KERNEL=="br_netfilter", RUN+="/sbin/sysctl -p /etc/sysctl.d/bridge-filter.conf"

netfilter 모듈이 적재될 때 자동으로 위의 sysctl 설정을 적용하는 udev 규칙이다.

참고 문헌

'인프라 > KVM(Hypervisor Type1.5)' 카테고리의 다른 글

KVM Hypervisor Type 1.5에서 VM 관리  (0) 2026.03.28
NORMAL j/k: 이동 · Enter: 열기 · /: 검색 · ?: 도움말