[LARTC] Traffic control + NAT + HTB

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, lart? users!

Can you help me understand hot to make HTB work with NAT in my situation?

 ---------------
| linux         | eth0  -------
| 193.220.70.33 |------|switch |--|cisco|<-->internet
| NAT           |      ---------
-----------------        |
                         |
------------  eth0       |
client1     |-------------
192.168.1.1 |
-------------

Client's(192.168.1.2) default route is to 193.220.70.33

On linux server(193.220.70.33) there is rule:
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT --to 193.220.70.33


As i understand i can control traffic bandwidth going to client1 and from client1 on linux server due to one interface on linux server.(maybe i'm wrong)

On linux server i need to mark packets with iptables and then use fw to put that packets in corresponding class. I'm not sure about hot to do that if i have NAT on linux server eth0. For example:

/usr/local/iproute2/sbin/tc qdisc add dev eth0 root handle 1: htb

/usr/local/iproute2/sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate 32kbit ceil 60Mbit

/usr/local/iproute2/sbin/tc qdisc add dev eth0 parent 1:20 handle 20: sfq

/usr/local/iproute2/sbin/tc filter add dev eth0 parent 1:0 protocol ip handle 1 fw flowid 1:20

/sbin/iptables -t mangle -A POSTROUTING -s 192.168.1.2 -j MARK --set-mark 1


Will be packet with src 192.168.1.2 put into classid 1:20, or for that moment it will be already nated and his source will be 193.220.70.33?


Looking at 'Kernel Packet Traveling Diagram' at docum.org, i may suggest , that it will be marked and put before it will be nated, but if you can give advice about that i will greatly appreciate that.

Thanks a lot for your help.
Bets regards,
Ruslan



[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux