Linux는 두 개의 서로 다른 게이트웨이를 사용하여 두 개의 서로 다른 LAN을 라우팅합니다.

Linux는 두 개의 서로 다른 게이트웨이를 사용하여 두 개의 서로 다른 LAN을 라우팅합니다.

각각 자체 ISP 게이트웨이가 있는 두 개의 서로 다른 네트워크(별도의 LAN)가 있고 이를 확장하고 싶습니다(한 LAN에서 다른 LAN으로의 사용자). ISP 게이트웨이는 멋진 기능(예: 정적 라우팅)이 없는 어리석은 브랜드 홈 게이트웨이입니다.

기본적으로 현재 토폴로지는 다음과 같습니다.

LAN1 -> ISP_G1 -> WAN
LAN2 -> ISP_G2 -> WAN

LAN을 확장하고 각 LAN에 대한 WAN 트래픽을 유지하고 싶습니다. 내 생각은 Linux 상자를 라우터/DHCP 서버로 사용하여 WAN을 각 LAN에 연결하는 동시에 한 LAN에서 다른 LAN으로 핑을 보낼 수도 있다는 것입니다.

내가 시도하는 토폴로지는 다음과 같습니다.

WAN -> ISP_G1 -> LAN1/Switch1 -> Linux/Router <- LAN2/Switch2 <- ISP_G2 <- WAN

Linux/라우터 시스템에는 각각 서로 다른 LAN에 연결된 두 개의 이더넷 인터페이스가 있으며 DHCP 서버 역할도 하여 각 LAN의 클라이언트에 두 개의 서로 다른 서브넷을 제공합니다.

주소 지정은 다음과 같습니다.

Linux/Router machine:
eth0: 10.0.0.2
eth1: 10.0.1.2

ISP gateways:
ISP_G1: 10.0.0.1
ISP_G2: 10.0.1.1

ISP 게이트웨이의 DHCP는 꺼지고 대신 Linux 시스템은 서로 다른 서브넷(예: 10.0.0.0/24 및 10.0.1.0/24)을 기반으로 클라이언트에 IP를 제공하는 DHCP 서버 역할을 합니다. 또한 클라이언트에게 게이트웨이가 ISP 게이트웨이가 아니라 Linux 시스템 자체임을 알려줍니다(예: LAN1의 경우 10.0.0.2, LAN2의 경우 10.0.1.2).

내 문제는 Linux 시스템에 구성된 WAN 게이트웨이에 따라 하나의 LAN만 서브넷과 해당 WAN에 모두 액세스할 수 있다는 것입니다.

예를 들어, Linux 시스템이 ISP_G2를 게이트웨이로 구성한 경우 LAN1은 LAN2에 액세스할 수 있지만 WAN에는 액세스할 수 없으며 그 반대의 경우도 마찬가지입니다.

Linux 시스템의 라우팅 테이블을 기반으로 다른 게이트웨이를 지정하려고 합니다. 예를 들면 다음과 같습니다.

ip route add default via 10.0.0.1 dev eth0 table subnet1
ip rule add from 10.0.0.0/24 table subnet1

그러나 LAN1은 ISP_G1을 통해 WAN에 액세스할 수 있지만 더 이상 LAN2에 액세스할 수 없습니다.

나에게 필요한 것은 WAN 트래픽에 대해서만 LAN1 게이트웨이를 ISP_G1로 변경하고 Linux 시스템을 모든 LAN 관련 트래픽에 대해 LAN1 게이트웨이로 남겨 두는 방법입니다.

어떤 조언이라도 대단히 감사하겠습니다.

답변1

소스 라우팅이 이를 가능하게 해야 한다고 생각하지만, 두 네트워크 모두에 대한 모든 경로, 즉 기본 경로와 다른 네트워크에 대한 경로를 명시적으로 생성해야 합니다. 이 같은:

ip route add default via 10.0.0.1 dev eth0 table subnet1
ip route add 10.0.1.0/24 dev eth1 table subnet1
ip rule add from 10.0.0.0/24 table subnet1

다른 블록도 마찬가지이며 중앙 상자 자체에도 기본 경로가 있습니다.


또 다른 옵션은 클라이언트에게 기본 경로와 다른 네트워크 블록에 대한 고정 경로를 제공하도록 DHCP에 지시하는 것입니다. 그래서 그들은 자신의 인터넷 게이트웨이와 통신할 수 있고 중앙 상자를 통과할 필요 없이 중앙 상자를 통과하여 반대편으로 갈 수 있습니다.

가지다언급하다option classless-static-routes컨텍스트에 dhclient있지만 ISC DHCP 서버는 이를 직접 지원하지 않는 것 같습니다.

대신 옵션을 수동으로 삽입해야 할 수도 있습니다. 이를 설명하는 몇 가지 예가 있습니다.여기, 형식에 대한 설명은 약간 더 간단합니다.RFC 3442"클래스 없는 라우팅 옵션 형식"에서 형식을 설명합니다.

관련 정보