# Gateway zwischen 2 Netzen

## AROK

Servus Leute,

ich bin irgendwie zu doof einen Router/Gateway zwischen 2 Netzen einzurichten:

Der Router steht zwischen 192.168.0.0 und 192.168.1.0. 

Er erreicht Hosts in beiden Netzen und das Internet über ein GW in 192.168.1.0.

Auf dem Router habe ich routing aktiviert: 

```
echo 1 > /proc/sys/net/ipv4/ip_forward
```

Die Rechner in beiden Netzen erreichen den Router unter beiden seiner Addressen.

Die Rechner in beiden Netzen erreichen sich aber gegenseitg nicht und die Hosts hinter dem Router erreichen auch das Internet nicht.

Auf den Rechnern habe ich jeweils eine Route in das andere Netz mit dem Router als Gateway angegeben.

Habe den Rechner auch probehalber mal ans ADSL Modem angeschlossen und Masquerading aktiviert, das klappt wunderbar, die Anderen kommen über ihn ins Internet.

Habt ihr eine Idee was ich falsch mache?

cu

AROK

----------

## XMath

Hi,

kannst ja mal mit tcpdump schauen ob der Router die Pakete auch wirklich "routet".

Also nen ping von einem Netz ins andere und am Router mit tcpdump lauschen.

Tschö

----------

## manuels

 *AROK wrote:*   

> Habe den Rechner auch probehalber mal ans ADSL Modem angeschlossen und Masquerading aktiviert, das klappt wunderbar, die Anderen kommen über ihn ins Internet.

 Das heißt, dass vorher das Masquerading nicht an war?

Soweit ich weiss muss es an sein, damit das klappt.

----------

## think4urs11

netstat -rn und ifcongig -a von je dem GW-Rechner sowie einem Rechner aus jedem Netz bitte

----------

## AROK

 *manuels wrote:*   

> Soweit ich weiss muss es an sein, damit das klappt.

 

Masquerading heißt ja die (Quell-/Ziel-) Addresse eines IP-Paketes zu verändern. Z.B. weil man nur eine IP-Addresse von seinem ISP bekommt, aber mehrere Rechner mit dieser IP ins Internet gehen sollen. In meinem Fall will ich aber einfach nur die Pakete von dem einen Netz unverändert in das andere Netz befördern lassen. 

Oder bin ich jetzt etwa auf dem Holzweg?

Später will ich dann zusätzlich auf dem Gateway eine Firewall einrichten. Aber zuerst wollte ich das mal als transparentes Gateway zum Laufen bringen.

Grüße

AROK

----------

## AROK

Hallo,

 *Quote:*   

> 
> 
> netstat -rn und ifcongig -a von je dem GW-Rechner sowie einem Rechner aus jedem Netz bitte
> 
> 

 

Gateway:

```
route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo

0.0.0.0         192.168.0.1    0.0.0.0         UG    0      0        0 eth2

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 eth2
```

```
eth0    Link encap:Ethernet

          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:39133 (38.2 KiB)  TX bytes:19916 (19.4 KiB)

          Interrupt:11 Base address:0xd000

eth2    Link encap:Ethernet

          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:5 txqueuelen:1000

          RX bytes:1022603 (998.6 KiB)  TX bytes:58314 (56.9 KiB)

          Interrupt:5 Base address:0xd800
```

Host:

```

route -n                                                                                                                                                                 

Kernel IP Routentabelle                                                                                                                                                                      

Ziel            Router          Genmask         Flags Metric Ref    Use Iface                                                                                                                

192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0                                                                                                                 

192.168.0.0     192.168.1.2   255.255.255.0   UG    0      0        0 eth0                                                                                                                 

127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo      

0.0.0.0         192.168.0.1    0.0.0.0         UG    0      0        0 eth0

```

```

eth0    Link encap:Ethernet

          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          collisions:0 txqueuelen:1000

          RX bytes:39133 (38.2 KiB)  TX bytes:19916 (19.4 KiB)

          Interrupt:11 Base address:0xd000

```

cu

AROK

----------

## think4urs11

Das Default-GW muß im gleichen Netz sein wie der Host selbst - in deinem Beispiel ist aber der Host .1.10 und sein Default-GW ist .0.1

----------

## AROK

 *Think4UrS11 wrote:*   

> Das Default-GW muß im gleichen Netz sein wie der Host selbst - in deinem Beispiel ist aber der Host .1.10 und sein Default-GW ist .0.1

 

D.h du meinst 192.168.1.2 als default GW eintragen? Hab ich auch schon mal probiert. 

Warum kann ich nicht ein Gateway in einem anderen Netz als default gw angeben, wenn ich eine Route dahin habe? 

Grüße

AROK

----------

## ChrisJumper

Hi AROK,

es ist warm und eigentlich hab ich keine Lust dazu.. drum hoffe ich das ich jetzt nicht zu viele Fehler mache.

Aber was ich grad nicht falsch liege, dann brauchst du kein NAT auf dem Rechner zwischen den Lans, sofern du deiner "ich nenne das mal Fritzbox", klar machen kannst das es noch ein weiteres Netz ins "hinteren" Lan gibt.

