From: Mr Dash Four <mr.dash.four@googlemail.com>
To: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Cc: Netfilter Developer Mailing List <netfilter-devel@vger.kernel.org>
Subject: Re: ipset v5.0-pre10
Date: Wed, 15 Dec 2010 23:46:34 +0000 [thread overview]
Message-ID: <4D09535A.7090006@googlemail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1012152121160.5033@blackhole.kfki.hu>
> I don't completely understand you: the bitmap:port type already supports
> adding/deleting port ranges. Could you write a full example?
>
OK, here goes (*full* example using bash script):- Suppose that I need
to define a pair of IP subnets with two range of ports -
223.240.0.0/13:1-1024 and 223.248.13.0/24:8000-16000 - and include them
in one set. In 4.x that will only be possible by using the following
shell script (9 subsets as 4.x ipporthash construct accepts only /16
subnets):
=======4.x===============
#!/bin/sh
cn_base_set='blacklisted-cn-240-special'
# initialise the new sets
for (( _i=0; _i < 8; _i++ )); do
# - split in 8 subsets as 4.x can't have more than /16 (B-class) subnets
in ipporthash constructs
ipset -N $cn_base_set$_i ipporthash --network 223.24$_i.0.0/16
done
ipset -N blacklisted-cn-248-selected ipporthash --network 223.248.13.0/24
for (( _i=1; _i <= 1024; _i++ )); do
# 1'st loop - low port ranges
for (( _j=0; _j < 8; _j++ )); do
# 2nd loop -24x /16 subnets
ipset -A blacklisted-cn-240-special$_j 223.24$_j.0.0/16,$_i
done
done
for (( _i=8000; _i <= 16000; _i++ )); do
# 2nd set - selected (8k-16k) port ranges
ipset -A blacklisted-cn-248-selected 223.248.13.0/24,$_i
done
=========================
The above script will create 9 sets of type ipporthash:
blacklisted-cn-240-special0 ... blacklisted-cn-240-special7 and
blacklisted-cn-248-selected and then add the port ranges in the
following manner:
ipset -A blacklisted-cn-240-special0 223.240.0.0/16,1
ipset -A blacklisted-cn-240-special1 223.241.0.0/16,1
...
ipset -A blacklisted-cn-240-special7 223.247.0.0/16,1
...
...
ipset -A blacklisted-cn-240-special7 223.247.0.0/16,1024
and then (last loop):
ipset -A blacklisted-cn-248-selected 223.248.13.0/24,8000
ipset -A blacklisted-cn-248-selected 223.248.13.0/24,8001
...
ipset -A blacklisted-cn-248-selected 223.248.13.0/24,16000
In 5.x-pre10 the above job would be a bit easier as I understand there
is no limit on the size of the network (i.e. I am no longer constrained
by B-class subnet):
=======5.x-pre10===============
#!/bin/sh
# initialise the new combined set
ipset -N blacklisted-cn-combined hash:ip,port
for (( _i=1; _i <= 1024; _i++ )); do
# 1'st loop - low port ranges
ipset add blacklisted-cn-combined 223.240.0.0/13,$_i
done
for (( _i=8000; _i <= 16000; _i++ )); do
# 2nd set - selected (8k-16k) port ranges
ipset add blacklisted-cn-combined 223.248.13.0/24,$_i
done
=========================
The above scripts will execute at least 9024 "ipset -A/add" statements!
It would be more convenient if I could do this in 5.x:
ipset -N blacklisted-cn-combined hash:ip,port
ipset -A blacklisted-cn-combined 223.240.0.0/13,1-1024
ipset -A blacklisted-cn-combined 223.248.13.0/24,8000-16000
Just 3 statements - much simpler and I won't bother with any loops!
prev parent reply other threads:[~2010-12-15 23:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-15 14:28 ipset v5.0-pre10 Mr Dash Four
2010-12-15 20:23 ` Jozsef Kadlecsik
2010-12-15 23:46 ` Mr Dash Four [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D09535A.7090006@googlemail.com \
--to=mr.dash.four@googlemail.com \
--cc=kadlec@blackhole.kfki.hu \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.