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