한 서버에 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개 있는데 이는 문제입니다. 기본 게이트웨이만 필요하고 나머지는 특정 대상 네트워크여야 합니다.