Interface bestimmen

Status
Nicht offen für weitere Antworten.

outbreaker

Bekanntes Mitglied
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

Top Contributor
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?
Code:
ping -I Interface Ziel

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

outbreaker

Bekanntes Mitglied
irgendwie is gut :shock:

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

ifconfig:
Code:
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
Code:
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
Code:
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

Code:
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
Code:
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
Code:
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

Top Contributor
Ich vermute das Problem mal hier:
Code:
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.
Code:
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

Bekanntes Mitglied
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

Code:
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

Top Contributor
Code:
192.168.101.2   0.0.0.0         255.255.255.255 UH    0      0        0 eth1
Code:
192.168.100.2   0.0.0.0         255.255.255.255 UH    0      0        0 eth1
...100... vs ....101...
 

HoaX

Top Contributor
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

Bekanntes Mitglied
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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben