다른 서브넷의 가상 IP 주소로 라우팅되는 Linux 네트워크

다른 서브넷의 가상 IP 주소로 라우팅되는 Linux 네트워크

Linux 네트워킹을 처음 접하면서 다른 서브넷에서 가상 IP 주소로 라우팅하는 방법에 대해 질문이 있습니다.

세 개의 서버가 있습니다(모두 서로 ping할 수 있음).

10.10.51.182(라우터 Y에 연결됨)
두번째10.10.51.183 (라우터 Y에 연결됨)
10.10.60.10 (라우터 Z에 연결됨)

서버에서, 1000개의 가상 인터페이스를 만들었습니다.

# ifconfig eth0:0 192.168.1.1 netmask 255.255.0.0  
# ifconfig eth0:1 192.168.1.2 netmask 255.255.0.0  
....  
# ifconfig eth0:999 192.168.5.200 netmask 255.255.0.0  

각 가상 인터페이스는 카메라 시뮬레이션 소프트웨어를 사용하여 카메라 장치를 시뮬레이션합니다.

서버에서두번째, 다음 경로를 추가했습니다.

# route add -net 192.168.0.0 netmask 255.255.0.0 eth0

바라보다,두번째머신의 가상 인터페이스에 액세스/핑할 수 있습니다..

섬기는 사람다른 서브넷(10.10.60.0)에 이 경로를 추가했지만 작동할 것이라는 희망은 매우 낮습니다.

# route add -net 192.168.0.0 netmask 255.255.0.0 eth0

예상대로 서버의 가상 인터페이스에 액세스할 수 없습니다., 그래서 해당 경로를 삭제하고 라우터의 게이트웨이 IP를 사용하여 다음 경로를 추가했습니다.:

# route add -net 192.168.0.0 netmask 255.255.0.0 gw 10.10.51.1 eth0
SIOCADDRT: Network is unreachable

서버는 게이트웨이 10.10.51.1을 ping할 수 있습니다., 하지만 오류 메시지의 의미는 다음과 같습니다.GW동일한 서브넷(10.10.60)에 직접 있지 않습니다.

서버에서 구성할 수 있는 구성/라우팅그리고/또는~을 위한서버의 가상 인터페이스에 대한 핑/액세스. 라우터 구성을 변경할 권한이 없습니다.

그러나 단순히 서버 구성을 변경하는 것이 절대 불가능하다면 네트워킹 측면에서 그 이유를 설명할 수 있는 사람이 있습니까?두번째가상 인터페이스에 액세스할 수 있습니다., 하지만액세스할 수 있는 방법이 없습니다. 라우터가 있나요?"192.168.0.0"에 바인딩된 패킷 보기패킷이 동일한 서브넷에서 시작되면 자동으로 삭제됩니다(두번째) 허가를 받나요?

답변1

간단한 솔루션은 다음과 같은 두 서버 사이에 터널을 생성합니다.

서버 A에서:

ip tunnel add tunnel mode ipip remote 10.10.60.10
ip addr add 10.1.1.1/24 dev tunnel
sysctl -w net.ipv4.ip_forward=1

마지막 명령은 새로 생성된 터널 장치에서 가상 이더넷 장치로 패킷을 전달합니다.

서버 C에서

ip tunnel add tunnel mode ipip remote 10.10.51.182
ip addr add 10.1.1.2/24 dev tunnel
ip route add 192.168.0.0/16 via 10.1.1.1

서버 간 방화벽에 따라 일부 규칙을 조정해야 할 수도 있습니다.

설명: 공유 네트워크 세그먼트에 Server A있습니다 Server B. 예를 들어 데이터 패킷을 해당 게이트웨이로 보내지 않고도 서로에게 데이터 패킷을 보낼 수 있습니다. 즉, 다음을 통해 직접 Server B주소를 확인해 보세요.192.168.1.1ARP그리고 Server A그들에게 답장을 보내세요.

Server A그리고 Server C다른 네트워크 세그먼트에 있습니다. 예를 들어 Server C요청만 하면 192.168.1.1(라우팅 명령이 됨 Server C) 아무런 응답도 받지 못합니다. 이 문제를 해결하려면 일반적으로 라우팅 테이블을 통해 특정 시스템에 도달하는 방법을 지정할 수 있지만 다음 홉만 지정할 수 있습니다. 두 시스템 사이에 터널을 만들어야 한다는 router Z사실을 모르는 것 같습니다 .192.168.0.0/24

추가 팁은 가상 이더넷 장치를 생성할 필요가 없으며 네트워크 장치에 IP 주소를 원하는 만큼 추가할 수 있다는 것입니다. 예를 들면 다음과 같습니다.

for first in {1..4} ; do
   for second in {1..255} ; do
     ip addr add 192.168.$first.$second/16 dev eth0
    done
done

답변2

여러 가지 옵션이 있습니다:

  • 컴퓨터 C는 A와 B와 동일한 물리적 네트워크에 연결되어야 합니다.
  • 라우터 Y에는 192.168.0.0/16의 주소가 있어야 하고, 라우터 Z에는 라우터 Y를 통해 192.168.0.0/16으로의 경로가 필요합니다.
  • 컴퓨터 C와 컴퓨터 A 사이에 ip-ip(또는 VPN) 터널을 생성하고 터널 인터페이스를 통해 192.168.0.0/16에 대한 트래픽을 라우팅합니다.

터널을 만드는 것이 수정을 위한 최선의 옵션일 수 있습니다.오직컴퓨터 A와 C. 보다IP-IP 가이드한 단계.

관련 정보