From: Alistair Tonner <Alistair@nerdnet.ca>
To: netfilter@lists.netfilter.org
Subject: Re: Accounting for national/international traffic
Date: Tue, 21 Dec 2004 13:33:00 -0500 [thread overview]
Message-ID: <200412211333.00841.Alistair@nerdnet.ca> (raw)
In-Reply-To: <20041221085518.92203.qmail@web42105.mail.yahoo.com>
On December 21, 2004 03:55 am, Jean Hoderd wrote:
> Hi,
>
> Here's the situation: in many countries it is customary for IPS's to
> have separate quotas for national/international traffic (in my case the
> limits are 20GB/2GB per month).
>
> Now, given an IP address, knowing whether it is national or
> international is a solved problem: there are publicly available lists
> with the ranges of national IP addresses.
>
> The problem: how to keep track of the monthly internet usage divided
> into national/international traffic.
>
> Please note that I am not interested in enforcing quotas per se (the
> "quota" module, I believe). Rather, I would simply like to know what
> is the total traffic per category since the beginning of the month.
>
> I have searched netfilter's repository, and it seems that the
> ipt_account module might do the trick. However, since I am still a
> newbie with netfilter, I am having some trouble defining the actual
> rules to make it work. Let us imagine, for instance, that I have n
> ranges of national IP addresses. Adding them to a "national" counter
> seems easy:
>
> iptables -A INPUT -m account --addr "range1" --aname national
> iptables -A INPUT -m account --addr "range2" --aname national
> ...
> iptables -A INPUT -m account --addr "rangen" --aname national
>
> The question is: how do I implement the logic for all non-matching
> ranges, which should be added to an "international" counter?
> Furthermore, I have already plenty of rules in my firewall, and I wish
> that the traffic accounting would not interfere with them.
You want to have two user chains to do this.
create the 'accounting' chain in which you will account the packets with the
rules you've given, and *AFTER* each accounting rule put a matching rule that
RETURNS the packets to the calling chain. At the end of the 'accounting'
chain add one rule to an 'international' chain that accounts for all non
returned packets. At the end of the 'international chain the packets will
return to the 'accounting' chain and since they are already on the end of
that they will RETURN to the calling chain.
iptables -A accounting -m account --addr 'range1' --aname national
iptables -A accounting -d range1 -j RETURN
iptables -A accounting -m account --addr 'range2' --aname national
iptables -A accounting -d range2 -j RETURN
iptables-A accounting -j international
iptables -A international -m account --aname international
Alistair Tonner
>
> Thanks in advance for any help you can give me!
> Regards,
> Jean
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Send a seasonal email greeting and help others. Do good.
> http://celebrity.mail.yahoo.com
next prev parent reply other threads:[~2004-12-21 18:33 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-21 8:55 Accounting for national/international traffic Jean Hoderd
2004-12-21 18:33 ` Alistair Tonner [this message]
2004-12-21 22:36 ` George Alexandru Dragoi
2004-12-22 8:24 ` Jean Hoderd
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=200412211333.00841.Alistair@nerdnet.ca \
--to=alistair@nerdnet.ca \
--cc=netfilter@lists.netfilter.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.