-
1. nftables 뼈대를 알아보자 [nftables]개발공부/네트워크 2025. 12. 5. 14:49

바로 리눅스 cli로 들어가봅시다
모든 설정, 환경은 우분투 기준으로 설명할거에요
설치하기
일단 nftables 를 설치를 해야겠죠?
sudo apt update sudo apt install nftables잘 설치됐는지 확인은
nft --version 으로 확인해주세요!

저는 1.0.9 버전으로 나오네요 명령어 알아보기
대략적으로만 정리했어요
자세한 내용은 자세히 알아 볼 때 작성하도록 하겠습니다.
조회(단일) nft list ...
(ex)
1. ip_filter 테이블 아래의 chain_name 체인 조회
nft list chain ip ip_filter chain_name
2. ip_filter 테이블 조회
nft list table ip ip_filter조회(모두) 1. 테이블 모두 조회
nft list tables
2. 체인 모두 조회
nft list chians
3. rule까지 모두 조회
nft list ruleset조회 (핸들 포함) nft -a list ... 추가(아래) nft add ... 추가(위에) nft insert ... 삭제 nft delete rule ip ip_filter chain_name handle "핸들번호" 다 삭제 nft flush ruleset
(nft flush ip ip_filter chain_name 이런식으로 원하는 체인만 삭제도 가능해요)nftables 의 명령어는 'nft' .... 으로 시작합니다.
구조를 알아보기
nftables 는 크게 4개의 구조로 나누어져 있습니다
Fmaily
table
chain
rule
이렇게 되어있어요 (아래 그림참고)
Family1 +-----------------------------------------------------------------------+ | TABLE (테이블) | | | | +---------------------------------------------------------------+ | | | CHAIN A (체인 - Base Chain) | | | | | | | | [ Rule 1 ] --------------------------------------------- | | | | -------------------------------------------------------- | | | | [ Rule 2 ] --------------------------------------------- | | | | -------------------------------------------------------- | | | | [ Rule 3 ] --------------------------------------------- | | | | -------------------------------------------------------- | | | +---------------------------------------------------------------+ | | | | +---------------------------------------------------------------+ | | | CHAIN B (체인 - Regular Chain) | | | | | | | | [ Rule 1 ] ... | | | +---------------------------------------------------------------+ | +-----------------------------------------------------------------------+ Family21. Family
- l3 중 ipv4, ipv6 중 뭘 쓸지 아니면 l2를 사용할지 를 나누는 큰 카테고리에요
- 따로 family 만 조회하는 명령어는 없습니다. (3개 끝이어서 그런가..?)
- 보통 이름은 ip (버전4) ip6 (버전6) inet(버전4랑6 둘다) arp bridge 이런식으로 씁니다
2. tables
- 목적에 따라 나누어놓은 제일 큰 분류에요
- 보통 filter, mangle, nat 이렇게 3개가 있습니다.
- table 추가 가능해요 : nft add ip new_table
- table 조회 가능해요 : nft list table

좌 : family, 우 : table 3. Chain
- 테이블 아래 구조에 있는 구조에요
- 두 종류가 있어요
-- 커널 '훅' 이 있는 base chain
-- 사용자가 만든 chain (jump로 호출해서 쓰는 chain) --> 자세한 내용은 나중에 따로 다루겠습니다!
- 여기서 policy, flow 를 컨트롤해요 base체인의 이름을 netfilter 그림에 매칭시켜서 보시면 이해가 되실겁니다!

(넷 필터 그림)(참고용) 4. rule
- 실제 패킷의 로직을 처리하는 부분이에요
여기서 말씀드린 '구조' 순서대로 다음글을 진행해 보려 합니다!
혹시 이해 안되거나 틀린 내용이 있다면 댓글 부탁드려요!
'개발공부 > 네트워크' 카테고리의 다른 글
2. family, table에 대해서 알아보자 [nftables] (0) 2025.12.07 0. 개요 nftables가 뭐죠 [nftables] (0) 2025.11.30 프록시 (0) 2025.07.06 NAT-1 (0) 2025.01.05 포트포워딩 (1) 2024.10.27