고정 IP를 사용하여 여러 클라이언트로 OpenVPN 서버를 설정할 수 있었고 고정 IP는 ifconfig-push 192.168.254.6 192.168.255.1
각 클라이언트에 대해 ccd와 같은 줄을 추가하여 설정됩니다. 서버에서 각 클라이언트로 ping 또는 ssh를 실행할 수 있습니다. 내 서버 구성에는 다음 줄이 있습니다(다른 구성 중).
server 192.168.255.0 255.255.255.0
그리고
route 192.168.254.0 255.255.255.0
이제 제가 하려는 것은 한 클라이언트에서 다른 클라이언트로 ssh 또는 컬링을 할 수 있도록 하는 것입니다. 따라서 문서를 읽은 후 client-to-client
구성에 해당 행을 추가했습니다. 서버를 다시 시작하고 클라이언트를 다시 연결할 때 ip route
클라이언트에 다음 줄이 추가되는 것을 확인했습니다 .
192.168.255.0/24 via 192.168.255.1 dev tun0
내가 이해하는 것은 클라이언트에게 모든 주소가 192.168.255.X
VPN 서버로 이동한다는 것을 나타내는 것입니다. 실제로 저는 다음을 실행 traceroute 192.168.255.30
하고 얻어서 확인하려고 했습니다.
traceroute to 192.168.255.30 (192.168.255.30), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.454 ms 14.491 ms 14.493 ms
그러나 연결하려는 다른 클라이언트에는 다음과 같은 주소가 있으므로 192.168.254.X
뭔가 빠진 것 같고 실제로 무엇인지 모르겠습니다. 이 경로를 수동으로 추가해 보았습니다.
ip route add 192.168.254.0/24 via 192.168.255.1 dev tun0
나에게 이는 192.168.254.X와 같은 주소도 VPN 서버를 통과한다는 것을 의미합니다. 하지만 그렇게 하면 traceroute 192.168.254.30
결과가 달라집니다.
traceroute 192.168.254.30
traceroute to 192.168.254.30 (192.168.254.30), 30 hops max, 60 byte packets
또한 클라이언트 컴퓨터에서는 가능 ping 192.168.255.1
하지만 ping 192.168.254.30
.
192.168.254.30
내 네트워킹 지식은 매우 제한되어 있습니다. 클라이언트가 다른 클라이언트의 서비스에 액세스할 수 있도록 하기 위해 누락된 것은 무엇입니까?192.168.254.32
업데이트:새 클라이언트를 VPN에 연결했습니다. 이번에는 ccd 파일에 192.168.255.X 범위의 IP를 할당한 다음 테스트 중인 클라이언트에서 Traceroute를 실행하려고 했습니다. 255 범위의 클라이언트에도 연결할 수 없습니다. 또한, Traceroute를 실행하면 다음과 같은 일이 발생합니다.
이 새 클라이언트 192.168.255.22
에는 테스트 클라이언트에서 다음과 같은 결과가 traceroute 192.168.255.3
표시됩니다.
traceroute to 192.168.255.3 (192.168.255.3), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.481 ms 21.192 ms 21.472 ms
클라이언트가 없는 ips 4, 5, 6에서도 마찬가지입니다. 22
새 클라이언트의 IP가 무엇인지 알 때까지 다음과 같은 결과를 traceroute 192.168.255.22
얻습니다.
traceroute to 192.168.255.22 (192.168.255.22), 30 hops max, 60 byte packets
왜 이런 일이 발생합니까?
답변1
OpenVPN 서버를 통해 서로 다른 서브넷 간에 트래픽을 라우팅하려는 것 같습니다. 이렇게 하는 것이 가능하지만 OpenVPN 구성을 추가로 변경해야 합니다.
가장 먼저 주목해야 할 점은 server
OpenVPN 구성 파일의 지시문이 서버 자체에서 사용할 서브넷을 정의한다는 것입니다. 귀하의 경우 서버는 192.168.255.0/24
서브넷을 사용합니다. 이는 클라이언트에 해당 범위의 IP 주소가 할당된다는 의미입니다 192.168.255.X
.
route
반면에 지시문은 OpenVPN 클라이언트에서 특정 서브넷으로의 트래픽 경로를 정의합니다 . 귀하의 경우 route
지시문은 클라이언트의 트래픽이 서브넷으로 라우팅되어야 함을 OpenVPN 서버에 지시합니다 192.168.254.0/24
.
그러나 클라이언트가 서로 다른 서브넷을 통해 서로 통신할 수 있도록 하는 것만으로는 충분하지 않습니다. 또한 push
OpenVPN 서버 구성 파일에 지시어를 추가해야 합니다 . 이 지시문은 OpenVPN 서버에 클라이언트에 경로를 푸시하도록 지시하여 다른 서브넷으로 트래픽을 라우팅하는 방법을 알 수 있도록 합니다.
다음은 구성 파일에서 push 지시문이 어떻게 보일지에 대한 예입니다.
push "route 192.168.254.0 255.255.255.0"
이 지시문은 OpenVPN 서버에 클라이언트에 대한 경로를 푸시하고 192.168.254.0/24
OpenVPN 서버를 통해 서브넷으로 트래픽을 라우팅하도록 지시합니다.
client-to-client
또한 서버 구성에서 지시문이 활성화되어 있는지 확인해야 합니다 . 이 지시문은 클라이언트가 서버를 통해 트래픽을 라우팅하지 않고 서로 직접 통신할 수 있도록 OpenVPN 서버에 지시합니다.
구성을 변경하고 나면 클라이언트를 OpenVPN 서버에 연결하고 서로 다른 서브넷을 통해 서로 통신할 수 있습니다.
client-to-client
이 지시문은 클라이언트가 동일한 서브넷을 사용하는 경우에만 클라이언트가 서로 통신하도록 허용한다는 점에 주목할 가치가 있습니다 . 예를 들어, 클라이언트가 192.168.255.X
범위에 IP 주소를 가지고 있는 경우 해당 범위에 IP 주소가 있는 다른 클라이언트하고만 통신할 수 있습니다 192.168.255.X
. 서로 다른 서브넷에 있는 클라이언트가 서로 통신하려면 위에서 설명한 대로 push 지시문을 사용해야 합니다.