Halte dir vor Augen das jeder Computer ins hintere Lan darauf zugreifen kann wenn er eine Default-Route für das Subnetz besitzt.

Wenn es wenige Rechner im Hinteren Lan sind und du weißt wo du das wie einrichten muss. Mach das per Hand mit /etc/hosts und /etc/conf.d/net und /etc/resolv.conf. Sollten es mehrere Rechner sein empfehle ich Dhcp auf dem Rechner zwischen den Lans inklisive NAT und DNS-Weiterleitung an deine "Fritzbox" und das Deaktiveren des DHCP auf der Frizbox.

Beide Möglichkeiten sind unterschiedlich aufwendig einzurichten und haben vor und Nachteile.

Nochmal zu dem was du gepostet hast:

Ich gehe mal davon aus Fritzbox ist 192.168.1.1 und gibt dir Internet zum Provider. In dem Netz hast du einen Rechner den du als "Router" bezeichnest für den Weg ins Netz 192.168.0.0. Nennen wir ihn 192.168.1.2 und auf der anderen Seite der grenze 192.168.0.2.

Das was du da gepostet hast ist aber Komisch weil ich jetzt dachte das dein Host... einer aus dem hinteren Netz wäre also ein 192.168.0.X. Aber du hast einen gepostet aus dem selben Netz wie die Fritzbox. Wenn du jetzt einen Rechner im hinterem Netz hast und der ohne NAT usw ins Interen soll.. also über deine Fritzbox. Machst du das so:

```
# ifconfig eth0 192.168.0.5

# route add -net 192.168.1.0 netmask 255.255.255.0  gw 192.168.0.2

# route add default gw 192.168.1.1

# echo "nameserver 192.168.1.1" >> /etc/resolv.conf
```

Wichtig dabei ist aber auch, das für den "Rückweg" deine Fritzbox die NAT macht eine Route ins 192.168.0.x Netz kennt. Und ich denke da liegt das Problem. Wenn du ihr das nicht bei bringen kannst weil dort nicht dein Lieblingslinux läuft, dann kommst du nicht drumherum eine NAT-Verlängerung zu stricken.

Hast du "NAT, DNS Verlängerung" auf deinem Rechner zwischen den Lans aktiv machst du das so:

```
# ifconfig eth0 192.168.0.5

# route add default gw 192.168.0.2

# echo "nameserver 192.168.0.2" >> /etc/resolv.conf
```

Aber nochmal zum Vorschlag das du die Routen angegeben hast... dann sollte ein Ping aus dem Netz 192.168.0.X nach 192.168.1.X klappen, wenn auf beiden Rechnern eine route angegeben wurde**, Beispiel:

Netz 1

```
# ifconfig eth0 192.168.1.7

# rout add -net 192.168.0.0 netmask 255.255.255.0  gw 192.168.1.2

# ping 192.168.0.7
```

Netz 2

```
# ifconfig eth0 192.168.0.7

# route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.2

ping 192.168.1.7
```

**Und das von keiner Firewall verhindert wird und das auf dem 192.168.0.2/192.168.1.2 entsprechend umgeleitet wird...

Wenn ich mich jetzt irre und Think4UrS11 recht hat... (ist wohl sehr wahrscheinlich)...

 *Quote:*   

> Das Default-GW muß im gleichen Netz sein wie der Host selbst

 

...*grübel* Hmm ja denn hier müsste der Rechner eine IP Adresse  zwei mal Nachschlagen findet sie nicht und schickt sie an die default route, und durchläuft für diese NICHT nochmal die Routingtabelle... obwohl sie sagen sollte "schick mich über 192.168.0.2".

Dann bist du definitiv auf "NAT und DNS-Verlängerung" auf dem Rechner zwischen den Lans angewiesen. Hätte jetzt aber so aus dem stehgreif auch vermutet das das ohne klappen sollte. Aber wie gesagt bei Hitze neige ich zu Speicherzugriffsfehlern und bin nicht so verlässlich ^ ^

Grüße

----------

## think4urs11

was natürlich gegeben sein muß damit Rechner in 192.168.1.x/24 auch ins Internet kommen ist eine passende (Rück-)Route auf 192.168.0.1, nämlich via 192.168.0.2.

Abgesehen davon fällt mir aber spontan nichts ein warum Rechner aus .1.x/24 die Rechner aus .0.x/24 nicht pingen können.

Was mich ein wenig stört ist die zweite default-route auf deinem GW-Rechner (0.0.0.0 0.0.0.0 eth2).

@ChrisJumper: Ein wenig wirr ists schon was du schreibst, im ersten Durchlesen hab ichs nicht verstanden. Allerdings ist es hier auch nicht wirklich kühl   :Very Happy: 

----------

## AROK

Hallo,

danke für die Hinweise. Werde gleich noch mal ein wenig damit rumspielen.

----------

## AROK

Ok, habs gecheckt....  Funktioniert nun, die Rückroute hat gefehlt   :Embarassed: 

Danke + Grüße

----------

