Tailscale의 Subnet Router와 Exit Node에 대해서 알아보기 (2부)
안녕하세요. 달소입니다.
앞서 Tailscale에 대한 소개와 기본 연결에 대해서 진행해봤습니다.
Tailscale이란 무엇인가?? 기본적인 개념과 사용방법.[서버 구축(Self-Hosted)] 달소 2023.09.09 안녕하세요. 달소입니다. 이번글은 Tailscale의 기본적인 개념과 사용방법에 대해서 소개해드...
이번 글에서는 전통적인 VPN에 가깝게 Tailscale을 설정하는 방법을 진행해보겠습니다.
전통적인 VPN이라고하면 중앙의 서버를 통해서 다른 노드와 연결하는방식인데요.
여기서는 두가지 방식을 소개해드리겠습니다.
서브넷 라우터란?
서브넷 라우터라는 이름에 걸맞게 트래픽이 등록된 Tailscale Node를 통해서 트래픽이 통신하는걸 의미합니다.
Tailscale의 경우 각 Device마다 클라이언트를 설치해서 통신하는게 가장 이상적이지만 Device가 지원을 못하는경우도있고 설치를하기 어려운경우도 있기때문에 해당 네트워크에 통신하기 위해서 서브넷 라우터 노드를 사용할 수 있습니다.

위 사진에서 보시다시피 Tailscale에 등록된 Node가 중간에 게이트웨이 역할을 해서 192.168.0.x 로 통신을 하게될때에는 해당 라우터에서 트래픽을 중계해줘서 내부통신이 가능해지게됩니다.
이경우에 192.168.0.x 의 기기들은 Tailscale 클라이언트 설치가 되지않았음에도 외부에서 접근이 가능합니다.
여기서는 Linux node 를 Routing 노드로 만드는 방법입니다.
사전작업으로 아래 내용을 서버에서 실행시켜주세요.
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf

그리고나서 routing 모드로 실행시켜줍니다.
여기서 내부망은 192.168.1.x 대역을 기준입니다.
sudo tailscale up --advertise-routes=192.168.1.0/24
실행 후 관리콘솔에 들어가면 아래처럼 Subnets 라고 표기되어있습니다.

그리고 노드 오른쪾 설정의 ```을 가서 Edit route Setting 을 눌러줘서 라우팅을 승인해주시면 완료입니다.


키의경우 3개월마다 expire되는데 이러한 노드들의경우 expire가 되면 통신이 모두 끊기니 예외처리를해주실 수 있습니다.

ACL 관련설정은 아래 링크를 참고해주시면되겠습니다.
이제 Tailscale에 연결하고나서 192.168.1.x 대역에 접속을 시도하면 해당 노드를 타고갑니다.
이러면 내부망과 자연스럽게 연결이 되겠죠??
테스트하는방법은 직접 연결해보는 방법이 있지만 Tailscale에 연결된 기기에서 아래와같이 치면 확인이 됩니다.

ds-wireguard를 거쳐서 간다고 나와있죠? 그럼 성공입니다.
이제 Exit Node로 가보겠습니다
Exit Node 설정하기
Exit Node라는 이름이 조금 생소하실수도 있지만
보편적으로 VPN을 타고갔을때는 무조건 Gateway를 타고가기때문에 공인 IP로 바뀌는데 Tailscale의경우 exitnode를 지정해주지 않으면 Tailscale에 등록된 기기들과 서브넷들만 통신이 됩니다.

그런데 외부에 안전하지않는 Wifi를 사용하거나 해외에서 국내 IP를 사용해야하거나 국내에서 해외 서버를 이용해서 통신해야할 경우가 생기면 Exit Node를 사용해서 통신을 하게됩니다.

출구노드도 리눅스 서버를 기반으로 말씀드리겠습니다.
아래의 과정을 먼저 진행해주세요.
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
그리고 서버에서 장치를 종료노드로 사용을 허용해줍니다.
sudo tailscale up --advertise-exit-node
등록이되면 마찬가지로 관리콘솔에서 확인 및 설정을 해줘야합니다.



마찬가지로 key expire를 해주시면 좋습니다.
이제 이 필요할때 exit node를 사용하려면 클라이언트별로 설정해주면됩니다.


이렇게 exit node를 설정하고나서 ip.pe.kr 등 공인 ip를 확인해보시면 정상적으로 사용되는걸 보실 수 있습니다~