네트워크 (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:M | 1: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 라이센스를 따릅니다.