# Interface bestimmen



## outbreaker (8. Jun 2007)

Hallo
Ich habe ien Problem bei der Programmierung eines Tools welchen Übertragungsgeschwindigkeit etc messen soll.

Ich habe einen Rechner dieser hat zwei Netzwerkarten welche über ein Crossoverkabel verbunden sind. Nun möchte ich Pakete über das Interface eth0 rausschicken und die bei eth1 Empfangen und auswerten. Ist das möglich das ich ihm sage schicke das über das Interface eth0 raus? oder ist das ein generelles Problem das Linux automatisch nichts über das Kabel schickt wenn sich beide Interfaces auf einem Rechner befinden?
Weil wenn ich ein ping ausführe an die ip von eth1 kommt der immer an egal ob ich ein kabel dran habe oder nicht.

Kann mir einer helfen?

Danke


----------



## madboy (8. Jun 2007)

> Weil wenn ich ein ping ausführe an die ip von eth1 kommt der immer an egal ob ich ein kabel dran habe oder nicht.


wie pingst du genau? Gibst du das Interface an, an das der Ping geschickt werden soll? 
	
	
	
	





```
ping -I Interface Ziel
```

Zum Rest kann ich nix sagen, aber vermute mal dass das schon (irgendwie) funktionieren sollte :wink:


----------



## outbreaker (8. Jun 2007)

irgendwie is gut  :shock: 

habe es auch schon mit einen ping -I versucht
hier mal meine Ergebnisse und Einstellungen:

ifconfig:

```
th0      Link encap:Ethernet  HWaddr 00:60:B0:7A:CA:06
          inet addr:192.168.100.3  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::260:b0ff:fe7a:ca06/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:1 dropped:0 overruns:0 frame:0
          TX packets:38 errors:72 dropped:0 overruns:0 carrier:72
          collisions:0 txqueuelen:1000
          RX bytes:1108 (1.0 Kb)  TX bytes:3380 (3.3 Kb)
          Interrupt:11 Base address:0xec80

eth1      Link encap:Ethernet  HWaddr 00:B0:D0:FA:5F:82
          inet addr:192.168.100.2  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::2b0:d0ff:fefa:5f82/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2514 (2.4 Kb)  TX bytes:1688 (1.6 Kb)
          Interrupt:11 Base address:0xec00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:162 errors:0 dropped:0 overruns:0 frame:0
          TX packets:162 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:12156 (11.8 Kb)  TX bytes:12156 (11.8 Kb)
```

Ein Ping mit Kabel zwischen eth0 und eth1

```
linux:~ # ping 192.168.100.3
PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data.
64 bytes from 192.168.100.3: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 192.168.100.3: icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 192.168.100.3: icmp_seq=3 ttl=64 time=0.039 ms
64 bytes from 192.168.100.3: icmp_seq=4 ttl=64 time=0.039 ms
```

einmal ohne Kabel dazwischen

```
linux:~ # ping 192.168.100.3
PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data.
64 bytes from 192.168.100.3: icmp_seq=1 ttl=64 time=0.037 ms
64 bytes from 192.168.100.3: icmp_seq=2 ttl=64 time=0.040 ms
64 bytes from 192.168.100.3: icmp_seq=3 ttl=64 time=0.040 ms
64 bytes from 192.168.100.3: icmp_seq=4 ttl=64 time=0.040 ms
```

route -n

```
linux:~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     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.100.1   0.0.0.0         UG    0      0        0 eth0
```

ping mit Interface angabe

```
linux:~ # ping -I eth0 192.168.100.2
PING 192.168.100.2 (192.168.100.2) from 192.168.100.3 eth0: 56(84) bytes of data.
From 192.168.100.3: icmp_seq=2 Destination Host Unreachable
From 192.168.100.3 icmp_seq=2 Destination Host Unreachable
From 192.168.100.3 icmp_seq=3 Destination Host Unreachable
From 192.168.100.3 icmp_seq=4 Destination Host Unreachable
```

iptables Einstellungen

```
linux:~ # iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
```

habe auch schon versucht das ich bei eth0 die ip 192.168.100.3 habe und bei eth1 die ip 192.168.101.2
aber es hat sich nichts geändert


kann man vielleicht über iptables was Einstellen damit alles was an die ip 192.168.101.2 gehen soll über das eth0 geschickt werden?


----------



## madboy (8. Jun 2007)

Ich vermute das Problem mal hier:

```
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0 
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
```
In dem Fall wird das Betriebssystem einfach ein passendes Interface wählen. Setze doch mal die Routen auf z.B.

```
route add -host 192.168.100.2 dev eth0
route add -host 192.168.100.3 dev eth1
```

Weitere Infos siehe z.B. http://www.klaus.franken.de/DE-ISDN-HOWTO/html/DE-ISDN-HOWTO-7.html


----------



## outbreaker (8. Jun 2007)

also habe das jetzt so in meine routingtabelle eingetragen aber es ist leider kein Unterschied zu vorher
jedenfalls was die Funktion betrifft

ping ip geht immer ob mit oder ohne Kabel und ping -I eth0 ip geht nie


```
linux:~ # route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.3   0.0.0.0         255.255.255.255 UH    0      0        0 eth0
192.168.101.2   0.0.0.0         255.255.255.255 UH    0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth0
```


----------



## madboy (8. Jun 2007)

```
192.168.101.2   0.0.0.0         255.255.255.255 UH    0      0        0 eth1
```


```
192.168.100.2   0.0.0.0         255.255.255.255 UH    0      0        0 eth1
```
...10*0*... vs ....10*1*...


----------



## HoaX (8. Jun 2007)

da du selbst die ip hast die du anpingen willst gehen die daten nicht übers kabel sondern das os schiebt die gleich aufs passende interface, nämlich lo.

würde mich wundern wenn es unter windows oder anderen OSen anders wäre. btw gibt es unter linux schon programme dafür, die dann sogar sendfile verwenden können. z.B. netperf!


----------



## outbreaker (8. Jun 2007)

Ich hatte auch mal localhost abgeschaltet also über ifconfig lo down

dann kann ich noch ping senden wenn ich zwei Rechner verbinde
aber wenn ich dann das Kabel halt von eth0 zu eth1 stecke (was ja dann auch gehen sollte) geht es nicht

dh es kommt "Destination Host Unreachable"

was ich auch nicht verstehe


----------

