Wie kann ich dem Netzwerk-Stack mitteilen, mit welcher IP-Adresse die Quelle (src) für die Kommunikation bei mehreren IP-Adressen auf einer virtuellen Schnittstelle sein soll?
auto eth0
iface eth0 inet static
address x.x.x.209
netmask 255.255.255.0
network x.x.x.0
broadcast x.x.x.255
gateway x.x.x.254
auto eth0:1
iface eth0:1 inet static
address x.x.x.210
netmask 255.255.255.0
network x.x.x.0
broadcast x.x.x.255
gateway x.x.x.254
usw. usw.
Es scheint, als würde es das letzte in / etc / networking / interfaces auswählen
~# ip -s route get 173.194.67.113;
173.194.67.113 via x.x.x.254 dev eth0 src x.x.x.210
cache users 1 used 11 mtu 1500 advmss 1460 hoplimit 64
Aber dieses Verhalten ist unvorhersehbar. Ich habe ungefähr 30 IPs pro Schnittstelle zugewiesen, und manchmal ändert sich die (Scr-) Quell-IP.
Ich muss verstehen, wie es sich auswählt.
Ich habe versucht, die Metrik so einzustellen, dass sie den Quellcode standardisiert, aber anscheinend werden virtuelle Schnittstellen nicht unterstützt.
NETLINK: Packet too small or truncated!
EDIT: Ubuntu 10.04 64bit
BEARBEITEN Wenn ich @ TheCleaners Link folge, ist meine / etc / network / interfaces jetzt viel sauberer. Es tut mir leid, dass Sie zuvor keine weiteren Informationen bereitgestellt haben. Es ist eine komplizierte Umgebung. Ich wollte nur wissen, wie der Kernel die Quelladresse bestimmt, wenn Sie beispielsweise ein apt-get-Update über die Befehlszeile ausführen. Das gesamte Load Banacing-Zeug, Failover usw. funktioniert großartig.
auto eth0
iface eth0 inet static
address x.x.x.183
netmask 255.255.255.0
network x.x.x.0
broadcast x.x.x.255
gateway x.x.x.254
up ip addr add x.x.x.209 dev eth0 label eth0:1
up ip addr add x.x.x.210 dev eth0 label eth0:2
up ip addr add x.x.x.211 dev eth0 label eth0:3
up ip addr add x.x.x.212 dev eth0 label eth0:4
up ip addr add x.x.x.213 dev eth0 label eth0:5
up ip addr add x.x.x.214 dev eth0 label eth0:6
up ip addr add x.x.x.215 dev eth0 label eth0:7
IDK, wenn es behoben ist. aber soweit so gut. Ich renne nur, während ich schlafe 5; do ip -s route get 173.194.67.113; getan
für einige Zeit, um zu sehen, ob ich eine beständige IP habe, wenn ich ausgehend verbinde.
Das funktioniert super! Vielen Dank an alle, die mitgemacht haben. Ich bin immer noch neugierig, warum genau sich meine Quell-IP geändert hat, aber ich habe es nur damit zu tun, dass ich eine falsch geschriebene Interface-Datei habe und weitermache.
quelle
Antworten:
Schließen Sie das Gateway nicht in die Alias-Zeilengruppe ein. Sie brauchen auch überhaupt keine 'Netzwerk'-Leitung.
quelle