All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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.