서로 다른 물리적 네트워크에 있는 2개의 이더넷 어댑터에 동일한 IP 사용

서로 다른 물리적 네트워크에 있는 2개의 이더넷 어댑터에 동일한 IP 사용

2개의 네트워크 인터페이스가 있는 Linux 패널이 있습니다. 이 패널은 당사 네트워크의 장치와 통신하고 고객 네트워크에서 액세스할 수 있어야 하는 소프트웨어를 실행합니다. 하나의 인터페이스는 고정 네트워크 주소(192.168.1.x)를 사용하여 기계 네트워크에 연결되며, 패널의 IP는 항상 192.168.1.1입니다. 다른 인터페이스는 고객 네트워크에 대한 연결입니다. 우리는 모든 곳에 기계를 제공하기 때문에 고객 네트워크는 다양한 구성으로 제공됩니다. 따라서 두 번째 네트워크 포트도 192.168.1.x 네트워크에 있을 수도 있고 동일한 IP 192.168.1.1을 사용해야 할 수도 있습니다.

이 사양이 작동할까요? Linux에서 이를 어떻게 구성합니까?

답변1

안타깝게도 이는 IP가 두 인터페이스 모두에 있기 때문이 아니라 서브넷에 있기 때문에 제대로 작동하지 않습니다.

장치가 192.168.1.2와 통신해야 하는 경우 이 트래픽을 어떤 인터페이스에서 보내야 합니까? 고객의 장치가 귀하의 장치와 통신을 시도할 수도 있고 귀하의 장치가 귀하의 다른 장치 중 하나와 통신을 시도할 수도 있습니다. 커널은 (복잡한 라우팅 설정 없이) 알지 못합니다.

이를 수행하는 방법에는 여러 가지가 있습니다.

  1. 사용되지 않은 RFC1918 공간에서 가능한 가장 작은 서브넷을 선택합니다. 이렇게 하면 갈등 가능성이 최소화되지만 완전히 해소되지는 않습니다.

  2. 고객(또는 지원 직원)이 충돌하지 않는 것으로 변경할 수 있도록 내부 웹 공간을 구성 가능하게 만드세요.

  3. 사용링크 로컬 주소RFC1918 공간 대신. IPv4와 IPv6 모두 링크 로컬 주소를 갖습니다.

  4. 이를 위해 공용(라우팅 가능) IP 주소를 요청하세요. 모든 장치에서 동일한 세트를 사용할 수 있습니다. 기본적으로 충돌하지 않는다는 점을 제외하면 RFC1918 공간과 동일하게 사용합니다. IPv4로는 어려운 일이지만(기본적으로는 끝났습니다), IPv6을 사용할 수 있다면 훨씬 쉬울 것입니다.

  5. 클라이언트 장치와 통신해야 하는 프로세스가 다른 장치와 통신해야 하는 프로세스와 완전히 분리된 경우 각 인터페이스를 자체 네트워크 네임스페이스(참고자료 참조 ip netns)에 배치하면 각 네임스페이스는 192.168만 볼 수 있습니다. 24개의 서브넷이므로 충돌이 없습니다. 이는 복잡한 라우팅 설정 중 가장 간단합니다.

관련 정보