Duas interfaces de rede diferentes simultaneamente CentOS

Duas interfaces de rede diferentes simultaneamente CentOS

Estou enlouquecendo, pois estou tentando resolver isso há quase uma semana.

Cenário:Um servidor com dois dispositivos de rede diferentes. Cada dispositivo está conectado a uma sub-rede diferente da empresa.

eth0está conectado x.y.5.184/29, enquanto eth1está conectado x.y.88.224/27. Eu quero que o servidor escuteambosdispositivos.

O IP do servidor .5.184/29deve ser x.y.5.186, o IP do servidor .88.224/27deve ser x.y.88.253. Eu gostaria de executar duas VMs diferentes com o Apache, para que o servidor - com natpf para a respectiva VM - ouça x.y.5.186:p1VM1 e x.y.88.253:p2VM2

xe ydevem ser ocultados devido a questões de privacidade, mas recebem valores.

Então aqui está o problema: se eu aparecer eth1, o servidor não está respondendo eth0e eu realmente não sei por quê.

Aqui está alguma saídacomambos os dispositivos ativados:

[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

Então, meu pensamento é que pode ser uma rota. Eu apaguei /etc/sysconfig/network-scripts/route-eth0e route-eth1, então esses são os padrões.

[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

Eu apaguei a rota padrão paraeth1

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

E ainda nada muda. O ping para eth0IP falha, mas se eu excluir a outra rota com

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

eth0funciona novamente, todas as conexões x.y.5.186funcionam novamente, mas eth1param de funcionar. Pelo que eu sei, a métrica que usei eth1deveria resolver o problema, mas não resolve. Algum especialista em roteamento com alguma ideia sobre isso?

Editar: CentOS novo

Responder1

Esta pergunta foi feita um zilhão de vezes, aqui.

Isso não pode ser feito como você está tentando fazer, você precisarároteamento de política. Você pode encontrar uma introdução básica a eleaqui.

Você deverá especificar, comoregra de ipque determina qual das duas tabelas de roteamento deve ser aplicada, uma que especifica que, se o pacote vier do endereço IP da VM1, use a tabela 1, caso contrário, use a tabela 2. É por isso que às vezes é chamadoroteamento de origem, em vez de roteamento de política: porque a tabela a ser aplicada é escolhida com base no endereço IP de origem, não no endereço de destino.

informação relacionada