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