동시에 두 개의 서로 다른 네트워크 인터페이스 CentOS

동시에 두 개의 서로 다른 네트워크 인터페이스 CentOS

나는 거의 일주일 동안 이 문제를 해결하려고 노력했기 때문에 미쳐가고 있습니다.

대본:두 개의 서로 다른 네트워크 장치가 있는 하나의 서버. 각 장치는 다른 회사 서브넷에 연결되어 있습니다.

eth0이(가) 연결되어 있고 x.y.5.184/29, 이 eth1(가) 연결되어 있습니다 x.y.88.224/27. 서버가 듣기를 원합니다둘 다장치.

Server-IP 입력 .5.184/29x.y.5.186, Server-IP 입력 .88.224/27은 입니다 x.y.88.253. Apache를 사용하여 두 개의 서로 다른 VM을 실행하고 싶으므로 서버는 해당 VM에 대한 natpf를 사용하여 x.y.5.186:p1VM1과 x.y.88.253:p2VM2를 수신해야 합니다.

xy개인 정보 보호 문제로 인해 숨겨져야 하지만 값이 제공됩니다 .

문제는 다음과 같습니다. 전원을 켜면 eth1서버가 응답하지 않고 eth0그 이유를 잘 모르겠습니다.

다음은 일부 출력입니다.~와 함께두 장치 모두 위로:

[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

그래서 내 생각은 그것이 경로일지도 모른다는 것입니다. /etc/sysconfig/network-scripts/route-eth0및 을 삭제했으므로 route-eth1이것이 기본값입니다.

[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

기본 경로를 삭제했습니다.eth1

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

그리고 여전히 아무것도 변하지 않습니다. IP 에 대한 Ping이 eth0실패했지만 다른 경로를 삭제하면

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

eth0다시 작동하고 모든 연결이 x.y.5.186다시 작동하지만 eth1작동이 중지됩니다. 내가 아는 한 내가 사용한 측정항목은 eth1문제를 해결해야 하지만 그렇지 않습니다. 이에 대해 생각하는 라우팅 전문가가 있습니까?

편집: 새로운 CentOS

답변1

이 질문은 여기에서 수없이 많이 제기되었습니다.

당신이 하려고 노력하는 것처럼 그것은 이루어질 수 없습니다. 당신은 필요합니다정책 라우팅. 이에 대한 베어본 소개를 찾을 수 있습니다.여기.

다음과 같이 지정해야 합니다.IP 규칙이는 두 개의 라우팅 테이블 중 어느 것을 적용할지 결정합니다. 하나는 패킷이 VM1의 IP 주소에서 오는 경우 테이블 1을 사용하고 그렇지 않으면 테이블 2를 사용하도록 지정합니다. 이것이 때때로 호출되는 이유입니다.소스 라우팅, 정책 라우팅 대신: 적용할 테이블이 대상 주소가 아닌 소스 IP 주소를 기준으로 선택되기 때문입니다.

관련 정보