• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

tailscale 관련, 두 장소의 서버를 하나로 묶을 수 있을까요?

붕어분쇄기 320

0

13

현재 두 장소에서 간단하게 홈서버를 이용하고 있습니다.

두 장소 모두 n100에 proxmox 올리고, LXC에 tailscale 올려서 사용중인데요.

tailscale에서 subnet을 설정하여 해당 로컬의 모든 IP로 접속이 가능합니다.

서버 포럼에서 공유해주신 글들과 인터넷의 도움으로 설정을 하는데 계속 막히고있습니다! 혹시 이것을 구현할 수 있을까요?

 

예를들어,

1번 장소 192.168.1.0/24

   - prxmox: 192.168.1.100

   - tailscale LXC: 192.168.1.101

   - Nginx프록시 서버 LXC: 192.168.1.102

2번 장소 192.168.2.0/24

   - prxmox: 192.168.2.100

   - tailscale LXC: 192.168.2.101

   - Nginx프록시 서버 LXC: 192.168.2.102

 

위 구성에서 1번 장소의 tailscale LXC를 게이트웨이로 설정해놓고 nginx LXC의 게이트웨이를 192.168.1.101로 설정하면 ping 192.168.2.102로 핑이 갈 줄 알았는데 안되더라구요.

 

1번 장소의 tailscale LXC에서 ping 192.168.2.102로 보내보면 도착하던데, 왜 두번 보내면 안되는 걸까요?

혹시라도 NAT규칙에 의해 드랍되는걸까요?

 

정리

현재: 192.168.1.101에서 ping을 치면 192.168.2.102로 정상적으로 도달합니다. 하지만 192.168.1.102에서 2.102로 핑을치면 연결이 안됩니다.

(1.101 >tailscale> 2.101 > 2.102 - 가능)

(1.102 > 1.101 >tailscale> 2.101 > 2.102 - 불가)

 

1.102에서 traceroute 구글로 하면 정상적으로 1.101을 통해서 구글로 지나갑니다.

 

nignx 프록시 서버에서 1.101로 설정 된 게이트웨이를 통해 리버스 프록시로 다른 서버군들을 모두 이용하고 싶은데 방법이 있을까요?

 

 

* 아래는 1번의 tailscale LXC에서 iptables를 확인한 결과입니다. 혹시라도 `DROP       all  --  100.64.0.0/10        anywhere  `부분의 문제일까요?

 

 

Chain ts-forward (1 references)
target     prot opt source               destination         
MARK       all  --  anywhere             anywhere             MARK xset 0x40000/0xff0000
ACCEPT     all  --  anywhere             anywhere             mark match 0x40000/0xff0000
DROP       all  --  100.64.0.0/10        anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain ts-input (1 references)
target     prot opt source               destination         
ACCEPT     all  --  mimcow2.tail95b2e.ts.net  anywhere            
RETURN     all  --  100.115.92.0/23      anywhere            
DROP       all  --  100.64.0.0/10        anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     udp  --  anywhere             anywhere             udp dpt:41641

신고공유스크랩
13
profile image 1등
너굴맨봇 2024.03.06. 18:43
안녕하세요, 붕어분쇄기님.😊
 

좋은답변을 받기위해서는 좋은 질문이 필요합니다.

유의할점⚠️

  • 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
  • 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
  • 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
    • (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)

질문방법🙏

자신의 상황을 최대한 자세히 설명해주세요.

상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다. 

ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.

*가능하면 최신버전 OS/SW를 이용해주세요

 

답변에대한 피드백을 주세요.

정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.

이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.

2등
purndal 2024.03.06. 18:53
일전에 테스트 한 내용대로 이야기를 해본다면

사무실 : 192.168.0.0
tailscale : 192.168.0.100 subnet 설정

집 : 192.168.10.0
tailscale : 192.168.10.100 subnet 설정

이렇게 구성 한 다음 각 구역의 pc에 tailscale 을 설치 / 등록 하고 해당 아이피를 접속 가능했습니다.

이 상황을 본다면 지금 tailscale 서버를 별도로 두는것이 아니라 npm 프록시에 tailscale 을 설정을 하고
연결을 해야하지 않을까 싶네요.

지금 저 역시 subnet은 구성하지 않더라도 oci npm -> 집 서버 의 구성으로 도메인 잘 연결되어지고 있습니다.
붕어분쇄기 글쓴이 2024.03.06. 23:24
purndal
맞습니다...IP만 보면 말씀하신데로 npm 프록시에 tailscale을 설치하면 가능하지만, 혹시 현재 구성에서 NAT규칙을 바꿔 해결해볼 수 있나 하여 질문남기게 되었습니다 ㅜㅜ
1.101(tailscale이 설치된) >tailscale> 2.101(tailscale이 설치된) > 2.102 - 가능

지금은 결국 npm과 tailscale을 하나의 LXC에 설치하는쪽으로 고려중입니다.
3등
klayf 2024.03.06. 21:47

혹시 Ping 상태 메시지가 어떻게 표시되는지 궁금합니다.

 

