# Mein Netzwerk spinnt (192.168.2.2 == 192.168.2.3 ?)

## zinion

Also...es ist selbsterklärend schaut euch das mal bitte an. Das bringt mich etwas zum verzweifeln. Ermachte das plötzlich nachdem ich von der Arbeit kam?!

```

root@thomas-km61 thomas # ping 192.168.2.2

PING 192.168.2.2 (192.168.2.2) 56(84) bytes of data.

From 192.168.2.3 icmp_seq=2 Destination Host Unreachable

From 192.168.2.3 icmp_seq=3 Destination Host Unreachable

From 192.168.2.3 icmp_seq=4 Destination Host Unreachable

From 192.168.2.3 icmp_seq=6 Destination Host Unreachable

From 192.168.2.3 icmp_seq=7 Destination Host Unreachable

From 192.168.2.3 icmp_seq=8 Destination Host Unreachable

--- 192.168.2.2 ping statistics ---

9 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7999ms

, pipe 3

```

Meine /etc/hosts:

```

127.0.0.1       localhost

192.168.2.2     filebase filebase.Infonet

192.168.2.3     thomas-km61 thomas-km61.Infonet

# IPV6 versions of localhost and co

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

```

Internet und alles geht nur zum Server (192.168.2.2) kriege ich keine Verbindung. Es gibt hier noch mehr Rechner im Netzwerk aber die hab eich net in der hosts-Datei, weil ich eh net viel mit denen "spreche". Aber da ist doch eigentlich alles korrekt oder? Warum sagt er mir 192.168.2.3 ist nich erreichbar wenn ich .2 pinge?? Und .3 bin ja eigentlich ich.

Von den anderen Rechnern aus läuft eigentlich alles normal, das sind aber Windosen. Der Server ist ne Linux-Box.

edit: Wenn ich den Router / Gateawy pinge passiert dasselbe:

```

root@thomas-km61 thomas # ping 192.168.2.1

PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.

From 192.168.2.3 icmp_seq=2 Destination Host Unreachable

From 192.168.2.3 icmp_seq=3 Destination Host Unreachable

From 192.168.2.3 icmp_seq=4 Destination Host Unreachable

--- 192.168.2.1 ping statistics ---

6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4999ms

, pipe 3

```

Aber surfen kann ich wunderbar!?

edit2: Nach einem erneuten eth0 restart ging es - obwohl ein reboot zuvor net geholfen hat. Aber trotzdem würde mich brennend interessieren, wie mein PC auf solche Ideen kommt??

----------

## zinion

*bump*

Zu früh gefreut. Das Problem tritt nach jedem booten auf. Erst, wenn ich 

```
/etc/init.d/net.eth0 retsart
```

 ausgeführt habe, funktioniert es wieder richtig.

----------

## Anarcho

Zeig dochmal die ausgabe von 

```
route -n
```

 vor und nach dem net.eth0 restart.

Dann noch bitte deine /etc/conf.d/net

----------

## zinion

route -n vorher (also wenn das Problem auftritt)

```

thomas-km61 root # route -n

Kernel IP Routentabelle

Ziel            Router          Genmask         Flags Metric Ref    Use Iface

192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo

0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth0

0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth1

```

und nach "/etc/init.d/net.eth0 restart" (ich seh schon da stimmt was net - aber ich blicks net ganz):

```

thomas-km61 root # route -n

Kernel IP Routentabelle

Ziel            Router          Genmask         Flags Metric Ref    Use Iface

192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

127.0.0.0       127.0.0.1       255.0.0.0       UG    0      0        0 lo

0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth1

```

und /etc/conf.d/net:

```

# /etc/conf.d/net:

# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/conf.d/net,v 1.7 2002/11/18 19:39:22 azarah Exp $

# Global config file for net.* rc-scripts

# This is basically the ifconfig argument without the ifconfig $iface

#

iface_eth1="dhcp"

iface_eth0="192.168.2.3 broadcast 192.168.2.255 netmask 255.255.255.0"

#iface_eth1="207.170.82.202 broadcast 207.0.255.255 netmask 255.255.0.0"

# For DHCP set iface_eth? to "dhcp"

# For passing options to dhcpcd use dhcpcd_eth?

#

#iface_eth0="dhcp"

#dhcpcd_eth0="..."

# For adding aliases to a interface

#

#alias_eth0="192.168.0.3 192.168.0.4"

# NB:  The next is only used for aliases.

#

# To add a custom netmask/broadcast address to created aliases,

# uncomment and change accordingly.  Leave commented to assign

# defaults for that interface.

#

#broadcast_eth0="192.168.0.255 192.168.0.255"

#netmask_eth0="255.255.255.0 255.255.255.0"

# For setting the default gateway

#

gateway="eth0/192.168.2.1"

```

eth1 ist übrigens mein 1394, den ich nicht nutze. Der war früher übrigens auf eth0 und der andre eth1 - irgendwann haben die dann einfach mal getauscht, woraufhin ich dann die /etc/conf.d/net angepasst habe.

----------

## Anarcho

OK, das problem ist klar:

Du hast 2mal ein default gateway eingetragen. Das geht natürlich nicht.

Du bekommst von dem dhcp server ein standardgateway zugewiesen und hast eins spezifiziert.

Allerdings hab ich jetzt nicht ganz verstanden welche Leitung du wirklich nutzt.

Es sieht so aus als wenn du eth1 nutzen würdest. Dann würde ich alles von eth0 entfernen, insbesondere die letzte zeile mit dem gateway. Dann sollte es klappen.

Falls du eth0 doch noch brauchst, dann lasse 

iface_eth0="192.168.2.3 broadcast 192.168.2.255 netmask 255.255.255.0" 

drinne. Sonst lasse einfach nur

iface_eth1="dhcp" 

drinne und alles andere auskommentieren. Dann sollte es gehen.

----------

## schmutzfinger

Ich würde mal behaupten das dein eth1 am netz hängt, aber dein eth0 "unplugged" ist. 

Fall 1: 

ping an ip im lan, routingtabelle sagt 1.eintrag passt senden über eth0

ping an ip ausser lan, 4. eintrag über eth0 zum router

Fall 2:

ping ins lan, 1. eintrag -> eth1

ping nach aussen 4. eintrag -> eth1

Im Fall 1 müsste "Surfen" = "im prinzip wie ping nach aussen" auch über eth0 gehen, warum das gehen soll kann ich mir nicht wirklich vorstellen. Ich würde erstmal auf dem server gucken welche source IP die gerouteten pakete haben. Ich tippe mal die Firewall auf dem router lässt deinen ping einfach nicht rein. Aber meiner Meinung nach geht alles über eth1.

Du solltest dir mal gedanken machen ob es wirklich sinn macht 2 interfaces gleichzeitig zu betreiben, wenn die eh in den selber lan gehen. Also einfach mal nur das Interface ins runlevel aufnehmen, welches auch wirklich genutzt werden soll. Und das andere rausnehmen.

Am besten du machst dir erstmal klar welches interface welche physikalische netzwerkkarte ist.

nicht sehr ellegant aber mit fällt grad nix besseres ein

```

# ifconfig

eth0

.....Interrupt:18 Basisadresse:0xd000

# dmesg | grep 3Com

0000:00:0a.0: 3Com PCI 3c905C Tornado at 0xd000. Vers LK1.1.19

0xd000 ist gleich ---> 3Com karte ist eth0
```

----------

## zinion

Hallo!

Vorher war es so daß eth1 am Netz hing aber jetzt ist es eth0. Weil ich habe Netz wenn eth0 aktiv und eth1 gestoppt ist.

Also ich werde heute Abend mal korrigieren was ihr hier angemerkt habt, danke für die Hilfe schonmal.

----------

## zinion

```

thomas-km61 root # ifconfig

eth0      Protokoll:UNSPEC  Hardware Adresse 00-E0-18-00-00-90-7D-EA-00-00-00-00-00-00-00-00

          inet Adresse:192.168.2.3  Bcast:192.168.2.255  Maske:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          Kollisionen:0 Sendewarteschlangenlänge:1000

          RX bytes:0 (0.0 b)  TX bytes:2340 (2.2 Kb)

eth1      Protokoll:Ethernet  Hardware Adresse 00:11:2F:60:56:0B

          inet Adresse:192.168.2.104  Bcast:192.168.2.255  Maske:255.255.255.0

          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1

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

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

          Kollisionen:0 Sendewarteschlangenlänge:1000

          RX bytes:381719 (372.7 Kb)  TX bytes:208009 (203.1 Kb)

          Interrupt:17 Speicher:fab00000-0

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:50 errors:0 dropped:0 overruns:0 frame:0

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

          Kollisionen:0 Sendewarteschlangenlänge:0

          RX bytes:3552 (3.4 Kb)  TX bytes:3552 (3.4 Kb)

```

Jo nutze wohl doch eth1 lol.  Dachte immer es muss ja eth0 sein da mein Rechner im Netz auf .3 zu erreichen ist. Naja ich disable eth0 und weise eth1 die feste ip zu.

Ups sry - ich wollte eigentlich editieren - etwas vercheckt.

edit: super, alles läuft - danke

----------

## zinion

Urks - jetzt fängt der schon wieder damit an.

Das tritt sporadisch auf das Problem, dann sind eth0 und eth1 plötzlich vertauscht. 

Kann ich das irgendwie fest einstellen, welches Gerät eth0 und eth1 bekommt?

----------

## Anarcho

verwendest du für beide module?

wenn ja, spielt die reihenfolge beim laden ne rolle.

----------

## DarKRaveR

Bei 2.6 einfach via udev die devicenamen festlege, anhand der MAC Adresse

Bei 2.4 könntest Du sowas wie nameif nehmen.

Prinzipiell ist es völlig wurst, ob dein interface ethX heißt, oder sonstige namen hat ...

Bei mir sind die Karten (je nachdem wo) z.B. nach HErsteller benamt, oder zum beispiel nach logischen netznamen, die von interface xyz bedient werden ....

----------

## zinion

Hm ok, wenn die das nächste mal "wechsel dich" spielen, dann probier ichs mal so  :Smile: 

----------

## think4urs11

Hi,

das Problem dürfte sich am einfachsten dadurch lösen lassen das du auf eth0 und eth1 unterschiedliche Netze fährst statt wie jetzt jeweils 192.168.2.0/24.

Oder gibt es dafür irgendwelche zwingenden Gründe?

HTH

T.

----------

## Anarcho

Oder einfach den Treiber für die nichtbenötigte Netzwerkkarte rausschmeisst.

----------

## psyqil

Oder eth0 in den Kernel kompilierst und eth1 als Modul.

----------

## think4urs11

 *Anarcho wrote:*   

> Oder einfach den Treiber für die nichtbenötigte Netzwerkkarte rausschmeisst.

 

Und wie macht man das bei zwei identischen NIC?

Keine Ahnung ob das für zinion zutrifft, seine beiden Karten sind aber jeweils Asustek wenn ich mich nicht verschaut habe.

----------

## NightDragon

Du könntest auch in /etc/conf.d/local.start (das ist das init-script, für eigene zwecke) mit dem route befehl den 2. gateway löschen.

```
route del default gw 192.168.2.1 eth0
```

Ich bin mir jetzt nicht ganz sicher obs so stimmt, und klar, sowas per local.start zu machen ist natürlich keine saubere Lösung, auch wenns Funktioniert.

Und das nächste was wäre, ist das Dienste die aufs Internet beim Startup zugreifen (wie z. Bsp. ntp-client) könnten Probleme haben, wenn sie als init-script nach net und vor local.start gestartet werden. Den in der Zeit ist das problem ja noch nicht behoben.

Du kannst aber auch, nur wie weiß ich nicht genau, den DHCP-Daemon (sofern es sich um einen Linux-Rechner handelt) so einstellen, das er dem einem Interface keinen Gateway mitsendet. Dann existiert auch kein route eintrag.

Oder lieg ich falsch ? | zu den anderen gefragt |

[ EDIT - Kleiner Nachtrag ]

Option 2 - schon etwas schwerer, aber besser:

Du kannst dich auch mal im /etc/init.d/net.eth1 umschauen und dort vor eend in der Funktion start() einfach 

```
route del default gw 192.168.2.1 eth0
```

 eintragen.

dann hättest Du das Problem auch wieder beseitigt. Und es gibt zusätzlich auch keine Probleme mit Diensten die nach net gestartet werden.

und Option 3 - Eigenes Init-Script.

Du könntest auch ein Init script schreiben das in etwa so ausschaut:

```

depend() {

   after net

   use net

}

start() {

  ebegin "Lösche zusätzliches Gateway von eth0"

  route del default gw 192.168.2.1 eth0

  eend

}

stop() {

  ebegin "Gateway-Zusatz-Script - nichts zu tun"

  eend

}

```

----------

## think4urs11

 *zinion wrote:*   

> 
> 
> eth1 ist übrigens mein 1394, den ich nicht nutze. Der war früher übrigens auf eth0 und der andre eth1 - irgendwann haben die dann einfach mal getauscht, woraufhin ich dann die /etc/conf.d/net angepasst habe.

 

Dann deaktiviere bitte auch die Unterstützung für 'Ethernet over 1394'-Option im Kernel (Device drivers/IEEE 1394 support).

Dadurch sollte es nur noch eth0 geben -> problem gone.

@Nightdragon:

Es ist ziemlich egal ob für eine NIC ein Gateway eingetragen wird oder nicht. Solange beide im gleichen Subnet sind tut sich die Maschine immer schwer zu entscheiden über welche sie mit anderen Geräten (im gleichen Subnet) kommunizieren soll.

HTH

T.

----------

## NightDragon

Deswegen dachte ich ja auch, das für ein Interface der Gateway gelöscht wird.

----------

## DarKRaveR

 *Think4UrS11 wrote:*   

>  *zinion wrote:*   
> 
> eth1 ist übrigens mein 1394, den ich nicht nutze. Der war früher übrigens auf eth0 und der andre eth1 - irgendwann haben die dann einfach mal getauscht, woraufhin ich dann die /etc/conf.d/net angepasst habe. 
> 
> Dann deaktiviere bitte auch die Unterstützung für 'Ethernet over 1394'-Option im Kernel (Device drivers/IEEE 1394 support).
> ...

 

Es ist egal, ob beide NICs im gleichen Subnet sind, oder nicht, eine Route für 0/0 kann nur einmal existieren, es sei denn, man verwendet source policy routing, dann geht es prinzipiell, wenn die gateways/interfaces in unterschiedlichen Netzen liegen.....

----------

