포스트

네트워크 (4) - 통신 기술

네트워크 (4) - 통신 기술

1. 통신 기술

1) NAT & PAT

개요

  • NAT (Network Address Translation): 하나의 네트워크 주소를 다른 네트워크 주소로 변환하는 기술이다.
  • NAPT / PAT: 기본적으로 1:1 변환이 원칙이나, IP 주소 고갈 문제를 해결하기 위해 여러 개의 사설 IP를 하나의 공인 IP로 변환하는 NAPT(Network Address Port Translation) 기술을 주로 사용한다. 실무에서는 이를 대부분 PAT라고 부른다.
  • 주소 변환 범위: 공인 IP와 사설 IP 간의 변환 외에도 공인 IP간 변환, 사설 IP간 변환 모두 가능하다.
  • AFT (Address Family Translation): IPv4 주소를 IPv6로, 혹은 그 반대로 변환하는 기술도 NAT의 일종이다.

주요 용도

  • IPv4 주소 고갈 해결: IP 주소 고갈 문제에 대응하는 전략 중 하나다. (단기: Subnetting, 중기: NAT & Private IP, 장기: IPv6)
  • 외부 공개 서비스에는 공인 IP를, 일반 사용자 PC나 종단 장비에는 사설 IP를 할당하여 IP 자원을 효율적으로 사용한다.

보안 강화:

  • 외부 통신 시 내부 IP 주소 체계를 숨길 수 있다.
  • NAT는 주소 변환 후 역변환이 정상 수행되어야 통신이 이루어지므로, 복잡한 룰 없이도 방향성을 통제할 수 있다. (내부 $\rightarrow$ 외부 통신은 허용, 외부 $\rightarrow$ 내부 진입 통신은 차단)

동일 주소 체계 간 통신 (대외계):

  • 두 회사의 내부 IP 주소 체계가 같은 경우 Double NAT 기술을 적용하여 통신을 가능하게 만든다.

설정 변경 최소화:

  • 통신 사업자 변경 시 NAT 및 DHCP 환경을 이용하면 서버 측 설정만 수정하므로 내부 단말의 IP를 일일이 변경할 필요가 없다.

단점

  • 장애 처리 난이도 증가: IP가 변환되기 때문에 네트워크 운영자 입장에서 장애 발생 시 원인 추적이 까다롭다.
  • 개발 고려사항 증가: Port Forwarding 등 NAT 환경을 고려한 애플리케이션 설계가 필요하다.
  • 상대적으로 복잡한 기술 요구: Hole Punching 기술 등이 등장했으나 애플리케이션 구현이 복잡해져 실제 활용도는 낮다.

동적 NAT vs 정적 NAT

구분동적 NAT정적 NAT
설정 방식1:1, 1:N, N:M1:1 매핑
테이블 생성NAT 수행 시 동적 생성사전 생성
테이블 타임아웃존재함없음
수행 정보실시간 확인 필요별도 확인 필요 없음

2) DNS

주요 레코드

  • A Record (IPv4): 도메인 주소를 IPv4 주소로 1:1 매핑하는 기본 레코드다. 동일 도메인에 여러 IP를 매핑하거나, 여러 도메인에 하나의 IP를 매핑할 수 있다.
  • AAAA Record (IPv6): 도메인 주소를 IPv6 주소로 매핑할 때 사용한다.
  • CNAME (Canonical Name) Record: 도메인에 별칭(Alias)을 부여하는 레코드다. IP 주소가 아닌 다른 도메인을 매핑하므로, IP가 변경되더라도 원본 A 레코드만 수정하면 되므로 관리가 용이하다.
  • SOA (Start Of Authority) Record: 해당 도메인 영역에 대한 권한을 가진 관리 주체임을 나타내는 필수 레코드다.
  • NS (Name Server) Record: 도메인에 대한 권한을 가진 네임서버 정보를 설정한다.
  • MX (Mail eXchange) Record: 메일 서버 구성 시 사용하는 레코드다.
  • PTR (Pointer) Record: IP 주소를 도메인 주소로 역조회할 때 사용하며, 주로 화이트 도메인 구성에 활용된다.
  • TXT (TeXT) Record: 도메인 관련 텍스트 정보를 저장하며, 이 역시 화이트 도메인 검증 및 보안 설정에 활용된다.

TTL (Time To Live)

  • DNS 질의 응답 결과를 클라이언트 캐시에 유지하는 시간이다. TTL 동안은 DNS 서버 재질의 없이 캐시된 정보를 사용한다. (Windows 기본 1시간, Linux 기본 3시간)

