패킷을 수신한 것과 동일한 인터페이스를 통해 패킷을 보내도록 Linux 라우팅을 구성하는 방법은 무엇입니까?

패킷을 수신한 것과 동일한 인터페이스를 통해 패킷을 보내도록 Linux 라우팅을 구성하는 방법은 무엇입니까?

다음과 같은 라우팅 테이블이 있습니다

10.0.1.0/24 dev eth0  proto kernel  scope link  src 10.0.1.151
10.0.10.0/24 dev eth1  proto kernel  scope link  src 10.0.10.151
default via 10.0.1.1 dev eth0

두 개의 링크가 있습니다. 하나는 LAN을 통과하고 10.0.1.1을 통해 인터넷으로 연결됩니다. 다른 하나는 eth1에 직접 연결된 ADSL 라우터(10.0.10.1)입니다.

외부에서 외부 IP 주소 10.0.10.1로 접속하면 타임아웃이 발생합니다. 기본 경로를 10.0.10.1로 변경하면 외부에서 외부 IP 주소인 10.0.10.1로 접속이 됩니다. 따라서 이것은 라우팅 문제처럼 보이지만(패킷은 10.0.10.1에서 왔지만 기본 경로인 10.0.1.1에서 나옴) 어떻게 해결해야 할지 잘 모르겠습니다.

실제로 기본 경로를 10.0.1.1로 만들고 싶습니다. 동일한 인터페이스를 통해 외부 IP 10.0.10.1에 대한 요청에 응답하고 싶습니다.

답변1

iproute2에서 제공하는 고급 라우팅 테이블을 사용해야 합니다. 2개의 테이블을 설정하고 IP에서 들어오는 모든 트래픽을 특정 테이블로 보냅니다. 이 테이블에서 기본 게이트웨이를 설정할 수 있습니다. 전역 기본 경로를 설정하려면 메트릭을 통해 다른 인터페이스보다 하나의 인터페이스를 선호합니다.

예:

  • 테이블에 기본 게이트웨이를 추가합니다.

IP 경로는 10.0.1.1 테이블 101을 통해 기본값을 추가합니다.

IP 경로는 10.0.10.1 테이블 102를 통해 기본값을 추가합니다.

  • 특정 IP에서 들어오는 모든 트래픽이 테이블로 전송된다는 규칙을 추가합니다.

10.0.1.151 조회 101에서 IP 규칙 추가

10.0.10.151 조회 102에서 IP 규칙 추가

  • 선호하는 게이트웨이 측정항목을 추가하세요.

IP 경로는 10.0.1.151 메트릭 1000을 통해 기본값을 추가합니다.

IP 경로는 10.0.10.151 메트릭 2000을 통해 기본값을 추가합니다.

이것이 당신이 시작하는 데 도움이 되기를 바랍니다 :)

관련 정보