대상 네트워크를 통해 다른 게이트웨이에서 트래픽을 라우팅합니다.

대상 네트워크를 통해 다른 게이트웨이에서 트래픽을 라우팅합니다.

게이트웨이가 여러 개 있고 대상에 따라 다른 게이트웨이에서 일부 트래픽을 라우팅하려고 합니다. iproute2와 iptables 규칙을 함께 사용해야 할 것 같은데 어디서부터 시작해야 할지 모르겠습니다.
누구든지 예를 들어 줄 수 있습니까?

답변1

당신은 아마도 당신이 원하는 것을 할 수 있습니다 ip route:

ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0

첫 번째는 ip route add단일 IP 주소를 보여주며 지정된 이더넷 인터페이스(ep3s8)를 다음 홉 라우터 10.0.0.1로 보냅니다.

두 번째 경로는 전체 네트워크 10.xyz에 대한 것이며 지정된 이더넷 카드 eth0으로 전송됩니다. 이것은 "로컬 네트워크"이며 다음 홉 라우터가 없으며 모두 동일한 논리 라인에 있습니다.

하지만 어떤 일을 하기 전에 먼저 읽어보고 싶을 것입니다 man ip-route. 또한 재부팅할 준비를 하고 원격으로 재부팅하지 마세요. 원격 액세스를 종료하는 잘못된 경로를 쉽게 만들 수 있습니다. 저는 이 마지막 조언에서 경험의 목소리를 대변합니다.

답변2

policy-based routing또는 에 대해 문의하셨습니다 source-based routing. 가지다좋은 소개저자: David Schwartz, 같은 웹사이트.

깔끔한 작은 프로그램도 있다는 점을 지적하고 싶습니다.여기에서 찾을 수 있습니다, 특정 애플리케이션을 특정 인터페이스에 바인딩할 수 있습니다. 물론 이는 원하는 수신 주소에 바인딩할 수 있는 옵션이 있는 openssh와 같은 애플리케이션의 경우 쉽습니다. 하지만 이 라이브러리를 사용하면 해당 옵션이 없는 애플리케이션(예: Firefox)도 지정된 IP 주소에 바인딩할 수 있습니다.

이렇게 하면 모든 애플리케이션에 대해 별도의 라우팅 테이블을 가질지, 아니면 애플리케이션별로 동일한 사양을 재정의할지 선택할 수 있습니다.

답변3

소스 베이스 라우팅에 대해 읽어보기 좋은 곳은 다음과 같습니다.Linux 고급 라우팅 및 트래픽 제어.
명령줄에서 설명서를 읽을 수도 있습니다.

man ip rule
man ip route

man ip-rule참고: 일부 시스템에서는 및 를 수행해야 할 수도 있습니다 man ip-route. 또는 온라인으로 읽을 수도 있습니다. 규칙 그리고  노선. 경고: 온라인 버전은 그렇지 않을 수 있습니다정확히 똑같다 시스템 버전에 맞게.

일반적으로 규칙을 추가해야 합니다. 예제에서는 인터페이스(eth1)를 지정했습니다. 이는 선택 사항이므로 생략할 수 있습니다.

# ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000

분해:

  • dev eth1   – 패킷을 보내는 데 사용될 장치
  • to 170.10.0.10- 목적지
  • table 2    – 경로를 추가해야 하는 테이블
  • priority 20000– 규칙의 우선순위

다음 명령을 실행하여 규칙을 볼 수 있습니다.

# ip ru sh
0:     from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default

다음으로 경로를 추가하고 경로가 추가될 테이블을 지정해야 합니다. 이 경우에는 표 2가 됩니다.

# ip route add table 2 via 170.10.0.1 default

경로를 보려면 다음을 실행해야 합니다.

# ip route show ta 2

관련 정보