Mis' pisze:
Albercik pisze:
Jestem już po teście serwera pppoe. Zakończyło się wywaleniem go i powrót do tego co było ...niestety .
Możesz podać konfigurację serwera? ewentualnie jakieś logi?
czy sprawdzałeś do jakiej ilości userów wszystko chodzi płynnie?
Może wystaw gdzieś scripty i opisz dokładnie procedurę testową. Podejrzewam, że wąskim gardłem może być tu przede wszystkim pamięć. Przydałby się wynik top...
Tak czy siak dziękujemy bardzo i trzymamy kciuki...
Konfiguracja P4 1.8GHz , 256MB RAMBUS , HDD 4.3GB . W logach nic zupełnie oprócz standardowych komunikatów .
Skrypty ip-up:
#!/bin/bash
PPP_IPPARAM="$6"
PPP_REMOTE=$5 > /var/log/logowanie.log 2>&1
KLIENT=$2 > /var/log/logowanie.log 2>&1
INTERFEJS=$1 > /var/log/logowanie.log 2>&1
lan="eth1" > /var/log/logowanie.log 2>&1
i="/usr/sbin/iptables" > /var/log/logowanie.log 2>&1
tc="/sbin/rchtb_tc"
NR_PPP=`echo $INTERFEJS | cut -c 4- `
NR_IP=`echo $PPP_REMOTE | cut -c 11- `
export $PPP_REMOTE $KLIENT $INTERFEJS $NR_PPP $NR_IP $PPP_IPPARAM
#maskarada
$i -A INPUT -i $lan -s $PPP_REMOTE -j ACCEPT > /var/log/logowanie.log 2>&1
$i -A FORWARD -s 0/0 -d $PPP_REMOTE -j ACCEPT > /var/log/logowanie.log 2>&1
$i -A FORWARD -s $PPP_REMOTE -j ACCEPT > /var/log/logowanie.log 2>&1
$i -t nat -A POSTROUTING -s $PPP_REMOTE -j MASQUERADE > /var/log/logowanie.log 2>&1
iptables -t mangle -A POSTROUTING -o $INTERFEJS -j IMQ --todev 1
#markowanie
$i -t mangle -A PREROUTING -s $PPP_REMOTE -j MARK --set-mark $NR_PPP
# dl
$tc class add dev imq1 parent 1:2 classid 1:2$NR_PPP htb rate 11kbit ceil 512kbit prio 2 quantum 1500
$tc qdisc add dev imq1 parent 1:2$NR_PPP esfq perturb 10 hash dst
$tc filter add dev imq1 protocol ip prio 5 parent 1:0 u32 match ip dst $PPP_REMOTE flowid 1:2$NR_PPP
# ul
$tc class add dev eth0 parent 2:1 classid 2:1$NR_PPP htb rate 1kbit ceil 128kbit prio 2 quantum 1500
$tc qdisc add dev eth0 parent 2:1$NR_PPP esfq perturb 10 hash dst
$tc filter add dev eth0 parent 2:0 protocol ip prio 5 handle $NR_PPP fw flowid 2:1$NR_PPP
$i -t mangle -A POSTROUTING -o ppp+ -j IMQ --todev 1
#porty
#echo "$NR oraz $NR_IP" >> /root/cos.txt
##NR=`cat | cut -c 1-5 ` 2>&1
$i -I FORWARD -p tcp -d $PPP_REMOTE --dport 10$NR_IP -j ACCEPT > /var/log/logowanie.log 2>&1
$i -t nat -A PREROUTING -p tcp -i eth0 -s 0/0 -d 0/0 --dport 10$NR_IP -j DNAT --to $PPP_REMOTE:10$NR_IP > /var/log/logowanie.l
$i -I FORWARD -p udp -d $PPP_REMOTE --dport 10$NR_IP -j ACCEPT > /var/log/logowanie.log 2>&1
$i -t nat -A PREROUTING -p udp -i eth0 -s 0/0 -d 0/0 --dport 10$NR_IP -j DNAT --to $PPP_REMOTE:10$NR_IP > /var/log/logowanie.l
ip-down
#!/bin/bash
PPP_IPPARAM="$6"
echo "$PPP_IPPARAM" >> /root/ipparam.txt
PPP_REMOTE=$5 > /var/log/logowanie.log 2>&1
KLIENT=$2 > /var/log/logowanie.log 2>&1
INTERFEJS=$1 > /var/log/logowanie.log 2>&1
lan="eth1" > /var/log/logowanie.log 2>&1
i="/usr/sbin/iptables" > /var/log/logowanie.log 2>&1
tc="/sbin/rchtb_tc"
NR_PPP=`echo $INTERFEJS | cut -c 4- `
NR_IP=`echo $PPP_REMOTE | cut -c 11- `
#maskarada
$i -t nat -D POSTROUTING -s $PPP_REMOTE -j MASQUERADE > /var/log/logowanie.log 2>&1
#iptables -t mangle -A POSTROUTING -o $INTERFEJS -j IMQ --todev 1
# dl
$tc class del dev imq1 classid 1:2$NR_PPP
# ul
$tc class del dev eth0 classid 2:1$NR_PPP
skrypt htb:
stop()
{
/sbin/rchtb_tc qdisc del root dev imq0 2> /dev/null
/sbin/rchtb_tc qdisc del root dev imq1 2> /dev/null
}
start()
{
stop # dla bezpieczeństwa
/etc/rc.d/rc.imq stop
/etc/rc.d/rc.imq start
# INTERFEJS IMQ1 (ruch przychodzący)
/sbin/rchtb_tc qdisc add dev imq1 root handle 1:0 htb default 3 r2q 1
# Główna klasa dla imq1
/sbin/rchtb_tc class add dev imq1 parent 1:0 classid 1:1 htb rate 9000kbit ceil 9000kbit
# Podział na pasmo dla łącza internetowego i resztę
/sbin/rchtb_tc class add dev imq1 parent 1:1 classid 1:2 htb rate 2910kbit ceil 2910kbit
/sbin/rchtb_tc class add dev imq1 parent 1:1 classid 1:3 htb rate 6090kbit ceil 6090kbit prio 9
/sbin/rchtb_tc qdisc add dev imq1 parent 1:3 esfq perturb 10 hash dst
# pasmo priorytetowe dla ICMP, TOS 0x10 (min. delay) oraz wybranego portu 22
/sbin/rchtb_tc class add dev imq1 parent 1:2 classid 1:20 htb rate 11kbit ceil 2910kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev imq1 parent 1:20 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev imq1 protocol ip prio 3 parent 1:0 u32 match ip sport 22 0xffff flowid 1:20
/sbin/rchtb_tc filter add dev imq1 protocol ip prio 2 parent 1:0 u32 match ip tos 0x10 0xff flowid 1:20
/sbin/rchtb_tc filter add dev imq1 protocol ip prio 2 parent 1:0 u32 match ip protocol 1 0xff flowid 1:20
# transfer serwer->LAN
/sbin/rchtb_tc filter add dev imq1 protocol ip prio 1 parent 1:0 handle 1 fw flowid 1:3
# INTERFEJS IMQ0 (ruch wychodzący)
/sbin/rchtb_tc qdisc add dev eth0 root handle 2:0 htb default 11 r2q 1
# główna klasa
/sbin/rchtb_tc class add dev eth0 parent 2:0 classid 2:1 htb rate 496kbit ceil 496kbit
# klasa priorytetowa ACK
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:10 htb rate 145kbit ceil 145kbit prio 1 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:10 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 2 u32 match ip protocol 6 0xff \
match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 1 match u8 0x10 0xff at 33 flowid 2:10 # ACK
# klasa priorytetowa TOS 0x10 oraz ICMP
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:9 htb rate 1kbit ceil 350kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:9 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:9 # TOS 0x10
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 2 u32 match ip dport 22 0xffff flowid 2:9 # port 22
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:9 # ICMP
# ruch serwerowy (pasmo dla gości z zewnątrz)
/sbin/rchtb_tc class add dev eth0 parent 2:1 classid 2:11 htb rate 14kbit ceil 350kbit prio 2 quantum 1500
/sbin/rchtb_tc qdisc add dev eth0 parent 2:11 esfq perturb 10 hash dst
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11
/sbin/rchtb_tc filter add dev eth0 parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:11
}
pppoe-server-options
# PPP options for the PPPoE server
# LIC: GPL
#debug
#require-pap
#refuse-pap
#default-asyncmap
#proxyarp
lcp-echo-interval 20
lcp-echo-failure 10
ms-dns 192.168.1.1
ms-dns 194.204.159.1
ms-dns 194.204.152.34
#nobsdcomp
#noendpoint
#noipdefault
#noipx
#novj
#receive-all
logfile /var/log/pppoe.log
#mtu 1490
#mru 1490
#defaultroute
start pppoe-server'a
pppoe-server -I eth1 -L 192.168.1.1 -R 192.168.1.10 -u -r -N 1000 -p /etc/ppp/users
jak już pisałem tworzą się interfejsy i niby jest wszystko ok , ale nie ma dostępu nawet do serwera.
wyniki top'a pomiędzy 17% a 70% ...generalnie nic do zarzucenia . Powiem tak : nie wiem co jest , ale to może być banał . Pamiętam jak się męczyłem czemu reguły iptables nie startują z ip-up ...okazało się , że nie wiadomo dlaczego w ip-up/down musza być pełne ścieżki , albo wyexportowane patche . Może być podobny banał , ale moje pomysły mi się skończyły .....
