[LARTC] Multiple Default Gateways

Linux Advanced Routing and Traffic Control

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

 



Is there an easy way to get certain types of traffic (e.g. sport 25) to 
be routed over a certain ADSL connection?

I'm currently able to get all Proxy browsing to go via the ADSL 
connection by replacing the tcp_outgoing_address and 
udp_outgoing_address in squid.conf with the ADSL's current IP and 
restarting the proxy server...

I would really like to be able to make certain types of traffic to go 
via different links...


Current Setup:

   196.38.143.32/28                 165.165.?.?
eth1 (ISP Diginet Link)     eth2 PPPoE ADSL (Dynamic IP)
         |                           |
         |196.38.143.34            $4|
      +---------------------------------+
      |           Linux 7.2 Router      |
      +---------------------------------+
         |192.168.0.1
         |
eth0 (Local Network)
  192.168.0.0/24

Default Gateway is 196.38.143.34 (Diginet Router)


ip-up.local Script:

case $6 in
	out)
	# ADSL Internet Access
		/sbin/iptables -F special
		/sbin/iptables -A special -i $1 -d $4/32 -p tcp --dport 22 
--syn -j ACCEPT
		/sbin/iptables -A special -i $1 -d $4/32 -p tcp --dport 23 
--syn -j ACCEPT

		ip rule add from $4/32 table ADSL
		# Is there a way to flush all rules referring to the ADSL 
table?
		ip route del default table ADSL
		ip route add default via $5 dev $1 table ADSL
		ip route flush cache

		cd /etc/squid
		cp -f squid.conf.syrex squid.conf
		TEMP=$4
		export TEMP
		find . -name squid.conf -type f -print | xargs perl -i -pe 
's/ADSL-IP/$ENV{'TEMP'}/g';
		/etc/rc.d/init.d/squid restart

		tc qdisc del dev $1 root 2> /dev/null > /dev/null
		tc qdisc del dev $1 ingress 2> /dev/null > /dev/null
		tc qdisc add dev $1 root handle 1: cbq bandwidth 100mbit avpkt 
1000 cell 8
		tc class add dev $1 parent 1: classid 1:1 cbq rate 260kbit 
weight 26kbit allot 1514 cell 8 prio 5 avpkt 1000 bounded isolated
		tc class add dev $1 parent 1:1 classid 1:10 cbq rate 260kbit 
weight 26kbit allot 1514 cell 8 prio 1 avpkt 1000
		tc class add dev $1 parent 1:1 classid 1:20 cbq rate 234kbit 
weight 23.4kbit allot 1514 cell 8 prio 2 avpkt 1000
		tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10
		tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10
		tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match 
ip tos 0x10 0xff  flowid 1:10
		tc filter add dev $1 parent 1:0 protocol ip prio 11 u32 match 
ip protocol 1 0xff flowid 1:10
		tc filter add dev $1 parent 1: protocol ip prio 12 u32 \
			match ip protocol 6 0xff \
			match u8 0x05 0x0f at 0 \
			match u16 0x0000 0xffc0 at 2 \
			match u8 0x10 0xff at 33 \
			flowid 1:10
		tc filter add dev $1 parent 1: protocol ip prio 13 u32 match 
ip dst 0.0.0.0/0 flowid 1:20
	;;
esac


Regards
David Herselman  (Executive Proprietor)  -=*> Syrex Intranets <*=-
 
=- 12 Coronation Road      http://www.syrex.co.za
   Sandhurst               +27-(0)11-883-2246 Voice
   2196                    +27-(0)11-884-7945 Fax



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