![각 애플리케이션에 대해 서로 다른 기본 게이트웨이를 설정할 수 있습니까?](https://linux55.com/image/200465/%EA%B0%81%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%97%90%20%EB%8C%80%ED%95%B4%20%EC%84%9C%EB%A1%9C%20%EB%8B%A4%EB%A5%B8%20%EA%B8%B0%EB%B3%B8%20%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4%EB%A5%BC%20%EC%84%A4%EC%A0%95%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
내 네트워크에 두 개의 서로 다른 활성 작업 게이트웨이가 있는 컴퓨터가 있다고 가정해 보겠습니다. 우리는 이것을 더 넓은 인터넷 세계에 앞서 회사 네트워크로 모든 것을 라우팅하는 ISP 및 독립형 VPN 장치에서 제공하는 10.0.0.1
인터넷에 대한 "일반" 게이트웨이 라고 부릅니다. 10.0.0.2
이것의 부작용은 다른 지리적 위치에서 온라인으로 나타난다는 것입니다.
이 네트워크에서 사용자(또는 관리자)는 DHCP 서버가 알려주는 내용이나 설정하기로 결정한 내용에 따라 사용할 게이트웨이를 선택할 수 있습니다. 이는 많은 사람들에게 편리합니다. 게이트웨이를 통해 본국에서 더 빠르고 짧은 대기 시간으로 인터넷에 액세스할 수 있고 A
게이트웨이를 통해 내부 리소스(및 미국 인터넷)에 액세스할 수 있습니다 B
.
이 네트워크에서 Linux를 실행하는 시스템의 경우 네트워크의 라우팅을 변경할 수 있습니까?애플리케이션 당베이스? 난 우리가 할 수 있다는 걸 알아호스트당ip route
패킷을 보낼 위치를 미리 알고 있지만 하나의 애플리케이션(예: Firefox)을 열어 모든 패킷을 게이트웨이로 보내고 다른 A
애플리케이션(예: Chromium)을 게이트웨이로 보내고 싶다면 어떻게 해야 할까요 B
?
이는 VLAN, VM(또는 컨테이너) 및 가상 네트워크 어댑터를 사용하여 분명히 가능하지만 "베어메탈" 답변이 있는지 알고 싶습니다.
답변1
다른 사용자를 사용하려는 경우 소규모 Linux 정책 라우팅 구성을 사용하여 이를 수행할 수 있습니다.
VPN 장치 게이트웨이를 사용하는 애플리케이션의 사용자로 사용자 uid 1001을 사용한다고 가정합니다. 또한 기본 라우팅 구성이 매우 간단하고 추가하려는 정책 라우팅 구성을 방해하지 않는다고 가정합니다.
VPN 애플리케이션을 사용하려면 특수 경로를 추가하세요.
ip route add default via 10.0.0.2 table 110
정책 라우팅을 사용하여 uid 1001을 가진 사용자에게 이 특수 경로를 적용합니다.
ip rule add uidrange 1001-1001 lookup 110 pref 29000
참고: 동일한 DNS 서버를 계속 사용하게 됩니다. 이를 변경할 수 있는 방법이 있지만 Linux 네임스페이스를 사용하는 것이 더 나을 수도 있습니다.
참고: 일부 응용 프로그램(예: Traceroute)은 바이너리에 setuid 플래그를 설정합니다. 이로 인해 애플리케이션의 네트워크 트래픽이 위의 정책 라우팅 규칙과 일치하지 않게 됩니다.