(Destination host unreachable, Request times out 등)

붕어분쇄기 글쓴이 2024.03.06. 23:32
klayf
LXC상태라, (192.169. 생략..)
1.101(tailscale이 설치된) >tailscale> 2.101(tailscale이 설치된) > 2.102 이 구성은 정상적으로 핑이 가고있습니다.

아래는 2개의 LXC에서의 ping 및 라우트 정보입니다.
본문의 내용은 설명을 돕기위해 간단히 구성하였고, 실제로는 192.168.71.0/24(1번 장소)와 192.168.61.0/24(2번장소)로 구성되어있습니다! 각각의 대역에서 1번은 라우터입니다. (혹시 요청하신 내용이 이게 맞나 모르겠네요..)


192.168.71.0/24 대역
root@tailscale:~# ip route
default via 192.168.71.1 dev eth0 proto static
192.168.71.0/24 dev eth0 proto kernel scope link src 192.168.71.160
root@tailscale:~# ping 192.168.61.1
PING 192.168.61.1 (192.168.61.1) 56(84) bytes of data.
64 bytes from 192.168.61.1: icmp_seq=1 ttl=63 time=100 ms
64 bytes from 192.168.61.1: icmp_seq=2 ttl=63 time=34.2 ms
64 bytes from 192.168.61.1: icmp_seq=3 ttl=63 time=35.5 ms
64 bytes from 192.168.61.1: icmp_seq=4 ttl=63 time=34.1 ms
64 bytes from 192.168.61.1: icmp_seq=5 ttl=63 time=34.7 ms
64 bytes from 192.168.61.1: icmp_seq=6 ttl=63 time=33.3 ms
^C
--- 192.168.61.1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5005ms
rtt min/avg/max/mdev = 33.347/45.330/100.098/24.501 ms

//

root@test:~# ip route
default via 192.168.71.160 dev eth0 proto static
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.71.0/24 dev eth0 proto kernel scope link src 192.168.71.13
root@test:~# ping 192.168.61.1
PING 192.168.61.1 (192.168.61.1) 56(84) bytes of data.
^C
--- 192.168.61.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2045ms
klayf 2024.03.07. 20:57
붕어분쇄기

혹시 마지막에 100% 패킷 로스나는 61.1에 대한 핑에서 Request timed out과 같은 메시지는 따로 없었을까요?

 

(트래픽 메시지 종류와 수신 유무에 따라 문제 지점 진단에 도움이 될 수 있어서 그렇습니다)

붕어분쇄기 글쓴이 2024.03.08. 13:21
klayf
리눅스에서 따로 조작을 하지않고 ping (주소)만 입력 시 보내질때까지 (혹은 멈출때까지) 대기하는것 같은데, 어떻게 하면 해당 메세지를 확인할 수 있을까요?
klayf 2024.03.08. 17:11
붕어분쇄기

별도 메시지를 못받고 100% 로스 상태라면, 아예 ICMP Echo Reply 수신이 불가능한 상태입니다.
즉, 어떤 사유로 인해 Ping 패킷이 허용되지 않는다(송신 측에서 echo Reply을 할 수 없거나 하더라도 수신 측에서 받지 못하는 상태)는 의미입니다.

제가 틀릴 수도 있겠지만 아예 입력된 GW가 실존하지 않거나 tailscale에서 서브넷 라우팅이 불가능한 상태라 생각합니다. 게이트웨이까지 정상 도달하였고 에코 리플 수신도 가능하다면, 라우팅 레벨에서 최소한 호스트를 찾을 수 없다는 메시지라도 돌려받아야 합니다.

이는 에코 리플을 보내줄 게이트웨이도 없거나 아예 패킷을 드롭시키는 npm LXC의 방화벽 때문일 수도 있고, tailscale 방화벽 때문일 수도 있습니다.

 

100번대역이 아닌 LXC 레벨의 동일 서브넷 기기간 통신이므로 서브넷 라우팅이 가능한 상태여야 하는데 이 부분에 문제(tailscale을 통한 포워딩이 불가능한 상태)가 있다고 추측됩니다.

 

- 현재 각각의 클러스터 내 npm 및 tailscale은 masquerade로 망이 분리되어있다고 이해했는데 맞을까요?
- 동일 서브넷의 NPM <-> tailscale 간에 100번 대역이 아닌 로컬 주소(1.xxx)로 핑 테스트 및 1.102에서 8.8.8.8로 핑을 보내는 것은 문제가 없으신지 궁금합니다.

- 혹시 모르니 tailscale에서 ip forward도 허용되어 있는지 확인 부탁드립니다.

 

아래는 작년에 제가 참고했던 문서인데, 혹시라도 누락된 과정이 있을지 모르므로 단계별로 확인해보시는게 좋을 것 같습니다.

 

 

붕어분쇄기 글쓴이 2024.03.10. 10:49
klayf
정성스러운 답변 감사드립니다.
(1.101 >tailscale> 2.101 > 2.102 - 가능)
(1.102 > 1.101 >tailscale> 2.101 > 2.102 - 불가)

