Linux

nftables 사용 이유

스카이데이즈 2025. 12. 11. 15:09
728x90

Linux에서 iptables와 ebtables에서 nftables로 대체 되고 있는데,  iptables와 ebtables를 nftables로 대체할 때 얻는 주요 이점은 다음과 같다


1. 통합된 프레임워크

  • iptables, ip6tables, ebtables, arptables는 각각 IPv4, IPv6, Ethernet, ARP에 대해 별도의 명령어 및 테이블을 사용합니다.
  • nftables는 하나의 프레임워크로 모두 통합되어 있어 복잡성을 줄이고 관리가 쉬워집니다.
    • 예: 하나의 규칙 세트로 IPv4, IPv6, L2 트래픽 모두 처리 가능

2. 향상된 성능

  • nftables는 BPF (Berkeley Packet Filter) 기반 내부 구조와 JIT(Just-In-Time) 컴파일을 통해 더 빠른 패킷 처리 가능
  • 규칙이 많아질수록 성능 차이가 더 뚜렷해짐

3. 간결하고 유연한 문법

  • iptables보다 더 직관적이고 구조화된 구성 가능
  • 하나의 규칙에서 여러 조건 또는 액션 처리 가능
ip protocol tcp tcp dport { 22, 80, 443 } accept

위와 같이 다중 포트 허용을 한 줄로 표현 가능 (iptables에선 여러 줄 필요)


상태 기반 필터링 및 매크로 지원

  • conntrack 상태 추적을 기본으로 내장
  • 다양한 프로토콜 추상화 및 alias 사용 가능 (ip, ip6, ether, inet 등)

동적 세트(set) 및 맵(map) 지원

  • IP 주소, 포트 등을 집합으로 관리하여 규칙을 더 유연하게 구성 가능
  • 예: 특정 IP 집합을 블랙리스트/화이트리스트로 관리

단일 백엔드 관리

  • 커널 내에서는 nftables가 Netfilter 프레임워크를 직접 제어
  • 과거의 iptables 명령어는 iptables-nft라는 호환 모드로 동작함

로깅 및 디버깅 기능 향상

  • log 액션에 다양한 옵션 사용 가능 (예: log prefix, group, level)
  • monitor 명령어로 실시간 규칙 동작 확인 가능

향후 유지보수 및 커뮤니티 지원

  • iptables, ebtables는 기능 업데이트 중단 예정 또는 제한적 유지보수
  • nftables는 현재 Netfilter 프로젝트의 주요 구성 요소로 활발한 개발 중

마이그레이션 팁:

  • iptables-translate 명령어로 기존 규칙을 nftables 문법으로 변환 가능
iptables-translate -A INPUT -p tcp --dport 22 -j ACCEPT

요약 표

기능 iptables/ebtables nftables

프레임워크 통합
성능 (규칙 수 증가시) 낮음 높음
문법 간결성 복잡 간결
상태 추적 외부 conntrack 필요 기본 내장
집합/맵 지원 제한적 강력 지원
미래 지원 점차 종료 지속 개발 중
728x90