집에 2개의 LAN이 있습니다.
- 내 ISP 모뎀 뒤에서 실행되는 기본 LAN(IP 주소가 192.168.0.1인 라우터 역할을 하며 이를 라우터 A라고 함). 이 라우터에는 192.168.0.4에 Raspberry Pi가 연결되어 있습니다.
- 192.168.0.10(따라서 이 라우터의 기본 게이트웨이는 192.168.0.10)에서 내 모뎀(내 기본 LAN)에 연결되어 있는 무선 TP-LINK 라우터 뒤에서 실행되는 보조 LAN. 이를 라우터 B라고 하겠습니다. 라우터의 IP LAN의 주소는 192.168.1.1입니다. 이 라우터에는 주소 192.168.1.1의 삼바 공유를 통해 액세스하는 하드 드라이브가 연결되어 있습니다. 이 설정의 개요는 다음과 같습니다.
Router A 192.168.0.1 | | - Raspberry Pi | Router B 192.168.0.10 to router A, | 192.168.1.1 to clients within | Samba server - 192.168.1.1
내 Raspberry Pi에서 내 삼바 공유에 액세스하려고 하는데 서로 다른 LAN에 있기 때문에 Pi가 내 삼바 공유를 볼 수 없습니다. 라우터 B(포트 137~139 및 포트 445)에서 삼바 포트를 전달하고 IP 192.168.0.10(Pi LAN에 있는 라우터 B의 IP 주소)을 사용하여 Pi에서 공유에 액세스하려고 시도했지만 작동하지 않습니다. Wi-Fi 동글을 사용하여 Pi를 라우터 B의 LAN에 연결하면 IP 192.168.1.1에서 삼바 공유에 제대로 액세스할 수 있지만 멀리 떨어져 있기 때문에 연결이 계속 끊어집니다. Pi를 라우터 B에 물리적으로 연결하지 않고 이 작업을 어떻게 제안하시겠습니까?
답변1
당신은라우팅문제.
이것을 고려하십시오: 귀하의 RPI(192.168.0.x)는 다른 LAN(192.168.1.x)의 존재에 대해 아무것도 모릅니다. 바로 옆에 다른 LAN이 존재한다는 것을 어떻게 알릴 수 있습니까? 답변:노선, 이는 특정 서브넷/호스트에 접근할 수 있는 방법을 나타내는 매우 구체적인 정보입니다.
귀하의 예에서 LAN 192.168.1.x는 "라우터 B" 호스트(192.168.0.10) 뒤에 있습니다. LAN 192.168.1.x에 도달하려면 다른 LAN(192.168.0.x)에 연결된 호스트도 이와 똑같은 사실을 알아야 했습니다. 즉, 다른 LAN(192.168.1.x)은 라우터 192.168.0.10을 통해 볼 수 있음을 192.168.0.x LAN에 알려야 했습니다.
다음 Linux 라우팅 명령을 사용하여 이를 수행할 수 있습니다 route add -net 192.168.1.0/24 gw 192.168.0.10
. 이론적으로 이 명령은 192.168.0.x LAN에 있는 각 호스트에 필요합니다. 호스트가 여러 개(어쩌면 수십 개일 수도 있음)인 경우 수행하기가 다소 성가신 일입니다. 그러나 또 다른 해결 방법이 있습니다. 다양한 192.168.0.x 호스트가 다른 LAN에 대해 아무것도 알지 못하게 하고 기본 라우터(라우터 A - 192.168.0.1)에 그러한 네트워크가 존재한다는 것을 알립니다. 그러나 내가 읽은 바에 따르면 어떤 모드에서도 라우터 A의 라우팅 테이블을 변경할 수 없으므로 위에서 설명한 첫 번째 방법만 사용할 수 있습니다.
라우팅 수정을 포함하지 않는 마지막으로 권장되지 않는 솔루션은 포트 전달 방법입니다. 이 경우 기본적으로 라우터 B(192.168.0.10)에 "가짜" 삼바 수신기를 설정하고 각 삼바 요청을 내부 삼바 서버 192.168.1.1로 리디렉션하도록 지시합니다. 이것이 낙담하는 이유는 무엇입니까? NAT는 쓸데없이 네트워크 복잡성을 증가시킬 수 있고 라우터 B의 상당한 처리가 필요하기 때문에 연결 속도가 느려집니다.
마지막으로 할 일은 테스트/설정을 수행하는 것입니다.항상 서버 이름이 아닌 Samba의 IP 주소를 사용하십시오.이는 NETBEUI(NETBIOS로 발전)가 서로 다른 LAN 간에 작동하도록 설계되지 않았으며 이는 이름 확인 기능에 영향을 미치기 때문입니다. 따라서 여기서는 간단하게 설명하겠습니다. 삼바 서버의 IP 주소를 사용하여 연결을 테스트합니다.