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
설정 적용 원리
시스템을 부팅한다.
- init 프로그램이 /etc/sysctl.conf를 불러온다.
- /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 |
|---|