# [gelöst] Gentoobox als Router konfigurieren

## EOF

Ich möchte aus meiner Gentoobox einen Router machen um

meine Internetanschluss zu teilen. Mein neuer Provider verlangt

eine Einwahl per PPPoE, was die mitgelieferte Hardware nicht von

selbst tut  :Sad: .

Hardwarekonfiguration:

- Hauptrechner mit zwei Netzwerkkarten bezieht ADSL 

über eth1

- Nebenrechner möchte über einen Switch das Internet des

Hauptrechners nutzen

Ich habe mich an das  Gentoo-Router-Howto

gehalten, nur bekomme ich den zweiten Rechner (Windows-Rechner) nicht ins Internet.

Einige Daten vom Hauptrechner:

```

comet conf.d # cat net

config_eth0=( "192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0" )

config_ppp0=( "ppp" )

link_ppp0="eth1"

plugins_ppp0=( "pppoe" )

username_ppp0='geheim'

password_ppp0='geheim'

pppd_ppp0=(

        "defaultroute"       

        #"ipcp-accept-remote"

        #"ipcp-accept-local"

        "usepeerdns"

        #"lcp-echo-interval 15"

        #"lcp-echo-failure 3"

        "mru 1492"

        "mtu 1492"

        #"debug"

)

```

```

comet conf.d # ifconfig -a

eth0      Protokoll:Ethernet  Hardware Adresse 00:0F:EA:E8:96:96

          inet Adresse:192.168.0.1  Bcast:192.168.0.255  Maske:255.255.255.0

          inet6 Adresse: fe80::20f:eaff:fee8:9696/64 Gültigkeitsbereich:Verbindung

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:703725 errors:0 dropped:0 overruns:0 frame:0

          TX packets:538093 errors:0 dropped:0 overruns:0 carrier:0

          Kollisionen:0 Sendewarteschlangenlänge:1000

          RX bytes:878580738 (837.8 Mb)  TX bytes:43661866 (41.6 Mb)

          Interrupt:23 Basisadresse:0xe000

eth1      Protokoll:Ethernet  Hardware Adresse 00:0F:EA:E8:96:98

          inet6 Adresse: fe80::20f:eaff:fee8:9698/64 Gültigkeitsbereich:Verbindung

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:3181 errors:0 dropped:0 overruns:0 frame:0

          TX packets:3163 errors:0 dropped:0 overruns:0 carrier:0

          Kollisionen:0 Sendewarteschlangenlänge:1000

          RX bytes:1478831 (1.4 Mb)  TX bytes:485636 (474.2 Kb)

          Interrupt:17

lo        Protokoll:Lokale Schleife

          inet Adresse:127.0.0.1  Maske:255.0.0.0

          inet6 Adresse: ::1/128 Gültigkeitsbereich:Maschine

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:285 errors:0 dropped:0 overruns:0 frame:0

          TX packets:285 errors:0 dropped:0 overruns:0 carrier:0

          Kollisionen:0 Sendewarteschlangenlänge:0

          RX bytes:26858 (26.2 Kb)  TX bytes:26858 (26.2 Kb)

ppp0      Protokoll:Punkt-zu-Punkt Verbindung

          inet Adresse:85.181.181.159  P-z-P:213.191.76.94  Maske:255.255.255.255

          UP PUNKTZUPUNKT RUNNING NOARP MULTICAST  MTU:1492  Metric:1

          RX packets:1143 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1229 errors:0 dropped:0 overruns:0 carrier:0

          Kollisionen:0 Sendewarteschlangenlänge:3

          RX bytes:652941 (637.6 Kb)  TX bytes:187304 (182.9 Kb)

sit0      Protokoll:IPv6-nach-IPv4

          NOARP  MTU:1480  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          Kollisionen:0 Sendewarteschlangenlänge:0

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

```

Der Nebenrechner ist im Subnetz 192.168.0.xxx mit gateway 192.168.0.1.

Er kann per Internetbrowser weder eine Domain auflösen, noch sich mit der

IP-Adresse einer Seite verbinden, ist aber anpingbar vom Hauptrechner.

Obwohl schon ein Großteil des Wochenendes dafür draufgegangen ist bin

ich nicht weiter als wie beschrieben gekommen. 

Hilfe   :Crying or Very sad: Last edited by EOF on Wed Mar 12, 2008 10:12 pm; edited 1 time in total

----------

## Cabal2002

Hi,