해당 부분에서 볼 수 있듯, 192.168.1.101에서 192.168.2.0/24로 핑은 정상적으로 도달하고 있습니다.
1.102에서 1.101을 GW로 설정하여서 routetrace google로 추적해보면 정상적으로 1.102 > 1.101 > 구글로 빠져나갑니다.

테일스케일에서 규칙은 기본값으로 되어있습니다. 해당 부분에서 수정이 필요할까요? 전부-전부 로 되어있어서 따로 막는것이 없는것 같습니다.
"acls": [
// Allow all connections.
// Comment this section out if you want to define specific restrictions.
{"action": "accept", "src": ["*"], "dst": ["*:*"]},
]


해당 링크 참조하여 다시한번 하나씩 체크해보도록 하겠습니다!
klayf 2024.03.11. 10:57
붕어분쇄기

제 사견으로는, 오히려 구글로는 도달하지만 터널링을 통한 원격지에는 도달하지 않는다면 더더욱 서브넷 라우팅 문제 같아 보입니다.

1.102에서 1.101을 통해 구글로 가는 것은 컨테이너(1.101) 커널 레벨에서 192.168.1.0의 기본 게이트웨이로 포워드하면 되기 때문에 ip forward만 설정되어 있다면 응답을 받을 수 있지만, 2.102로 가는 것은 단순 라우팅이 아니라 반드시 컨테이너 내의 tailscale를 통해 터널링을 거쳐야 합니다.

그러나 tailscale에서 할당된 주소가 아니라 컨테이너가 속한 서브넷 주소는 tailescale을 기준으로 외부 네트워크에 속하여 패킷이 tailscale 레벨로 터널링을 거쳐 원격지까지 도달할 수가 없습니다.

따라서 지정된 서브넷(외부 네트워크의 패킷)에서도 터널링이 가능하게 허용해야 하는데 이 과정이 부재한 것으로 예상합니다.

혹시 각각의 웹 콘솔에서 서브넷 라우트 부분 192.168.1.0/24 및 2.0/24에 대한 설정이 누락되지 않았을지 확인 부탁드립니다.

꼭 성공하시기 바랍니다..!

붕어분쇄기 글쓴이 2024.03.11. 16:16
klayf
정성스러운 답변 정말 감사드립니다.
현재 wireguard-easy를 따로 설치하여 터널링으로 tailscale 대신 사용하고 있습니다.(설정은 와이어가드가 설치된 컨테이너를 GW로 사용하고 있습니다.) 전체적인 플로우는 비슷해서 아마도 tailscale 에서의 무언가 설정이 있을 것 같긴한데 정확히 모르겠네요..(혹시 exit node로 하면 될지도 모르겠네요!)
다만 저도 왜 되는지 모르겠고, wireguard를 사용하려면 공유기에서 포트포워딩을 통해 빠져나가야 하는 상황인지라 계속해서 연구중에 있습니다. (양쪽 모두에 설정을 해야할수도 있겠네요!)

도움주셔서 정말 감사합니다!!
너굴 2024.03.07. 10:46
안되는게 맞는 것 같은데요.. 라우트 설정을 잘(?) 하면 될거같은데 어려워서 모르겠네요.
근데 tailscale 에서 주는 아이피 100.x.x.x 로 접속해도 안되나요?

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
가이드 배드섹터 있는 HDD 복사 및 이미지 뜨기 : ddrescue, ddrescueview 3 klayf 1일 전14:16 206 +11
오픈소스 개인 구독 추적기 Wallos 9 달소 5일 전23:26 429 +3
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 24.05.06.20:42 324 +1
1454 질문
image
똥쓰똥쓰 10시간 전17:43 108 0
1453 질문
image
EXP 12시간 전15:32 65 0
1452 질문
image
감자탕 12시간 전15:31 90 0
1451 질문
image
동도리군 1일 전13:23 237 0
1450 질문
normal
newsted1 2일 전09:57 119 0
1449 질문
normal
초보입니다ㅠㅠ 3일 전01:44 165 0
1448 질문
normal
서버구축하자 4일 전21:59 99 0
1447 질문
image
경호 4일 전10:34 268 0
1446 질문
normal
맛밥 6일 전16:13 239 0
1445 질문
normal
니속사정 24.05.06.20:42 324 +1
1444 질문
image
ljr10 24.05.06.12:45 192 0
1443 질문
normal
스키피95 24.05.05.00:07 160 0
1442 질문
normal
고심분투 24.05.04.17:10 279 0
1441 질문
image
경호 24.05.04.15:50 128 0
1440 질문
normal
경호 24.05.04.13:23 85 0
1439 질문
image
EXP 24.05.02.23:48 114 0
1438 질문
normal
홍익 24.05.02.19:26 250 0
1437 질문
normal
purndal 24.04.30.14:32 262 0
1436 질문
image
초보나스 24.04.30.10:46 118 0
1435 질문
normal
keiminem 24.04.30.09:29 387 0