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.1
ARP그리고 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 가이드한 단계.