수 많은 우문은 현답을 만든다

폐쇄망과 인터넷간 네트워크 연결 설정 본문

개발지식/Network

폐쇄망과 인터넷간 네트워크 연결 설정

aiden.jo 2023. 2. 21. 18:02

안녕하세요 조영호입니다.

오늘은 고객사와 제 회사간의 네트워크를 전용선으로 연결했던 경험에 대해 소개하고자 합니다.

구분 출발지 SNAT DNAT 도착지
고객사 10.10.10.123 (폐쇄망) 192.168.10.123   192.168.128.1
내회사     192.168.128.456 192.168.128.2

 

서비스 환경을 먼저 설명드리자면,

고객사는 내부망(폐쇄망)을 사용하고 있었고 내부망에 구축한 JAVA 서비스에서 제 회사로 API 요청을 보내야하는 상황이었습니다. 우선, 사설 IP를 사용하고있는 고객사에서는 NAT 변환을 통해 사설 IP <-> 공인 IP의 연결 구간을 준비했고 제 회사는 외부망 용 로드밸런서를 통해 서비스를 제공하고자 했습니다.

 

위에서 사용한 개념들에 대한 설명입니다.

  • 사설 IP : 인터넷이 되지 않는 회사 내부의 네트워크망 IP
  • 공인 IP : 인터넷이 되는 범용 네트워크망 IP
  • NAT : Network Adress Translation 으로 인터넷 주소를 번역하는 역할을 한다. 위 경우 사설 IP를 공인 IP로 변환한다.
  • SNAT : Source NAT 로 고객사 쪽에서 사설IP를 공인IP로 변환해주는 역할을 한다.
  • DNAT : Destination NAT는 위 경우 내 회사의 로드밸런서 IP로, 내부 여러 도착지로 로드밸런싱 하는용도로 쓰였다.

 

자 이제 각 목적에 필요한 IP들이 준비되었고, 서로에 대한 연결이 아래와같이 완료되었다면 이제 점검을 해봐야겠죠.

예시

 

1. 사내에서 대외사로의 연결 및 포트 오픈이 잘 되었는지 확인하는 방법

$ curl -v telnet://ip:port

 

2. 호출이 되지 않는다면 어느 구간에서 막혔는지 확인하는 방법

 $ traceroute [도메인명 혹은 IP주소]


2-1) 정상적으로 연결된 경우

  [root@localhost /]# traceroute google.co.kr

  traceroute to google.co.kr (173.194.127.184), 30 hops max, 60 byte packets

   1  192.168.1.1 (192.168.1.1)  4.704 ms  4.127 ms  3.741 ms
   2  10.18.158.217 (10.18.158.217)  4.016 ms  6.147 ms  5.876 ms
   3  203.248.238.41 (203.248.238.41)  5.754 ms  6.465 ms  6.352 ms
                                    ㆍ
                                    ㆍ
                                    ㆍ
  13  209.85.241.58 (209.85.241.58)  56.625 ms  47.623 ms  74.772 ms
  14  209.85.241.169 (209.85.241.169)  48.570 ms  44.503 ms  42.154 ms
  15  hkg03s14-in-f24.1e100.net (173.194.127.184)  89.599 ms  66.850 ms  67.568 ms

 

2-2) 연결이 되지 않는 경우

 [root@localhost /]# traceroute 125.209.222.141

  traceroute to 125.209.222.141 (125.209.222.141), 30 hops max, 60 byte packets

   1  192.168.1.1 (192.168.1.1)  2.567 ms  4.525 ms  5.397 ms
   2  10.19.224.109 (10.19.224.109)  5.923 ms 8.809 ms  8.729 ms
   3  1.213.28.81 (1.213.28.81)  8.623 ms  7.940 ms 7.817 ms
                                    ㆍ
                                    ㆍ
                                    ㆍ
  28  * * *
  29  * * *
  30  * * *

위와같은 경우, 마지막에 * * * 으로 연결이 끝나지 않는 것은 연결이 목적지까지 도착하지 못했다는 것을 의미합니다.

 그리고 3번 구간에서 마지막으로 패킷 로그가 찍혔는데, 여기에서 다음 구간으로 나가는 병목을 살펴보면 문제를 해결할 수 있습니다.

 

 

감사합니다.

'개발지식 > Network' 카테고리의 다른 글

High Performance Browser Networking  (0) 2023.06.12
Trade Off & Network Delay  (0) 2023.06.12
L4 / L7 로드밸런서 차이점 (Load balancer)  (0) 2022.06.14
VIP (Virtual IP)  (0) 2022.06.14