Sziasztok!
A közepébe vágok..
A szituáció a következő: Van egy Athlon XP 3000+ gép, ami a gateway szerepét tölti be a lakásban.
DigiNET, IP MASQ, iptables tűzfal, apache, vnc, dhcp, miegymás.. Szóval a net pppoe alapon működik,
de nagy hálózati forgalom esetén a cpu load elég magas, a kihasználtság 25..30%. Na ezt kicsit soknak
vélem, úgyhogy kernel-mode -ba állítanám a pppoe klienst. rp-pppoe Fedora repo-ból, megvan a kernel
modul is, a konfigba bele is van írva, megy is szépen...DE: néhány oldal egyszerűen nem tölthető be.
Google, a hiba az MTU-val van. A user-mode pppoe tud alapból olyat, hogy clamping, ami kényszeríti
az ilyen oldalakra történő küldéskor az MTU leszorítását. Namost.. Ha a kernel-mode -ban indítom a
pppoe klienst, akkor a parancsban nincs is benne a clamping, de ha bele is rakom (-m 1412) akkor a
szkript elhasal. Google, a megoldás, hogy ilyenkor az iptables -el oldjam meg az ilyen gondokat.
Az iptables sor a következő:
$IPT -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
De bizony nem megy. És nem hiszem el, hogy a kernel-mode nem tud ilyet! A cpu-használat egyébként
tényleg visszaesett, nagyon, a korábbi 25..30% kb. 3..4%-ra. Szóval nagyon hasznos volna az alkalmazása.
Esetleg nektek bármi tapasztalat? Az se baj, ha nem konkrétan Fedora, majd áthegesztem :)
- 2671 megtekintés
Hozzászólások
Ha valoban mtu, akkor nezz kurul, mert jol csinaltad, csak az eredmeny nem jo :(
A tcpmms legyen az elso a forwardnal, az mtu-t meg add meg kezzel:
/etc/ppp/pppoe.conf-ban, nalam: CLAMPMSS=1412
- A hozzászóláshoz be kell jelentkezni
A tcpmms legyen az elso a forwardnal, az mtu-t meg add meg kezzel:
Ezt hogy érted? Ez legyen a firewall-script legelején? (Egyébként ott van, a kernelmodulok betöltése
után közvetlenül.)
A /etc/ppp/pppoe.conf-ban nálam is benne van a CLAMPMSS=1412, csak ezt a kernel-mode indításakor bele
se rakja a parancsba (ps aux|grep pppd alapján).. Beleírtam kézzel de el se indult a script.
Az MTU kézi megadása.. A pppoe kapcsolat természetesen 1492 MTU, a belső hálón meg nem akarok kézzel
állítgatni, a M$ meg nem veszi fel dhcp-ből az option interface-mtu 1492
-t.
Szóval a clamping lenne a megoldás. (Azért nem akarok kézzel állítgatni, mert ha pl. haver jön, akkor
nem akarom a gépét buherálni, menjen és pötty.)
if !(amixer -c 0 sset Master,0 mute >/dev/null) then ln -s /dev/null /home/$you == "Silence! I kill you!" :)
- A hozzászóláshoz be kell jelentkezni
A script-ben mi van, azt nem tudom, de, ha egy 'iptables -nvL FORWARD' -ot kiadsz, ez legyen az elso.
Nalam a 'ps ax|grep ppd' ezt adja ki:
/usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412 ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user xxxx lcp-echo-interval 20 lcp-echo-failure 3
Semmi extrat nem csinaltam, csak futtattam az adsl-setup parancsot par eve :) (ezert is nincs konkret otletem, mert nagyon regota mukodik, es kesz)
Nalam a konkret tcpmss hasznalat igy nez ki:
-A FORWARD -p tcp --tcp-flags SYN,RST SYN -o ppp+ -j TCPMSS --clamp-mss-to-pmtu
Szerk: most latom, hogy ez ugyanaz, mint amit Te be-paste-eltel :)
- A hozzászóláshoz be kell jelentkezni
Én is a pppoe-setup -al csináltam, megy is rendesen, de az nem használja a kernel-mode pppoe-t.
Konkrétan te sem használod, nincs benne a parancsodban.
- A hozzászóláshoz be kell jelentkezni
Akkor elbeszeltunk egymas mellett :( Ezkutan mi a kernel-mode pppoe? A gep, amit mutattam, elegge nagy net forgalmat bonyolit, egy slot 1-es p3-665(?), 128MB rammal, es semmi kulonos terheles nincs rajta. /Illetve egy mailszerver, de csak relay/. Ezert gondoltam, hogy ez kernel mode-u :)
- A hozzászóláshoz be kell jelentkezni
Ebben a módan a kernelben egy modul végzi a ppp keretek ethernetbe ágyazását és nem egy user-space program.
A configban egy ilyennek kellene lenni:
LINUX_PLUGIN=/usr/lib/pppd/2.4.4/rp-pppoe.so
de ekkor az indító-szkript nem teszi be a clampmss-t..
- A hozzászóláshoz be kell jelentkezni
Akkor megnyugodtam :) Van ilyenem:
# Linux kernel-mode plugin for pppd. If you want to try the kernel-mode
# plugin, use LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
Ha gondolod privat elkudlhetem a konfigot, de semmi kulonoset nem csinaltam. A fajo inkabb az, hogy nem emlexem ra mit is gorcsoltem egy adsl-lel, ugy tunik oregszem :)
Szerk: BTW igazad van, nincs a file ott, ahova mutat. Ha meg a heten is gorcsolsz vele, akkor megnezem, ha letezo pluginre mutat, akkor mit csinal.
- A hozzászóláshoz be kell jelentkezni
Igazán nagy segítség volna :)
- A hozzászóláshoz be kell jelentkezni
Sikerült esetleg valakinek valamire jutnia?
- A hozzászóláshoz be kell jelentkezni
Sikerult kiprobalnom, az egadta vilagon semmi kulonbseget nem tapasztaltam. Mire lennel kivancsi? Mit masoljak be? :)
A logban ennyi a lonbseg /ennyivel tobb van a userspace dologhoz lepest/:
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
- A hozzászóláshoz be kell jelentkezni
Az jó :) Mármint hogy
Plugin rp-pppoe.so loaded.
RP-PPPoE plugin version 3.3 compiled against pppd 2.4.4
Logban nálam sincs semmi különös ezen kívül..
De a helyzet az, hogy azzal van a gond, hogy a gép "mögött" nat-olt gépekről nem megy az a pár site amit írtam. Szóval ezt kellene kipróbálni. A szerverről simán megy minden site, a problémásak is.
(vnc-vel néztem, van fent egy xfce..)
- A hozzászóláshoz be kell jelentkezni
Termeszetesen mukodik a halozat is, kulonben lecsavarnak a fejemet :) Csak gondoltam jelentkezik vmi kulonbseg is :D
Szerk:
A parancssor viszont nem igazan valtozott:
/usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412 ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user XXXXX lcp-echo-interval 20 lcp-echo-failure 3
/usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412
- A hozzászóláshoz be kell jelentkezni
A parancs alapján nem a kernel-mode megy ott, mert nálad:
/usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412
indítja a kapcsolatot, user-mode -ban,
/usr/sbin/pppd pty /usr/sbin/pppoe -p /var/run/pppoe-adsl.pid.pppoe -I eth0 -T 80 -U -m 1412 ipparam ppp0 linkname ppp0 noipdefault noauth default-asyncmap defaultroute hide-password nodetach mtu 1492 mru 1492 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user XXXXX lcp-echo-interval 20 lcp-echo-failure 3
részből az ipparm előtt semminek sem kellene állnia valamint a kernel-mode -hoz a plugint is meg kellene neveznie. A pty a pszeudo tty a szoftveres pppoe-klienshez
itt van egy remek leírás abszolult témábavágóan.
- A hozzászóláshoz be kell jelentkezni
Akkor sajna nem tudok tobbet segiteni, mert nem igazan allitgathatom a netjuket, eleg haklisak ra :(
- A hozzászóláshoz be kell jelentkezni
Most ez van a tűzfalban megadva:
$IPT -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1200:1536 -j TCPMSS --clamp-mss-to-pmtu
$IPT -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ppp0 -j TCPMSS --set-mss 1410
Szóval ezzel most úgy néz ki, hogy megy.. De fura azért a clamp után fix megadva.
Ha csak az egyik vagy másik van csak megadva akkor nem megy.
(A próbához ajánlom a port.hu oldalt pl.)
A load meg úgy alakul, hogy le/fel ~2000K forgalom (hdd ír/olvas) mellett az eddigi 3..4 -ről most 0.35..0.45 -re esett. A CPU-t nem zabálja semmi.
- A hozzászóláshoz be kell jelentkezni
A netet már soknapja böngészve
akadtam erre:
Ebből merítve a következőket szedtem ki:
$IPT -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -A OUTPUT -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
$IPT -t nat -A POSTROUTING -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Ezzel elvileg mennie kellene a clamping-nek, maxra kihasználva a hálózat lehetőségeit.
overSSH beállítottam, barátnőm szerint minden problémás site megy, szóval a probléma elvileg megoldott :)
Fonya, azért ha teheted kérlek nézd már meg te is!
[szerk.]
Csak hogy teljes legyen a kép:
$IPT -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o ppp0 -j TCPMSS --clamp-mss-to-pmtu
Ha csak ez a sor van bent akkor megy :)
- A hozzászóláshoz be kell jelentkezni
Biztos, hogy a pppoe kernel modu futtatasa megoldja a magas loadot?
Nalam sokaig egy P1-es 266-os gep volt a gateway es egy 10 megas netet vitt proxyval, smarthost-tal, vpn-nel. Nem nagyon latszott meg rajta a terheles.
- A hozzászóláshoz be kell jelentkezni
Igen, biztos vagyok benne. (top -al néztem a cpu% -ot, a pppoe volt a legmagasabb..)
if !(amixer -c 0 sset Master,0 mute >/dev/null) then ln -s /dev/null /home/$you == "Silence! I kill you!"
- A hozzászóláshoz be kell jelentkezni