
ISP가 다른 두 개의 게이트웨이가 있습니다. 그 중 하나는 LAN 사용자의 기본값으로 정의되고 다른 ISP는 서버 및 VPN 트래픽의 기본값으로 사용됩니다. 이는 DHCP로 구성된 일반 라우팅 테이블을 사용하여 수행됩니다.
이제 업로드를 많이 사용하는 LAN 사용자 랩톱에 Google 드라이브와 기타 소프트웨어 트래픽을 설치하여 항상 기본 gw로 정의되지 않은 다른 ISP를 사용하기를 원합니다. 어떻게 하면 될까요??
내 초기 생각은 IPTABLES 또는 오징어를 사용하는 것입니다.
나는 이것으로 노력해 왔습니다.
iptables -t nat -A PREROUTING -d GOOGLE_IP -j DNAT --to-destination MY_SECOND_ISP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j SNAT --to-source GOOGLE_IP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j MASQUERADE
하지만 작동하지 않습니다. 테스트하면 트래픽이 기본 GW로 이동합니다.
iptables, Shorewall 또는 Squid를 사용하여 이를 수행하는 방법을 아시나요??
답변1
LAN 기본 GW(GW1) LAN IP가 192.168.1.1이고 서버 기본 GW(GW2) LAN IP가 192.168.1.2라고 가정하면, 즉 LAN은 동일한 세그먼트에 있는 두 라우터를 모두 봅니다.
대상이 GOOGLE_IP인 트래픽을 다음 홉 GW2 LAN IP 주소로 가리키는 GW1의 고정 경로를 구성할 수 있습니다.
GW1이 Cisco인 경우: ip 경로 GOOGLE_IP 255.255.255.255 GW2_LAN_IP
GW1이 Linux인 경우: ip 경로 추가 GOOGLE_IP/32 gw GW2_LAN_IP
이러한 방식으로 LAN의 호스트가 GOOGLE_IP로 트래픽을 보내면 트래픽은 GW1로 이동합니다.
그런 다음 GW1의 고정 경로가 트래픽을 GW2로 전달합니다.
그런 다음 GW2는 WAN 인터페이스 외부로 트래픽을 전달합니다.
인터넷에서 GW2로 들어오는 반환 트래픽은 LAN으로 전달되어 호스트에 도달합니다.
이 방법으로 GW1에서 경로를 한 번 생성하면 모든 LAN 호스트에서 작동합니다.
답변2
Google 드라이브와 같은 서비스는 클라우드에 있고 해당 IP는 언제든지 변경될 수 있으므로 귀하의 접근 방식은 조만간 작동하지 않을 것이라고 생각합니다.
게스트 OS 수준에서 DSCP 표시를 수행하여 원하는 애플리케이션의 트래픽을 차별화하는 또 다른 방법이 있습니다.
DSCP 표시는 패킷 자체에 '부착'되므로 해당 패킷을 라우터의 iptable과 일치시키고 VPN이나 원하는 다른 게이트웨이를 통해 라우팅할 수 있습니다.
그렇게 하면 예를 들어 googledrive.exe(또는 원하는 애플리케이션)가 어디에 연결을 시도하든 항상 VPN을 통해 라우팅된다는 의미입니다.
다음은 Windows를 사용하여 사용자 지정 DSCP 표시를 설정하는 방법에 대한 몇 가지 지침입니다. https://support.timso.com/index.php?/Knowledgebase/Article/View/24/3/windows-7-and-implementing-qos
iptables의 --dscp match 옵션을 사용하여 dscp 표시를 일치시킬 수 있습니다.
http://www.iptables.info/en/iptables-matches.html#DSCPMATCH
물론 위의 모든 내용은 원래 질문에 대한 답변이 아닙니다. 여전히 정책 라우팅이 작동하도록 해야 합니다.