한글 도메인

  • 한글 도메인을 등록 및 사용할 때는 퓨니코드(Punycode) 형태로 변환하여 등록해야 한다.

GSLB (Global Server/Service Load Balancing)

  • 단순 DNS 로드밸런싱과 달리 연결된 서버의 헬스 체크(Health Check)를 지속적으로 수행한다. 정상 동작 중인 서버의 레코드만 응답하여 부하 분산과 고가용성을 동시에 제공하는 Intelligent DNS 기술이다.

3) DHCP

개요

  • DHCP (Dynamic Host Configuration Protocol): IP 주소, 서브넷 마스크, 디폴트 게이트웨이, DNS 정보를 단말에 동적으로 자동 할당해 주는 프로토콜이다.
  • 통신 포트: UDP 기반으로 동작하며, 67번(서버)과 68번(클라이언트) 포트를 사용한다.
  • 운영망/서버 팜은 주로 정적 할당(Static)을 사용하고, 사용자 PC망은 관리 효율성을 위해 동적 할당(Dynamic) 방식을 주로 사용한다.

주요 설정 항목

  • IP 주소 풀 (IP Pool): 할당 가능한 IP 범위를 지정한다.
  • 예외 IP 주소 풀: IP 풀 중에서 게이트웨이나 고정 장비용으로 제외할 IP를 지정한다.
  • 임대 시간 (Lease Time): 클라이언트가 IP를 대여하여 사용할 수 있는 기본 시간을 설정한다.
  • 기타 옵션: 서브넷 마스크, 게이트웨이 IP, DNS 서버 IP 등을 함께 전달한다.

2. 주요 네트워크 명령어

1) ping & tcping

  • ping: ICMP 프로토콜을 기반으로 목적지 단말의 생존 여부 및 네트워크 도달 가능성을 확인한다. (HOP: 지나가는 라우터 개수)
  • tcping: ICMP를 차단했거나 특정 서비스 포트가 실제로 열려 있는지 확인해야 할 때 사용하는 Windows용 TCP 포트 점검 도구다.
  • 예: tcping -n 5 192.168.0.1 80

2) traceroute & tcptraceroute

  • traceroute: 출발지부터 목적지까지 거치는 라우팅 경로와 각 구간별 지연을 확인할 때 사용한다.
  • -n: 역방향 DNS 조회를 생략하여 결과 속도를 향상시킨다.
  • -T / -I: TCP 패킷이나 ICMP 패킷을 지정하여 방화벽 통과율을 높인다.

  • tcptraceroute: 중간 경로 분석뿐만 아니라 최종 목적지의 특정 서비스 포트가 열려 있는지까지 경로 추적과 함께 점검할 수 있다.
  • 예: sudo tcptraceroute -n google.com 80

3) netstat

  • 서버의 네트워크 연결 상태 및 Listening 중인 포트를 확인할 때 사용한다.
  • Windows: netstat -ano
  • Linux: sudo netstat -ntlp

주요 네트워크 연결 상태

  • LISTEN: 서버 애플리케이션이 클라이언트의 접속을 대기 중인 상태다.
  • ESTABLISHED: 3-Way Handshake가 완료되어 정상적으로 데이터를 주고받는 상태다.
  • TIME_WAIT: 통신 종료 후 유실된 패킷 수신을 위해 일정 시간 대기하는 상태다.

4) nslookup

  • DNS 서버에 직접 질의를 보내 도메인 레코드 정보 및 IP 주소 변환 결과를 확인하는 도구다.

5) ipconfig / ifconfig

  • 현재 시스템의 네트워크 인터페이스 설정 정보를 확인한다.
  • Windows 주요 명령어: ipconfig /release: 할당받은 IP 반납 ipconfig /renew: IP 재할당 요청 ipconfig /flushdns: DNS 캐시 삭제

6) tcpdump

  • 네트워크 인터페이스를 통과하는 패킷을 실시간으로 수집하고 분석하는 패킷 캡처 도구다.

주요 옵션

  • -i [인터페이스]: 캡처할 네트워크 카드 지정 (eth0, any 등)
  • -n / -nn: IP 및 포트 번호를 이름(도메인/서비스명) 대신 숫자로 표시하여 속도를 향상시킨다.
  • -X: 패킷 내부 데이터를 Hex 및 ASCII 형태로 함께 출력한다.
  • -w [파일명.pcap]: 캡처 결과를 파일로 저장하여 Wireshark 등에서 분석할 수 있게 한다.
  • 예시: sudo tcpdump -i enp0s1 tcp port 80
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.