듀얼 네트워크 인터페이스의 Linux 라우팅

듀얼 네트워크 인터페이스의 Linux 라우팅

한 서버에 2개의 VLAN과 2개의 해당 네트워크 인터페이스가 있는 시스템을 설정하려고 합니다. 서비스를 특정 인터페이스에 바인딩하여 해당 IP에서만 트래픽을 수신할 수 있기를 원합니다. 현재 설정은 다음과 같습니다.

(ifconfig)
  enp28s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet A.B.1.171  netmask 255.255.255.0  broadcast A.B.1.255
        inet6 [.....]  prefixlen 64  scopeid 0x20<link>
        ether [.....]  txqueuelen 1000  (Ethernet)
        RX packets 37262  bytes 6954634 (6.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28457  bytes 5529921 (5.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  enp28s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
        inet C.D.1.112  netmask 255.255.255.0  broadcast C.D.1.255
        inet6 [.....]  prefixlen 64  scopeid 0x20<link>
        ether [.....]  txqueuelen 1000  (Ethernet)
        RX packets 2314778  bytes 212155740 (202.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5446  bytes 604308 (590.1 KiB)
        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 1000  (Local Loopback)
        RX packets 6600  bytes 420545 (410.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6600  bytes 420545 (410.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(netstat -rn)
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
  0.0.0.0         A.B.1.1      0.0.0.0         UG        0 0          0 enp28s0f0
  0.0.0.0         C.D.1.1      0.0.0.0         UG        0 0          0 enp28s0f1
  A.B.1.0      0.0.0.0         255.255.255.0   U         0 0          0 enp28s0f0
  C.D.1.0      0.0.0.0         255.255.255.0   U         0 0          0 enp28s0f1

(ip route)
  default via A.B.1.1 dev enp28s0f0 proto static metric 100 
  default via C.D.1.1 dev enp28s0f1 proto static metric 101 
  A.B.1.0/24 dev enp28s0f0 proto kernel scope link src A.B.1.171 metric 100 
  C.D.1.0/24 dev enp28s0f1 proto kernel scope link src C.D.1.112 metric 101

(민감한 정보는 A, B, C, D로 대체했습니다)

현재 모든 인바운드 트래픽은 를 통해 라우팅됩니다 enp28s0f0. 서비스 A를 enp28s0f0인터페이스 IP 에 바인딩 A.B.1.171하고 정상적으로 트래픽을 수신 할 수 있습니다 . 인터페이스 IP를 통해 enp28s0f1서비스 A에 요청하면 C.D.1.112예상대로 서비스 A로 전송되지 않습니다.

그런데 서비스 B를 인터페이스 IP에 바인딩하면 enp28s0f1트래픽이 전혀 수신되지 않습니다( A.B.1.171및 에 요청을 보내 려고 했습니다 C.D.1.112). 나는 이것이 0.0.0.0동일한 게이트웨이를 사용하는 두 인터페이스 서브넷과 관련이 있다고 생각 하지만 완전히 확실하지는 않습니다.

또한 도움이 될 수 있는 점은 현재 1개의 라우팅 테이블(기본 라우팅 테이블)만 사용하고 있어 영향을 미칠 수 있지만 확실하지 않다는 것입니다.

서버가 RHEL 7.9를 실행 중입니다. 도움이나 안내를 부탁드립니다!

답변1

공유한 라우팅 테이블 출력에 따르면 기본 게이트웨이가 2개 있는데 이는 문제입니다. 기본 게이트웨이만 필요하고 나머지는 특정 대상 네트워크여야 합니다.

관련 정보