# [SOLVED] Gentoo als Router - Routing langsam?

## ConiKost

Moin!

Ich habe nun seit einigen Tagen eine kleien Linux Kiste als Gentoo Router am Laufen (Geode LX-800, 160GB HDD, 1024MB RAM, Onboard LAN, USB-LAN, Onboard WLAN)

Das ganze klappt soweit Problemlos. Alle Clients im LAN und WLAN Bereich haben Zugriff auf das Netz. Aber irgendwie ist die Performance einfach Mist. Ich besitze einen DSL 16000 Anschluss. Mit dem Linux Router schaffe ich jedoch die Geschwindigkeit nicht. Meine Nettogeschwindigkeit liegt bei Downloads bei ~ 600KB/s - 800KB/s. Es liegt NICHT am Anschluss. Schließe ich das DSL Modem direkt an meinen PC an, sind volle 16000 drin. Sprich die Server erreichen in etwa ~ 1.8MB/s auch. Interessant ist, im LAN zum Router mit FTP als Beispiel erreiche ich volle ~ 7MB/s.

Woran kann das Problem also liegen? An der Rechnerleistung kann es nicht liegen, da ja sogar nen uralter P1 als Router schon reicht ...

Danke für eure Hilfe.

emerge --info

```
Portage 2.1.5.6 (default/linux/x86/2008.0/server, gcc-4.3.1, glibc-2.7-r2, 2.6.25-gentoo-r6 i586)

=================================================================

System uname: 2.6.25-gentoo-r6 i586 Geode(TM) Integrated Processor by AMD PCS

Timestamp of tree: Mon, 14 Jul 2008 06:45:01 +0000

ccache version 2.4 [enabled]

app-shells/bash:     3.2_p39

dev-java/java-config: 1.3.7, 2.1.6-r1

dev-lang/python:     2.5.2-r5

dev-util/ccache:     2.4-r7

sys-apps/baselayout: 2.0.0

sys-apps/openrc:     0.2.5

sys-apps/sandbox:    1.2.18.1-r3

sys-devel/autoconf:  2.62-r1

sys-devel/automake:  1.4_p6, 1.7.9-r1, 1.9.6-r2, 1.10.1-r1

sys-devel/binutils:  2.18-r3

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   2.2.4

virtual/os-headers:  2.6.25-r4

ACCEPT_KEYWORDS="x86 ~x86"

CBUILD="i586-pc-linux-gnu"

CFLAGS="-march=geode -Os -mmmx -m3dnow -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -mfpmath=387"

CHOST="i586-pc-linux-gnu"

CONFIG_PROTECT="/etc /opt/openfire/resources/security/ /var/bind"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=geode -Os -mmmx -m3dnow -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -mfpmath=387 -fvisibility-inlines-hidden"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS=""

FEATURES="ccache distlocks fixpackages parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://ftp.gentoo.mesh-solutions.com/gentoo/"

LANG="de_DE.UTF-8"

LC_ALL="de_DE.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-s -Wl,-z,now"

LINGUAS="de"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_COMPRESS="gzip"

PORTAGE_COMPRESS_FLAGS="-f9"

PORTAGE_RSYNC_EXTRA_OPTS="--delete-excluded --exclude-from=/etc/portage/rsync_excludes --stats"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"

USE="3dnow alsa apache2 berkdb bzip2 cgi crypt ftp gd iconv imap javascript jpeg mmx mysql mysqli ncurses nls nptl offensive pam pcre png samba sasl session sharedmem simplexml slang snmp ssl symlink tcpd threads tiff tokenizer truetype unicode urandom vhosts x86 xml zlib" ALSA_CARDS="cs5535audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="alias auth_basic authn_file authz_host authz_user autoindex cache cgi deflate dir disk_cache filter log_config logio mime mime_magic mem_cache rewrite unique_id vhost_alias" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="cfontz hd44780" LINGUAS="de" LIRC_DEVICES="serial" USERLAND="GNU" VIDEO_CARDS="amd"

Unset:  CPPFLAGS, CTARGET, INSTALL_MASK

```

Last edited by ConiKost on Mon Jul 14, 2008 6:09 pm; edited 1 time in total

----------

## papahuhn

Was ist, wenn der Router nicht routet, sondern selbst etwas zieht, ist es dann genauso langsam?

----------

## ConiKost

 *papahuhn wrote:*   

> Was ist, wenn der Router nicht routet, sondern selbst etwas zieht, ist es dann genauso langsam?

 

Klappt ebenfalls problemlos, voller Speed. (wget)

----------

## trikolon

hast du qos bzw traffic shaping eingerichtet?

benutzt du eine firewall oder reine iptables anweisungen?

----------

## ConiKost

 *trikolon wrote:*   

> hast du qos bzw traffic shaping eingerichtet?
> 
> benutzt du eine firewall oder reine iptables anweisungen?

 

Moin  :Smile: 

Ich wüsste nicht, dass ich QOS bzw. Traffic Shaping aktiviert hätte. Wo kann ich das prüfen?

Als "Firewall" nutze ich reine iptables Anweiseungen:

