eth1 - подключена сеть eth2 - подключен 1 adsl eth3 - подключен 2 adsl
Centos 5.3 Linux 2.6.18-128.7.1.el5PAE #1 SMP Mon Aug 24 08:59:38 EDT 2009 i686 i686 i386 GNU/Linux
eth0: Yukon Gigabit Ethernet 10/100/1000Base-T Adapter e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection eth2: RTL8169sb/8110sb at 0xf8804c00, 00:0c:76:3c:09:bb, XID 10000000 IRQ 209 e1000: eth1: e1000_watchdog_task: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX r8169: eth2: link up eth3: -- INFORMATION -- eth3: network connection up using port A e1000: eth1: e1000_watchdog_task: NIC Link is Down e1000: eth1: e1000_watchdog_task: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX e1000: eth1: e1000_set_tso: TSO is Disabled
Скрипты при загрузке системы:
---Шейпер--- #!/bin/sh # Shaper off /sbin/tc qdisc del dev eth1 root /sbin/tc qdisc del dev ppp0 root /sbin/tc qdisc del dev ppp1 root /sbin/iptables -F POSTROUTING -t mangle /sbin/iptables -F PREROUTING -t mangle
# Shaper on /sbin/tc qdisc add dev eth1 root handle 1: htb r2q 5 /sbin/tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit /sbin/tc qdisc add dev ppp0 root handle 1: htb r2q 5 /sbin/tc class add dev ppp0 parent 1: classid 1:1 htb rate 100mbit /sbin/tc qdisc add dev ppp1 root handle 1: htb r2q 5 /sbin/tc class add dev ppp1 parent 1: classid 1:1 htb rate 100mbit
# UTM5 Shaper /netup/utm5/bin/utm5_dynashape -i
--Балансировка-- #!/bin/bash # Network IFIN=eth1 IFOUT1=ppp0 IFOUT2=ppp1 LOCALNET=192.168.0.0/24 # Table TABLE1=ppp0 TABLE2=ppp1 # Info network IPIN=`ifconfig ${IFIN}|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2` IPOUT1=`ifconfig ${IFOUT1}|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2` GW1=`ifconfig ${IFOUT1}|grep "inet addr"|awk '{print $3}'|cut -d ':' -f 2` IPOUT2=`ifconfig ${IFOUT2}|grep "inet addr"|awk '{print $2}'|cut -d ':' -f 2` GW2=`ifconfig ${IFOUT2}|grep "inet addr"|awk '{print $3}'|cut -d ':' -f 2` # Del iproute # GW /sbin/route del default &> /dev/null # Rule /sbin/ip route del ${LOCALNET} via ${IPIN} table ${TABLE1} &> /dev/null /sbin/ip route del ${LOCALNET} via ${IPIN} table ${TABLE2} &> /dev/null /sbin/ip route del 127.0.0.0/8 dev lo table ${TABLE1} &> /dev/null /sbin/ip route del 127.0.0.0/8 dev lo table ${TABLE2} &> /dev/null /sbin/ip route del 0/0 via ${GW1} table ${TABLE1} &> /dev/null /sbin/ip route del 0/0 via ${GW2} table ${TABLE2} &> /dev/null # Rule #2 /sbin/ip rule del from ${IPOUT1} lookup ${TABLE1} /sbin/ip rule del from ${IPOUT2} lookup ${TABLE2} # Add # Rule /sbin/ip route add ${LOCALNET} via ${IPIN} table ${TABLE1} &> /dev/null /sbin/ip route add ${LOCALNET} via ${IPIN} table ${TABLE2} &> /dev/null /sbin/ip route add 127.0.0.0/8 dev lo table ${TABLE1} &> /dev/null /sbin/ip route add 127.0.0.0/8 dev lo table ${TABLE2} &> /dev/null /sbin/ip route add 0/0 via ${GW1} table ${TABLE1} &> /dev/null /sbin/ip route add 0/0 via ${GW2} table ${TABLE2} &> /dev/null # Rule #2 /sbin/ip rule add from ${IPOUT1} lookup ${TABLE1} /sbin/ip rule add from ${IPOUT2} lookup ${TABLE2} # Balance /sbin/ip route add default scope global nexthop via *,*,*,* dev ppp0 weight 1 nexthop via *,*,*,* dev ppp1 weight 1 &> /dev/null #On /sbin/ip route flush cache
--Собственно сами правила шейпера-- #!/bin/bash if="eth1" af="ppp0" gf="ppp1" echo $* echo "First create: tc qdisc add dev $if root handle 1: htb" echo "First create: tc qdisc add dev $af root handle 1: htb" echo "First create: tc qdisc add dev $gf root handle 1: htb" case "$7" in 1) iptables -t mangle -A POSTROUTING -d $2/$3 -j MARK --set-mark $1 iptables -t mangle -A PREROUTING -s $2/$3 -j MARK --set-mark $1 tc class add dev $if parent 1:1 classid 1:$1 htb rate $5kbit tc qdisc add dev $if parent 1:$1 handle $1 sfq perturb 10 tc filter add dev $if parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 tc class add dev $af parent 1:1 classid 1:$1 htb rate $5kbit tc qdisc add dev $af parent 1:$1 handle $1 sfq perturb 10 tc filter add dev $af parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 tc class add dev $gf parent 1:1 classid 1:$1 htb rate $5kbit tc qdisc add dev $gf parent 1:$1 handle $1 sfq perturb 10 tc filter add dev $gf parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 ;; 0) iptables -t mangle -D POSTROUTING -d $2/$3 -j MARK --set-mark $1 iptables -t mangle -D PREROUTING -s $2/$3 -j MARK --set-mark $1 tc filter del dev $if parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 tc qdisc del dev $if parent 1:$1 handle $1 tc class del dev $if parent 1:1 classid 1:$1 tc filter del dev $af parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 tc qdisc del dev $af parent 1:$1 handle $1 tc class del dev $af parent 1:1 classid 1:$1 tc filter del dev $gf parent 1:0 protocol ip prio 3 handle $1 fw classid 1:$1 tc qdisc del dev $gf parent 1:$1 handle $1 tc class del dev $gf parent 1:1 classid 1:$1 ;; 2) ;; 3) tc class change dev $if parent 1:1 classid 1:$1 htb rate $5kbit tc class change dev $af parent 1:1 classid 1:$1 htb rate $5kbit tc class change dev $gf parent 1:1 classid 1:$1 htb rate $5kbit ;; *) echo "Usage: `basename $0` {ID IP BITMASK MASK SPEED INT_STATUS OPER_STATUS}" >&2 exit 64 ;; esac
Соотвественно люди ходят в интернет через NAT.
Прошу помоши экспертов и знаюших людей, на серваке нет возможности ставить сетевуху, есть в мыслях перенисти на другой комп где стоят 2 реалтек и 2 интел сетевухи.

