LINUX.ORG.RU
ФорумAdmin

Проблема работы сети!! Прошу помоши знаюших людей!)


0

0

Вообщем проблема такая компьютер - шлюз на нем стот 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 интел сетевухи.


> Проблема в том что, через некоторое время перестает работать интернет у людей... Тоесть пинг проходит а страницы не открываются (грешил на dns, но дело не в нем).

что показывает tcpdump на сервере? а что telnet linux.org.ru 80 на клиенте?

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

Пока сказать не могу.... Полет нормальный, но перед этим добавил в sysctl:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

После непродолжительного поиска нашел форуме (но пока недобавил)

net/ipv4/route/gc_thresh=1048576
net/ipv4/route/secret_interval=8192
net/ipv4/route/gc_interval=86400

Но мне не совсем понятны что они дает, и как вообщем работает кэш маршрутизации в ядре. Обьяните, как учитель первоклашке.

sunsay
() автор топика
Ответ на: комментарий от sunsay

Чтобы немного развееть туман вот полный sysctl мой:

# increase TCP max buffer size
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# network config
net.ipv4.netfilter.ip_conntrack_max = 250000
net.ipv4.ip_forward = 1
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.neigh.default.gc_thresh3 = 20480
net.ipv4.neigh.default.gc_thresh2 = 10240
net.ipv4.neigh.default.gc_thresh1 = 1280

# random
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter=2
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.ip_default_ttl = 128
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2

# block, optimizator
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
# net.ipv4.conf.all.log_martians = 1
# net.ipv4.conf.default.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

sunsay
() автор топика
Ответ на: комментарий от nnz

Скрипты при загрузке системы:

---Шейпер---
#!/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.

sunsay
() автор топика
Ответ на: комментарий от Komintern

Слушай я почитав еще... а не проблема в sysctl, я настраивал его под одно соединения, а шас два соединение с инетом, не могут ли пакеты теряться.

Да и еще пропал опять и нет. Телнет коннектиться, tcpdump молчит, нет активности что на ppp0, ppp1

sunsay
() автор топика
Ответ на: комментарий от sunsay

>Слушай я почитав еще... а не проблема в sysctl, я настраивал его под одно соединения, а шас два соединение с инетом, не могут ли пакеты теряться.

net.ipv4.conf.all.rp_filter=0
Мм?

nnz ★★★★
()
Ответ на: комментарий от nnz

net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0

Шас зделал так, буду смотреть как себя поведет?

И еще вопрос какие опции повысить значение для лучшей работы шлюза и нат, вообщем чтоб больше брал на борт правил?!?

4гб памяти, 2хXeon 2.4ггц по 2 метра кэша

sunsay
() автор топика

Что же касается проблемы MTU/TCPMSS, то ее неплохо было бы добить
iptables -t mangle -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

nnz ★★★★
()
Ответ на: комментарий от sunsay

>И еще вопрос какие опции повысить значение для лучшей работы шлюза и нат, вообщем чтоб больше брал на борт правил?!?

Вот это — точно не ко мне. Как говорил один мой знакомый сотрудник техподдержки, «это вам к другому доктору» :)

nnz ★★★★
()
Ответ на: комментарий от nnz

Ладно, действительно я много хочу... В принципе все это дело ясно, просто в интернете много информации, но каждый источник предлагает свои варианты. Да и друзей нет в этой сфере, вообщем один в поле не воин )))).

Ну все равно ждут предложений и напуствий по поводу всего сыр бока.

sunsay
() автор топика
Ответ на: комментарий от sunsay

>Ну все равно ждут предложений и напуствий по поводу всего сыр бока.

В смысле по поводу падающего инета?
rp_filter=0 и clamp-mss-to-pmtu не помогло?

nnz ★★★★
()
Ответ на: комментарий от nnz

Пока интернет работает стабильно. Спасибо!

sunsay
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.