```
#!/bin/bash

PPP_IF="ppp0"

LO_IF="lo"

LAN_IF="eth1"

WLAN_IF="ath0"

AMD64="192.168.0.2"

LAN_IP="192.168.0.0/24"

WLAN_IP="192.168.1.0/24"

IPTABLES="/sbin/iptables"

$IPTABLES -F

$IPTABLES -t nat -F

$IPTABLES -P OUTPUT  ACCEPT

$IPTABLES -P INPUT   DROP

$IPTABLES -P FORWARD DROP

$IPTABLES -A INPUT -i $LO_IF -j ACCEPT

$IPTABLES -A INPUT -i $LAN_IF -j ACCEPT

$IPTABLES -A INPUT -i $WLAN_IF -j ACCEPT

$IPTABLES -A INPUT -i $PPP_IF -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -i $LO_IF -j ACCEPT

$IPTABLES -A FORWARD -i $LAN_IF -j ACCEPT

$IPTABLES -A FORWARD -i $WLAN_IF -j ACCEPT

$IPTABLES -A FORWARD -i $PPP_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -o $PPP_IF -s $LAN_IP -j MASQUERADE

$IPTABLES -t nat -A POSTROUTING -o $PPP_IF -s $WLAN_IP -j MASQUERADE

```

----------

## schachti

Probier mal, ob es besser klappt, wenn Du die Policies der Chains nicht auf DROP setzt - vielleicht gehen da wichtige Pakete, zum Beispiel ICMP-Pakete, verloren...

----------

## Mr_Maniac

Wie verbindet sich dein Router denn zum Internet?

Bei mir erzeugte die alte rp-pppoe Zugangsmethode ziemlich hohe Last, wodurch mein Durchsatz schrumpfte. Dies war allerdings noch mit meinem 200 MHz Router-PC (Pentium MMX).

Wie es mit meinem jetzigen Router-PC aussehen würde (P4 1,5 GHz) weiß ich nicht.

Jedenfalls nutze ich nun die "offizielle" und "neue" Methode (direkt pppd).

----------

## mick3yz

Dann hätte er ja auch probleme wenn er mit der selben Kiste was zieht. Aber er schreibt das er 

da vollen speed fährt...wenn er die Kiste direkt ziehen lässt (wget)

----------

## ConiKost

 *schachti wrote:*   

> Probier mal, ob es besser klappt, wenn Du die Policies der Chains nicht auf DROP setzt - vielleicht gehen da wichtige Pakete, zum Beispiel ICMP-Pakete, verloren...

 

Das hilft ebenso leider nicht. Keine Besserung.

 *Mr_Maniac wrote:*   

> Wie verbindet sich dein Router denn zum Internet?
> 
> Bei mir erzeugte die alte rp-pppoe Zugangsmethode ziemlich hohe Last, wodurch mein Durchsatz schrumpfte. Dies war allerdings noch mit meinem 200 MHz Router-PC (Pentium MMX).
> 
> Wie es mit meinem jetzigen Router-PC aussehen würde (P4 1,5 GHz) weiß ich nicht.
> ...

 

Nutze das PPPOE vom PPP Paket. Kein seperates rp-pppoe Paket.

Meine Last ist Laut TOP bei etwa ~ 5% ... also kaum was Los.

```
config_ppp0=( "ppp" )

link_ppp0="eth0"

plugins_ppp0=( "pppoe" )

pppd_ppp0=(

        "defaultroute"

        "lcp-echo-failure 5"

        "lcp-echo-interval 60"

        "persist"

        "noauth"

        "updetach"

)

username_ppp0="xxxxxxxxx"

```

 *mick3yz wrote:*   

> Dann hätte er ja auch probleme wenn er mit der selben Kiste was zieht. Aber er schreibt das er 
> 
> da vollen speed fährt...wenn er die Kiste direkt ziehen lässt (wget)

 

Ganz genau. Auf der Kiste direkt zieht wget mit vollem Speed. Kann es evtl an der Kernelkonfiguration liegen?

----------

## Polynomial-C

Moin,

nur mal ein Schuß ins Blaue. Ich hatte das gleiche Problem vor fünf Jahren mit meinem Gentoo-Router. Leider weiß ich nicht mehr exakt, was die Lösung war, aber es hatte etwas mit folgendem iptables-Befehl zu tun: 

```
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
```

Als "Beschreibung" hatte ich noch folgendes hinzugeschrieben, allerdings weiß ich damit heute nach fünf Jahren auch nicht mehr allzuviel anzufangen: # This sets the MSS size of tcp packets to the MPU -40 of the used connection. This can heavily increase speed of NAT-connections.

Stelle die Regel direkt als erste in die FORWARD chain und schau mal, ob das deine Performanceprobleme behebt.

Grüße

Poly-C

----------

## ConiKost

 *Polynomial-C wrote:*   

> Moin,
> 
> nur mal ein Schuß ins Blaue. Ich hatte das gleiche Problem vor fünf Jahren mit meinem Gentoo-Router. Leider weiß ich nicht mehr exakt, was die Lösung war, aber es hatte etwas mit folgendem iptables-Befehl zu tun: 
> 
> ```
> ...

 

BINGO! Das ist es  :Smile:  Nun hab ich auf den PCs ebenfalls vollen Downloadspeed... Danke dir!

----------

## AROK

Hallo,

```
 --clamp-mss-to-pmtu
```

  bewirkt, dass das Datensegment um die Größe von IP Header + TCP Header (40 bzw 60 Byte) kleiner ist, als die MTU des Netzes (PPOe Verbindung). Somit entsteht keine Segmentierung und somit weniger Overhead.

Grüße

AROK

----------

## schachti

Eine Erklärung findet sich auch bei Wikipedia: http://de.wikipedia.org/wiki/Maximum_Segment_Size.

----------

