Zwei verschiedene Netzwerkschnittstellen gleichzeitig CentOS

Zwei verschiedene Netzwerkschnittstellen gleichzeitig CentOS

Ich werde verrückt, da ich jetzt schon seit fast einer Woche versuche, das zu lösen.

Szenario:Ein Server mit zwei verschiedenen Netzwerkgeräten. Jedes Gerät ist an ein anderes Unternehmenssubnetz angeschlossen.

eth0ist eingesteckt x.y.5.184/29, während eth1ist eingesteckt x.y.88.224/27. Ich möchte, dass der Server auf lauschtbeideGeräte.

Server-IP in .5.184/29soll sein x.y.5.186, Server-IP in .88.224/27soll sein x.y.88.253. Ich möchte zwei verschiedene VMs mit Apache betreiben, daher soll der Server – mit natpf zur jeweiligen VM – auf x.y.5.186:p1VM1 und auf x.y.88.253:p2VM2 lauschen

xund ymüssen aus Datenschutzgründen ausgeblendet werden, erhalten aber Werte.

Also, hier ist das Problem: Wenn ich auftauche eth1, antwortet der Server nicht eth0und ich weiß nicht wirklich, warum.

Hier ist eine Ausgabemitbeide Geräte hoch:

[user@server ~]$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet x.y.5.186  netmask 255.255.255.248  broadcast x.y.5.191
    ether <MAC>  txqueuelen 1000  (Ethernet)
    RX packets 77141  bytes 50779367 (48.4 MiB)
    RX errors 27  dropped 0  overruns 26  frame 1
    TX packets 83841  bytes 63781133 (60.8 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet x.y.88.253  netmask 255.255.255.224  broadcast x.y.88.255
    ether <MAC>  txqueuelen 1000  (Ethernet)
    RX packets 77911  bytes 6285521 (5.9 MiB)
    RX errors 0  dropped 836  overruns 0  frame 0
    TX packets 6502  bytes 1057860 (1.0 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 0  (Local Loopback)
    RX packets 740  bytes 606784 (592.5 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 740  bytes 606784 (592.5 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:67:e6:77  txqueuelen 0  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 [user@server ~]$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         x.y.5.185    0.0.0.0         UG    0      0        0 eth0
0.0.0.0         x.y.88.225   0.0.0.0         UG    10     0        0 eth1
x.y.5.184    0.0.0.0         255.255.255.248 U     0      0        0 eth0
x.y.88.224   0.0.0.0         255.255.255.224 U     10     0        0 eth1
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

[user@server ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
# ifcfg-eth0
HWADDR=<MAC>
TYPE=Ethernet
BOOTPROTO=none
#DNS1=x.y.company.dns
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_ROUTE_METRIC=0
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=SERVER
UUID=<uuid>
DEVICE=eth0
ONBOOT=yes
IPADDR=x.y.5.186
PREFIX=29
GATEWAY=x.y.5.185


[user@server ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
# ifcfg-eth1
HWADDR=<MAC2>
TYPE=Ethernet
BOOTPROTO=none
#DNS1=x.y.company.dns
DEFROUTE=no
IPV4_FAILURE_FATAL=yes
IPV4_ROUTE_METRIC=10
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME=CLIENT
UUID=<uuid2>
DEVICE=eth1
ONBOOT=no
IPADDR=x.y.88.253
PREFIX=27
GATEWAY=x.y.88.225

Ich denke also, dass es eine Route sein könnte. Ich habe /etc/sysconfig/network-scripts/route-eth0und gelöscht route-eth1, das sind also die Standardeinstellungen.

[user@server ~]$ ip route
default via x.y.5.185 dev eth0  proto static
default via x.y.88.225 dev eth1  proto static  metric 10
x.y.5.184/29 dev eth0  proto kernel  scope link  src x.y.5.186
x.y.88.224/27 dev eth1  proto kernel  scope link  src x.y.88.253  metric 1
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1

Ich habe die Standardroute gelöscht füreth1

[root@server user]#  ip route del default via x.y.88.225 dev eth1  prot

Und trotzdem ändert sich nichts. Ping zu eth0IP schlägt fehl, aber wenn ich die andere Route lösche mit

[root@server user]#  ip route del x.y.88.224/27 dev eth1  proto kernel ric 10

eth0funktioniert wieder, jede Verbindung x.y.5.186funktioniert wieder, eth1funktioniert aber nicht mehr. Soweit ich weiß, eth1sollte die von mir verwendete Metrik das Problem lösen, tut es aber nicht. Hat irgendein Routing-Experte eine Idee dazu?

Bearbeiten: frisches CentOS

Antwort1

Diese Frage wurde hier schon millionenfach gestellt.

Es kann nicht so gemacht werden, wie Sie es versuchen, Sie brauchenRichtlinienrouting. Eine Einführung dazu finden SieHier.

Sie müssen angeben, alsIP-Regeldas bestimmt, welche der beiden Routing-Tabellen angewendet werden soll. Eine gibt an, dass, wenn das Paket von der IP-Adresse von VM1 kommt, Tabelle 1 verwendet wird, andernfalls Tabelle 2. Aus diesem Grund wird es manchmalQuellrouting, anstelle von Policy-Routing: denn welche Tabelle angewendet werden soll, wird auf Grundlage der Quell-IP-Adresse und nicht der Zieladresse ausgewählt.

verwandte Informationen