본문 바로가기

nftables

순식간에 많은 룰 변경 / Atomic rule replacement

source: https://wiki.nftables.org/wiki-nftables/index.php/Atomic_rule_replacement

 

이전 글: 룰 설정 / Simple rule management

다음 글: 명령어에서 오류 출력

 

iptables에서는 bash script를 이용해 rule을 하나하나 추가하는 것이 일반적입니다. 그런데 대량의 rule을 추가해 나간다면, 어느 한 순간에 보면, 의도하는 완전한 상태가 아니라 부분만 완성된 상태입니다. 반면 nftables에서는 새로운 rule을 메모리에 모두 올리고, 한 순간에 rule을 모두 적용하는 수단을 제공합니다. 따라서 이것을 Atomic rule replacement 라고 합니다. 

 

nft -f를 이용합니다. 형태는 아래와 같습니다. 

% nft -f file

아래는 설정을 가진 파일 ip-filter-new를 읽어와 한 순간에 적용하는 예입니다. 

salsal@r3:~$ sudo nft list ruleset
table ip filter {
	chain output {
		type filter hook output priority 0; policy accept;
		ip daddr 7.7.7.7 counter packets 0 bytes 0
		ip daddr 6.6.6.6 counter packets 0 bytes 0
		ip daddr 9.9.9.9 counter packets 0 bytes 0
	}
}
salsal@r3:~$ vi ip-filter-new
salsal@r3:~$ cat ip-filter-new
# flush ruleset을 이용해 table, chain, rule을 모두 지웁니다. 
flush ruleset

# 새로운 table, chain, rule을 생성합니다. 
table ip filter {
	chain output {
		type filter hook output priority 0; policy accept;
		ip daddr 17.7.7.7 counter packets 0 bytes 0
		ip daddr 16.6.6.6 counter packets 0 bytes 0
		ip daddr 19.9.9.9 counter packets 0 bytes 0
	}
}

salsal@r3:~$ sudo nft -f ip-filter-new
salsal@r3:~$ sudo nft list ruleset
table ip filter {
	chain output {
		type filter hook output priority 0; policy accept;
		ip daddr 17.7.7.7 counter packets 0 bytes 0
		ip daddr 16.6.6.6 counter packets 0 bytes 0
		ip daddr 19.9.9.9 counter packets 0 bytes 0
	}
}

 

이전 글: 룰 설정 / Simple rule management

다음 글: 명령어에서 오류 출력

 

'nftables' 카테고리의 다른 글

룰 표현 / Building rules through expressions  (0) 2021.08.06
명령어에서 오류 출력  (0) 2021.08.06
룰 설정 / Simple rule management  (0) 2021.08.05
체인 설정 / Configuring chains  (0) 2021.08.05
Ubuntu nftables 설치  (0) 2021.08.05