Das Subnetz wird durch Netzwerk und Maske definiert , z
Netzwerk: 10.0.100.5 Maske: / 8
Dies bedeutet, dass Ihr Subnetz ist: 10.
0.100.5 /8
Grundsätzlich gehört jede gültige IP der 10.xxx.xxx.xxx-Familie zu diesem Subnetz. Für den Zugriff auf Hosts in diesem Subnetz kann nur eine Schnittstelle verwendet werden. In Ihrem Fall ist es also entweder eth0 oder eth1. Andere Schnittstellen können IP-Adressen im selben Subnetz haben, funktionieren jedoch nicht ordnungsgemäß.
Folgendes passiert, wenn Sie eine Situation haben, wie Sie sie beschrieben haben, in der sowohl eth0 als auch eth1 mit IPs im selben Subnetz mit demselben Netzwerk verbunden sind.
- eth0 10.0.100.5/8
- eth1 10.0.200.5/8
Jetzt hat nur eine dieser Schnittstellen eine Route (sagen wir, es ist eth0 ), die to access subnet 10.0.100.0/8
use verwendet eth0
. Das Paket, das diese Schnittstelle verlässt, hat also die Quelladresse10.0.100.5
! HINWEIS
- 10.0.100.5/8 und 10.0.200.5/8 sind dasselbe Subnetz (da Maskenmasken die letzten 3 Vorkommen haben, können wir sie auch als 10.0.0.0/8 schreiben).
Stellen Sie sich nun vor, wir haben einen Host in diesem Subnetz, der versucht, mit 10.0.200.5
Packet in das System zu kommunizieren , eth1
aber nicht zurückkehren kann, eth1
da eth0
nur einer mit Route zum Netzwerk 10.0.0.0/8
und Antworten von eth0 unterschiedliche IP-Adressen haben. Daher kann derjenige, der die Verbindung zu 10.0.200.5 initiiert, die Antwort einer anderen Quelle nicht verstehen.
BEARBEITEN
Um zu bestimmen, welche Schnittstelle verwendet wird, müssen Sie sich Ihre Routing-Tabelle ansehen. Da die Frage keine Routing-Tabelle enthält, werde ich versuchen, dies anhand der folgenden Routing-Tabelle zu erklären
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 wlan0
10.0.0.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 wlan0
alternative Routing-Tabellenausgabe
$ ip route show
default via 192.168.0.1 dev wlan0 proto static
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
Wir haben also im obigen Beispiel 2 Schnittstellen.
- eth0 mit IP 10.0.0.5 im Subnetz 10.0.0.5/255.255.255.0 oder in CIDR-Notation 10.0.0.5/24
- wlan0 mit IP 192.168.0.14 im Subnetz 192.168.0.14/255.255.255.0 oder in CIDR-Notation 192.168.0.0/24
Was sagt uns nun die Routing-Tabelle? zeilenweise Interpretation von unten nach oben:
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.14
192.168.0.0/24
Verwenden Sie für den Zugriff auf Hosts im Subnetz die Schnittstelle wlan0
und die src-IP192.168.0.14
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.5
10.0.0.0/24
Verwenden Sie für den Zugriff auf Hosts im Subnetz die Schnittstelle eth0
und die src-IP10.0.0.5
default via 192.168.0.1 dev wlan0 proto static
Um auf einen anderen Host zuzugreifen, der nicht durch die oben genannten Regeln abgedeckt ist, verwenden Sie die default
Route, die über die Schnittstelle wlan0
und das Gateway zu anderen Netzwerken erreichbar ist192.168.0.1
route -n