wenn du dich ans Gentoo-Router-Howto gehalten hast läuft auf comet dnsmasq. Nun sollte der Windowsrechner von comet via DHCP seine IP-Adresskonfig erhalten. Diese beinhaltet im Allgemeinen IP Adresse, Maske, Gateway und DNS Server. Unabhängig davon ob die iptables Konfig ok ist oder nicht sollte der Windowsrechner jetzt in der Lage sein Domainnamen in IP Adressen aufzulösen. Klappt das? Wenn ja dann hast du vermutlich ein Problem bei den Firewallregeln. Ob die Namensauflösung klapp kannst du ganz einfach testen indem du auf dem Windowsrechner eine DOS Box öffnest und z.B. mal 'ping gentoo.org' eingibst.

```

C:\Documents and Settings\Username>ping gentoo.org

Pinging gentoo.org [204.74.99.100] with 32 bytes of data:

Reply from 4.53.84.34: Destination net unreachable.

Reply from 4.53.84.34: Destination net unreachable.

Reply from 4.53.84.34: Destination net unreachable.

Reply from 4.53.84.34: Destination net unreachable.

Ping statistics for 204.74.99.100:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 0ms, Average = 0ms

```

Wenn das nicht klappt musst du dich erstmal um dnsmasq kümmern danach suchst du ein eventuelles Problem bei dem iptables Kram.

MfG

Cabal

----------

## Genone

Was sagt

```
sysctl -a | grep forward
```

----------

## EOF

ich habe den vollwertigen dhcp-server installiert wie unten im Howto beschrieben wurde.

Das scheint zu funktionieren, da sich der windowsrechner eine ip nimmt. 

Ein 

```

windose\ifconfig /all

```

auf dem Windowsrechner zeigt an, dass für dns-server, standartgateway und dhcp-server die adresse 192.168.0.1 gewählt wurde.

Bei iptables habe ich die einträge aus dem howto übernommen. Ein rc-status zeigt, dass alle relevante dienste laufen. 

```

comet conf.d # sysctl -a | grep forward

net.ipv4.ip_forward = 1

error: permission denied on key 'net.ipv4.route.flush'

net.ipv4.conf.all.forwarding = 1

net.ipv4.conf.all.mc_forwarding = 0

net.ipv4.conf.default.forwarding = 1

net.ipv4.conf.default.mc_forwarding = 0

net.ipv4.conf.lo.forwarding = 1

net.ipv4.conf.lo.mc_forwarding = 0

net.ipv4.conf.sit0.forwarding = 1

net.ipv4.conf.sit0.mc_forwarding = 0

net.ipv4.conf.eth0.forwarding = 1

net.ipv4.conf.eth0.mc_forwarding = 0

net.ipv4.conf.eth1.forwarding = 1

net.ipv4.conf.eth1.mc_forwarding = 0

net.ipv4.conf.ppp0.forwarding = 1

net.ipv4.conf.ppp0.mc_forwarding = 0

error: permission denied on key 'net.ipv6.route.flush'

net.ipv6.conf.lo.forwarding = 0

net.ipv6.conf.all.forwarding = 0

net.ipv6.conf.default.forwarding = 0

net.ipv6.conf.sit0.forwarding = 0

net.ipv6.conf.eth0.forwarding = 0

net.ipv6.conf.eth1.forwarding = 0

net.ipv6.conf.ppp0.forwarding = 0

error: "Invalid argument" reading key "fs.binfmt_misc.register"

error: "Invalid argument" reading key "dev.parport.parport0.autoprobe"

error: "Invalid argument" reading key "dev.parport.parport0.autoprobe0"

error: "Invalid argument" reading key "dev.parport.parport0.autoprobe1"

error: "Invalid argument" reading key "dev.parport.parport0.autoprobe2"

error: "Invalid argument" reading key "dev.parport.parport0.autoprobe3"

```

----------

## bbgermany

Hi,

ich denke das Problem liegt eher in einem ganz kleinen Punkt im Firewallscript des Howtos. Dort wird als WAN-Interface eth1 vorausgesetzt, bei dir ist das WAN-interface jedoch ppp0. Das sollte du mal ändern. Ich denke dann funktioniert das auch  :Wink: 

MfG. Stefan

----------

## EOF

 *bbgermany wrote:*   

> Hi,
> 
> ich denke das Problem liegt eher in einem ganz kleinen Punkt im Firewallscript des Howtos. Dort wird als WAN-Interface eth1 vorausgesetzt, bei dir ist das WAN-interface jedoch ppp0. Das sollte du mal ändern. Ich denke dann funktioniert das auch 
> 
> MfG. Stefan

 

Leider hat das auch nicht funktioniert.

Weitere relevante Daten

```

comet conf.d # iptables-save -c

# Generated by iptables-save v1.3.8 on Sun Mar  9 21:36:03 2008

*nat

:PREROUTING ACCEPT [28950:1813220]

:POSTROUTING ACCEPT [11378:1000538]

:OUTPUT ACCEPT [10857:967089]

[49:3067] -A POSTROUTING -o ppp0 -j MASQUERADE

COMMIT

# Completed on Sun Mar  9 21:36:03 2008

# Generated by iptables-save v1.3.8 on Sun Mar  9 21:36:03 2008

*mangle

:PREROUTING ACCEPT [727795:876280764]

:INPUT ACCEPT [724260:876019090]

:FORWARD ACCEPT [2433:156129]

:OUTPUT ACCEPT [557800:32594140]

:POSTROUTING ACCEPT [560007:32736582]

COMMIT

# Completed on Sun Mar  9 21:36:03 2008

# Generated by iptables-save v1.3.8 on Sun Mar  9 21:36:03 2008

*filter

:INPUT ACCEPT [403:181735]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [445:48964]

[0:0] -A INPUT -i lo -j ACCEPT

[49:3689] -A INPUT -i eth0 -j ACCEPT

[0:0] -A INPUT -i ! eth0 -p udp -m udp --dport 67 -j REJECT --reject-with icmp-port-unreachable

[0:0] -A INPUT -i ! eth0 -p udp -m udp --dport 53 -j REJECT --reject-with icmp-port-unreachable

[0:0] -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT

[18:944] -A INPUT -i ! eth0 -p tcp -m tcp --dport 0:1023 -j DROP

[0:0] -A INPUT -i ! eth0 -p udp -m udp --dport 0:1023 -j DROP

[12:576] -A FORWARD -d 192.168.0.0/255.255.0.0 -i eth0 -j DROP

[0:0] -A FORWARD -s 192.168.0.0/255.255.0.0 -i eth0 -j ACCEPT

[0:0] -A FORWARD -d 192.168.0.0/255.255.0.0 -i ppp0 -j ACCEPT

COMMIT

# Completed on Sun Mar  9 21:36:03 2008

```

----------

## EOF

Update:

Habe festgestellt, dass nur noch die Namensauflösung nicht funktioniert.

Um auf google zu kommen kann ich beispielsweise 

http://209.85.129.104

in den browser eintippen

So sieht meine  /etc/dhcp/dhcpd.conf aus

```

authoritative;

ddns-update-style interim;

subnet 192.168.0.0 netmask 255.255.255.0 {

    range 192.168.0.100 192.168.0.250;

    default-lease-time 259200;

    max-lease-time 518400;

    option subnet-mask 255.255.255.0;

    option broadcast-address 192.168.0.255;

    option routers 192.168.0.1;

    option domain-name-servers 192.168.0.1;

}

```

----------

## EOF

Habe nun dnsmasq statt dhcpd verwendet und alles funktioniert.

Vielen dank an alle die so hilfreich waren!!!   :Razz: 

----------

## c_m

du hättest auch einfach dhcpcd sagen können, dass er die Nameserver mit verteilen soll  :Wink: 

//EDIT: oder was auch sehr schon ist: nen lokalen nameserver, der alles was er selbst nicht kennt an den provider forwarded. dann kannste in deinem Netz auch Namensauflösung amchen und falls mal nen Kumpel kommt braucht der gar nicht erst mit IPs zu hantieren ^^

----------

## Polynomial-C

Wer nicht unbedingt einen vollwertigen DNS-Server braucht, kann auch mit pdnsd vorlieb nehmen:

```
# emerge -s %^pdnsd$

Searching...

[ Results for search key : ^pdnsd$ ]

[ Applications found : 1 ]

*  net-dns/pdnsd

      Latest version available: 1.2.6

      Latest version installed: [ Not Installed ]

      Size of files: 440 kB

      Homepage:      http://www.phys.uu.nl/~rombouts/pdnsd.html

      Description:   Proxy DNS server with permanent caching

      License:       GPL-3
```

Das Ding kann auch noch mehr als nur DNS-Daten cachen.

----------

## think4urs11

 *c_m wrote:*   

> oder was auch sehr schon ist: nen lokalen nameserver, der alles was er selbst nicht kennt an den provider forwarded. dann kannste in deinem Netz auch Namensauflösung amchen und falls mal nen Kumpel kommt braucht der gar nicht erst mit IPs zu hantieren ^^

 

Was ja nun ziemlich genau dem Szenario entspricht für das dnsmasq da ist.  :Wink: 

bind+dhcpd braucht man außer bei spezielleren Anforderungen eigentlich erst in größeren Umgebungen, für SoHo ist dnsmasq sehr brauchbar.

----------

