iptables大量挿入ipアドレスを含むルール性能最適化

687 ワード

iptablesがipアドレスを含むルールを大量に挿入すると、iptablesの性能が悪くなり、ipset(ipセット)の使用が考えられる.
#!/bin/sh

prepare_net_kill_ipts() {
	ipset -! create apple_domains hash:ip netmask 24
	domains="itunes.apple.com init.itunes.apple.com s.mzstatic.com p49-buy.itunes.apple.com"
	for d in $domains; do
		ips=$(resolveip $d)
		for i in $ips; do
			ipset -! add apple_domains $i
		done
	done
}

if [ $# -lt 1 ]; then
	echo "Specify command: //"
	exit 1
fi
cmd=$1

case $cmd in
	prepare)
		prepare_net_kill_ipts
		;;
	enable)
		prepare_net_kill_ipts
		;;
	disable)
		;;
	*)
		echo "Invalid command."
		exit 1
		;;
esac