Вообщем проблема такая компьютер - шлюз на нем стот UTM5 + dynashape, к ниму подключены 2 adsl модема (на обоих провайдер Домолинк). Проблема в том что, через некоторое время перестает работать интернет у людей... Тоесть пинг проходит а страницы не открываются (грешил на dns, но дело не в нем). Ниже приведу систему. Почитав инет думал что парит мозг сетевуха марвел, стоял драйвер sky2, поставил дравишки sk98lin вроде бы как ситуация изменилась, но через пару часов снова этиже симптомы, погуглив еще нашел проблему в значение mtu в настройке pppoe (подключаются модемы на mtu 1492, менял на 1400, 1420, 1450 - ситуация не изменилась)
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 интел сетевухи.