
(이것원래 질문이었는데, 최종 해결 방법이 원래 질문했던 방식과 많이 달라서 새로운 질문으로 게시합니다. )
배경:
관리(eth0), 프로덕션(eth1), 백업(eth2)이라는 세 가지 인터페이스를 갖춘 가상 머신이 있습니다. 관리는 RDP 및 SSH 트래픽에 사용됩니다. 생산은 대부분의 트래픽에 사용됩니다. 백업은 동일한 서브넷의 백업 서비스와 통신하는 데 사용됩니다. 각 네트워크는 고유한 용도로 제한되며 다른 네트워크 중 하나에서 전달되는 것으로 보이는 모든 트래픽은 삭제됩니다(예: tcp/22
프로덕션 네트워크에서).
질문:
SSH 트래픽은 관리 포트를 통해 서버에 들어오지만 프로덕션 인터페이스로 나갑니다.
이로 인해 패킷이 tcp/22
프로덕션 네트워크로 전송될 때 트래픽이 삭제됩니다.
관리 게이트웨이를 가리키도록 기본 경로를 변경하면 패킷이 올바른 인터페이스로 나가므로 ssh는 작동하지만 모든 프로덕션 트래픽은 작동이 중지됩니다. PROD를 가리키는 기본 경로를 유지할 수 있으며 동일한 서브넷의 컴퓨터에서 연결하는 한 계속 작동합니다.
트래픽이 발생하는 인터페이스를 기반으로 기본 게이트웨이를 설정하려면 커널이 필요합니다.
답변1
모든 고급 라우팅(예: 여러 기본 게이트웨이 설정)에는 다음이 포함됩니다.정책 기반 라우팅.
특정 포트로 향하는 패킷 표시를 기반으로 한 전달 솔루션이 여러 가지 공개되어 있지만 Red Hat 고객 포털에서 찾은 솔루션이 훨씬 더 쉬웠고 더 광범위하게 적용할 수 있을 것으로 나타났습니다.
에 추가 /etc/rc.local
:
백업 라우팅 테이블 설정, 나한테 전화했어
2
./sbin/ip 경로 추가 테이블 2 기본값은 <관리 게이트웨이>
관리 게이트웨이가 설정된 대체 라우팅 테이블을 사용하도록 관리 IP의 트래픽을 설정합니다.
<관리 IP 주소> 표 2에서 /sbin/ip 규칙이 추가되었습니다.
위의 작동 방식은 기본 라우팅 테이블의 기본 게이트웨이가 프로덕션 환경(eth1)을 가리키도록 하는 것입니다. 2단계의 게이트웨이는 eth0과 연결된 IP 주소에서 발생하는 모든 트래픽에 대해 선택됩니다.
내 특별한 경우에는 모든 트래픽이 동일한 서브넷에 있었기 때문에 백업 네트워크는 게이트웨이 설정에 민감하지 않았습니다. 그러나 백업 네트워크에 여러 개의 서브넷이 있는 경우 세 번째 라우팅 테이블을 설정하고 ip rule add
해당 라우팅 테이블에서 유사한 작업을 수행할 수 있습니다.
정책 기반 라우팅이 없으면 커널은 기본 라우팅 테이블을 참조하여 트래픽을 내보낼 인터페이스를 결정합니다. 즉, 다른 노드가 연결된 인터페이스 중 하나와 동일한 서브넷에 있으면 올바른 인터페이스가 선택되고, 그렇지 않으면 트래픽이 기본 경로를 통해 전송됩니다. 네트워크가 계속해서 패킷을 라우팅하는 경우("잘못된" 인터페이스에서 발생하더라도) 이 동작은 표시되지 않지만 제 경우에는 트래픽이 삭제되는 결과를 가져왔습니다.
정책 기반 라우팅을 구현한 후 프로덕션 및 관리/SSH 트래픽이 예상대로 실행되기 시작했습니다.