글 목록으로 돌아가기

Network

Network Technology

NAT/PAT를 이용한 주소 변환, DNS/DHCP를 통한 주소 관리, 주요 네트워크 진단 명령어 정리

Dohyeon Kim
Dohyeon Kim 2026년 7월 31일 · 12분 읽기
Network AutoEverSW

1) NAT & PAT


개요

  • NAT (Network Address Translation) → 하나의 네트워크 주소를 다른 하나의 네트워크 주소로 변환하는 기술
  • 정적 NAT는 1:1 변환을 수행하며, 동적 NAT와 PAT(NAPT)는 여러 내부 주소를 효율적으로 변환하는 방식이다.
    • 공식 용어는 NAPT (Network Address Port Translation)
    • 실무에서는 대부분 PAT라고 함
  • 비유: 회사의 대표번호(Public IP)내선번호(Private IP)
    • 외부에서 회사로 전화 걸 때는 대표번호로만 연결됨
    • 내부에서는 각 직원이 내선번호를 가지고 있고, 교환원(NAT)이 대표번호로 온 전화를 적절한 내선으로 연결해줌
    • 반대로 직원이 외부로 전화할 때도 교환원을 통해 대표번호로 나가게 됨
  • 일반적으로 Public IPPrivate IP로 변환하거나 Private IPPublic IP로 변환
    • Public IP → Public IP 또는 Private IP → Private IP 변환도 가능
  • IPv4 주소를 IPv6로 변환하거나 반대로 변환하는 기술인 AFT (Address Family Translation) 도 NAT의 일종

용도

IPv4 주소 고갈 문제의 솔루션

전략 내용
단기 전략 Subnetting (Classless)
중기 전략 NATPrivate IP 주소 체계
장기 전략 IPv6
  • 외부에 공개해야 하는 서비스 → Public IP 사용
  • 외부에 공개할 필요 없는 일반 사용자 PC나 기타 종단 장비 → Private IP 사용
  • 필요한 곳에만 효율적으로 IP를 사용할 수 있게 함

보안 강화

  • 외부와 통신 시 내부 IP를 다른 IP로 변환하면 외부에 내부 IP 주소 체계를 숨길 수 있음
  • NAT는 주소 변환 후 역변환이 정상적으로 수행되어야만 통신 가능 → 이 성질을 이용해 복잡한 룰 설정 없이 방향성을 통제 가능 → 내부 → 외부 방향 통신은 허용하지만 외부 → 내부로 들어오는 통신은 방어 가능

IP 주소 체계가 같은 두 네트워크 간 통신

  • 내부 IP 주소 체계가 같은 네트워크 간 통신 시 Double NAT 기술을 이용해 통신 가능
  • 이런 회사 간의 통신을 대외계라고 함

불필요한 설정 변경 감소

  • IP를 직접 설정하는 경우 통신 사업자를 변경하면 내부 네트워크의 모든 IP를 변경해야 함
  • NAT와 DHCP를 사용하면 서버에서만 수정하면 단말 IP 변경 불필요

단점

  • 네트워크 운영자 입장에서는 IP가 변환되면 장애 발생 시 문제 해결이 어려움
  • 애플리케이션 개발자는 NAT 환경이 대중화되면서 Port Forwarding 등 더 많은 고려 사항이 생김
  • IPv6 전환으로 IPv4 주소 부족 문제가 해결되고 있으므로 NAT를 인터넷에서 없애자는 의견도 있음
  • NAT 밑에 있는 단말도 직접 네트워크에 연결하는 Hole Punching 기술이 있었으나 애플리케이션이 복잡해져 거의 사용하지 않음

동적 NAT와 정적 NAT

  • 동적 NAT → 여러 개의 주소를 만들어두고 그중 하나와 필요할 때 매핑하는 방식
  • 정적 NAT → 미리 1:1로 매핑을 해두고 사용하는 방식
  동적 NAT 정적 NAT
설정 1:1, 1:N, N:M 1:1
테이블 NAT 수행 시 생성 사전 생성
테이블 타임아웃 동작함 없음
수행 정보 실시간으로 확인 별도 필요 없음

2) DNS


주요 레코드

  • DNS는 인터넷의 전화번호부 → 사람이 이해하기 어려운 IP 주소(예: 192.0.2.1) 대신 www.example.com 같은 도메인 이름으로 통신할 수 있게 해줌

A Record (IPv4)

  • 기본 레코드로 도메인 주소 → IP 주소로 변환
  • 사용자가 DNS에 질의한 도메인 주소를 A 레코드에 설정된 IP 주소로 응답
  • 하나의 A 레코드에는 한 개의 도메인 주소한 개의 IP 주소가 1:1로 매핑
    • 동일한 도메인을 가진 A 레코드를 여러 개 만들어 서로 다른 IP 주소와 매핑 가능
    • 다수의 도메인에 동일한 IP를 매핑한 A 레코드 생성 가능
  • 서버 한 대에 여러 웹 서비스를 구동해야 한다면 여러 도메인에 동일한 IP를 매핑하고 HTTP 헤더의 HOST 필드에 도메인을 명시해 웹 서버를 구분

AAAA Record (IPv6)

  • IPv6 체계에서 사용되는 레코드

CNAME (Canonical Name) Record

  • 별명을 사용할 수 있도록 해주는 레코드
  • A 레코드는 IP 주소를 매핑하지만 CNAME은 도메인을 매핑
  • DNS Server가 CNAME 레코드에 대한 질의를 받으면 CNAME에 해당하는 도메인 정보를 확인하고 그 도메인 정보를 내부적으로 다시 질의한 결과 IP 값을 응답
  • 예시
    • adam.netwww.adam.net이라는 도메인을 같은 IP에 연결하려는 경우
    • A 레코드만 사용하면 2개의 도메인을 각각 IP에 연결해야 함
    • IP 변경 시 2개 도메인의 A Record를 모두 수정해야 함
    • adam.net → A 레코드로 IP 연결, www.adam.net → CNAME Record로 adam.net에 연결
    • IP 변경 시 adam.net의 A 레코드만 수정하면 됨

SOA (Start Of Authority) Record

  • 도메인 영역에 대한 권한을 나타내는 레코드
  • 현재 네임 서버가 이 도메인 영역에 대한 관리 주체임을 의미 → 해당 도메인에 대해 다른 네임 서버에 질의하지 않고 직접 응답
  • 도메인 영역 선언 시 필수 항목
  • SOA 레코드를 만들지 않으면 해당 도메인은 네임 서버에서 정상적으로 동작 불가
    • Public Cloud에서는 도메인을 구입하면 이 레코드를 자동 생성

NS (Name Server) Record

  • 도메인에 대한 권한이 있는 네임 서버 정보를 설정하는 레코드

MX (Mail eXchange) Record

  • 메일 서버를 구성할 때 사용되는 레코드

PTR (Pointer) Record

  • IP 주소에 대한 질의를 도메인 주소로 응답하기 위한 레코드
  • 주로 화이트 도메인 구성용으로 사용

TXT (TeXT) Record

  • 도메인에 대한 간단한 텍스트를 입력할 수 있는 레코드
  • 화이트 도메인을 위한 레코드

TTL (Time To Live)

  • DNS에 질의해 응답받은 결괏값을 캐시에서 유지하는 시간
  • 요청해서 도메인을 해석하면 그 내용을 캐시에 유지 → 다음 요청 시 DNS Server에 질의하지 않고 캐시 내용 사용 → 비유: 도서관에 한 번 가서 책 정보를 메모해두면, 다음에 또 갈 필요 없이 메모지를 보는 것과 같음
  • 캐시 유지 시간 = TTL

한글 도메인

  • 한글 도메인 사용 가능
  • 한글 도메인 신청 시 한글을 직접 사용하면 안 되고 퓨니코드를 이용해 등록

GSLB (Global Server/Service Load Balancing)

  • DNS Load Balancing을 위한 기술
  • DNS Load Balancing → 하나의 도메인에 여러 개의 IP를 설정해 요청이 올 때 부하를 분산
  • 하지만 도메인에 여러 개의 컴퓨터 IP를 설정한다고 자동으로 동작하지 않음 → 특정 컴퓨터가 동작 중인지 확인하지 못하기 때문
  • GSLB는 연결된 서비스가 정상적인지 헬스 체크를 수행해서 정상적인 레코드에만 반응
  • Intelligence DNS라고도 함

3 ) DHCP


개요

  • 정적 할당 → IP와 네트워크 정보를 직접 설정하는 것
    • 데이터센터의 서버팜과 같은 운영망에서 사용
  • 직접 할당 → 자동으로 설정하는 것
    • 일반적인 PC 사용자들이 사용

보안 또는 관리 목적으로 사용자 PC를 정적할당으로 이용하는 경우가 있었으나,

최근에는 동적 할당 방식을 이용하면서도 보안을 강화하고 쉽게 관리 가능하게 하는 서비스와 장비가 대중화되어 동적할당 방식이 더 많이 사용됨

  • Public Cloud에서 컴퓨터를 임대하는 경우 기본적으로 동적 할당임 → 재부팅 전까지 고정
  • IP를 고정하고자 하는 경우 별도의 IP를 구매해야 함

    • IP를 동적으로 할당할 때 사용되는 프로토콜 → DHCP (Dynamic Host Configuration Protocol)
    • DHCP를 사용하면 IP Address, Subnet Mask, 디폴트 게이트웨이, DNS 정보를 자동으로 설정
    • DHCP는 UDP 67(Server), 68(Client) 포트를 사용한다.
      • UDP로 통신

 

서버 구성

  • Windows / Linux 서버의 DHCP 서비스를 이용하는 방법과
  • 스위치, 라우터, 방화벽, VPN, IP 공유기 등에서도 설정이 가능함

  • 설정 항목
    • IP 주소 풀 : 클라이언트에게 할당할 IP 주소 범위 → 192.168.200.0/22 / 192.168.200.0 ~ 192.168.203.255
    • 예외 IP 주소 풀 : IP 주소 풀에서 클라이언트에게 할당하지 않을 주소 → 192.168.200.1 : Gateway로 사용하기 때문에 클라이언트에게 할당하면 안 됨
    • 임대 시간: 기본 임대 시간
    • 서브넷 마스크: 255.255.252.0
    • 게이트웨이: 192.168.200.1
    • DNS: 8.8.8.8

4 ) 네트워크 명령어


1. Ping

  • ICMP 프로토콜을 이용해 목적지에 메시지를 전송하고 응답을 받아오는 명령어
  • ping은 목적지 호스트가 정상적으로 동작하는지 확인하고, 출발지와 목적지 사이의 네트워크 연결 상태를 확인하는 명령어이다.
기능 Windows Linux
기본 동작 4회 전송 후 종료 무한 반복 (Ctrl + C로 종료)
횟수 지정 -n <횟수> -c <횟수>
무한 반복 -t 기본 동작 (ping)
길이 지정 -l <byte> -s <byte>
시간 간격 미지원 -i <sec>
타임 아웃 -w <밀리초> -W 또는 -t(이건 TTL)
IPv4 -4 -4
IPv6 -6 -6
소스 지정 -S -l
홉 기록(라우터 개수) -r <횟수>  

Linux 에서 되는 기능이면 라우터같은 장비에서도 되는 거임

시간 간격 명령으로 Health Check이 가능하다.

예) Windows

5번만 전송

ping -n 5 google.com

계속 전송

ping -t google.com

예) Linux

5번만 전송

ping -c 5 google.com

계속 전송 (기본 동작)

ping google.com

주의

Windows의 -t와 Linux의 -t는 의미가 다르다.

  • Windows: -t → 무한 반복
  • Linux: -t → TTL(Time To Live) 값 지정

Linux에서는 기본적으로 ping이 무한 반복되므로 -t 옵션이 필요 없다.

2. tcping (Windows)

ICMP(Internet Control Message Protocol)를 사용하며, 목적지까지 도달하지 못하는 경우 중간 라우터가 반환하는 ICMP Error Message를 통해 일부 네트워크 장애나 라우팅 문제를 파악할 수 있다.

하지만 ping만으로 모든 네트워크 문제를 확인할 수 있는 것은 아니다.

ping의 한계

  • 목적지 서버가 ICMP Echo Request를 차단하는 경우 응답이 오지 않는다.
  • 방화벽이나 보안 정책으로 ICMP가 차단된 경우에도 응답이 없다.
  • 따라서 ping이 실패했다고 해서 반드시 서버가 다운되었거나 네트워크에 문제가 있다고 단정할 수는 없다.

예시

대표적으로 네이버(www.naver.com) 와 같은 일부 서비스는 보안상의 이유로 ICMP 응답을 차단할 수 있다.

따라서 ping이 실패하더라도 웹 브라우저에서는 정상적으로 접속되는 경우가 있다.

ICMP가 차단된 환경에서는 tcping을 사용하여 특정 서버의 TCP 포트에 연결할 수 있는지 확인할 수 있다.

ping을 차단하는 이유

  • 서버 존재 여부를 쉽게 노출하지 않기 위해
  • Host Discovery(서버 탐색)를 어렵게 하기 위해
  • ICMP Flood(Ping Flood) 공격을 완화하기 위해
  • 불필요한 ICMP 트래픽을 줄이기 위해

ping이 ICMP 응답 여부를 확인한다면, tcping은 지정한 TCP 포트로 연결을 시도한다. 따라서 웹 서버의 80, 443 포트나 데이터베이스 서버의 포트가 실제로 열려 있는지 확인할 때 유용하다.

기본 형식은 다음과 같다.

tcping [옵션] <목적지 주소> [포트 번호]

포트 번호를 생략하면 기본적으로 80번 포트에 연결을 시도한다.

주요 옵션

옵션 설명
-n <횟수> 지정한 횟수만큼 연결을 시도한다.
-t 사용자가 중단할 때까지 무한히 연결을 시도한다.
-i <시간> 연결 시도 사이의 시간 간격을 지정한다.
[포트 번호] 확인할 TCP 포트를 지정한다. 생략하면 기본값은 80이다.

사용 예시

네이버의 기본 HTTP 포트인 80번 포트를 확인한다.

tcping www.naver.com

HTTPS 포트인 443번 포트를 확인한다.

tcping www.naver.com 443

5번만 연결을 시도한다.

tcping -n 5 www.naver.com 443

중단할 때까지 계속 연결을 시도한다.

tcping -t www.naver.com 443

연결 시도 사이의 시간 간격을 지정한다.

tcping -i 2 www.naver.com 443

정리

  • ping 성공 → 목적지 호스트가 ICMP에 응답하며 네트워크가 연결되어 있음을 의미한다.
  • ping 실패 → 네트워크 장애 또는 ICMP 차단이 원인일 수 있다.
  • tcping 성공 → 지정한 목적지의 TCP 포트까지 연결할 수 있음을 의미한다.
  • tcping 실패 → 해당 포트가 닫혀 있거나, 서비스가 실행 중이 아니거나, 방화벽이 연결을 차단했을 수 있다.
  • 경로 문제 확인에는 traceroute(Linux) 또는 tracert(Windows)를 함께 사용한다.

tcping은 Windows 기본 명령어가 아니므로 별도 설치가 필요하다.

티시핑 설치

  • 공식 홈페이지에서 tcping.exe를 다운로드한다.
  • 다운로드한 tcping.exeC:\Windows\System32에 복사하면 어느 경로에서나 사용할 수 있다.

다운로드: https://www.elifulkerson.com/projects/tcping.php

2. traceroute / tracert

개요

traceroute(Linux), tracert(Windows)는 출발지부터 목적지까지의 라우팅 경로(홉) 를 확인하는 명령어이다.

ping은 목적지 호스트의 응답 여부를 확인하는 데 주로 사용되는 반면, traceroute는 목적지까지 어떤 라우터를 거쳐 가는지와 어느 구간에서 문제가 발생했는지 확인하는 데 사용된다.

특징

  • 출발지에서 목적지까지의 라우팅 경로를 확인할 수 있다.
  • 각 홉(Hop)의 응답 시간(RTT)을 확인할 수 있다.
  • 어느 구간부터 패킷이 손실되거나 응답이 없는지 파악할 수 있다.
  • 네트워크 장비 간 문제를 확인할 때는 양쪽 장비에서 모두 실행하여 결과를 비교하는 것이 좋다.

traceroute의 한계

traceroute경로 추적만 가능하며, 목적지의 서비스 포트가 정상적으로 열려 있는지는 확인할 수 없다.

따라서 서비스 장애가 발생한 경우 다음 중 어떤 원인인지는 traceroute만으로는 판단할 수 없다.

  • 중간 네트워크 구간에서 문제가 발생한 경우
  • 목적지 방화벽에서 차단된 경우
  • 목적지 서버에서 서비스(포트)가 실행되고 있지 않은 경우

이러한 경우에는 tcptraceroute를 사용한다.

tcptracerouteTCP 패킷을 이용하여 경로를 추적하므로, 목적지까지의 경로뿐만 아니라 특정 서비스 포트(예: 80, 443)가 정상적으로 열려 있는지도 함께 확인할 수 있다.

주요 옵션 (Linux)

옵션 설명
-I ICMP 패킷을 사용한다. 일부 환경에서는 방화벽을 통과하기 쉬울 수 있다.
-T TCP 패킷을 사용한다. 웹 서버(80, 443) 확인 시 유용하다.
-p <포트> 사용할 목적지 포트를 지정한다.
-n DNS 역방향 조회를 하지 않아 결과를 더 빠르게 출력한다. (Windows: -d)
-m <숫자> 최대 홉(Hop) 수를 지정한다. 기본값은 30. (Windows: -h)
-q <숫자> 홉당 전송할 패킷 수를 지정한다. 기본값은 3이며, 1로 줄이면 실행 속도가 빨라진다.
-w <초> 응답 대기 시간(Timeout)을 지정한다.
-s <IP> 출발지(Source) IP 주소를 지정한다.

정리

  • ping → 목적지의 응답 여부를 확인한다.
  • traceroute → 목적지까지의 라우팅 경로와 문제 발생 구간을 확인한다.
  • tcptraceroute → 라우팅 경로와 함께 특정 서비스 포트의 연결 가능 여부도 확인한다.
  • 경로 이상이 의심될 경우 pingtraceroute, 서비스 이상이 의심될 경우 tcptraceroute를 함께 사용하는 것이 효과적이다.

3. netstat

개요

netstat은 서버의 다양한 네트워크 상태를 확인하는 명령어이다.

주로 서비스 포트 확인, TCP 연결 상태 확인, 라우팅 테이블 확인 등에 사용된다.

다음과 같은 내용을 확인할 수 있다.

  • 특정 서비스가 정상적으로 포트를 열고 있는지 (LISTEN)
  • 외부와 TCP 연결이 정상적으로 수립되었는지 (ESTABLISHED)
  • 연결이 정상적으로 종료되는 과정인지 (TIME_WAIT, FIN_WAIT, CLOSE_WAIT)
  • 라우팅 테이블 및 네트워크 통계

주요 옵션

기능 Windows Linux
전체 연결 표시 -a -a
IP/포트를 숫자로 표시 -n -n
PID 표시 -o -p
프로토콜 지정 -p tcp / -p udp -t(TCP), -u(UDP)
라우팅 테이블 -r -r
프로토콜 통계 -s -s

자주 사용하는 명령

Windows

netstat -ano
  • 모든 연결 표시
  • 주소를 숫자로 표시
  • PID 함께 출력

Linux

sudo netstat -ntlp
  • -n : 숫자로 표시
  • -t : TCP만 표시
  • -l : LISTEN 상태만 표시
  • -p : 프로세스(PID/프로그램) 표시

주요 TCP 상태

상태 설명
LISTEN 서버 애플리케이션이 클라이언트의 연결을 기다리기 위해 포트를 열어 둔 상태
ESTABLISHED TCP 연결이 정상적으로 수립되어 데이터를 송수신하는 상태
TIME_WAIT 데이터 송수신이 끝난 후 연결을 종료하기 전에 잠시 대기하는 상태.
지연되어 도착하는 패킷을 처리하고 동일한 연결 정보의 재사용으로 인한 문제를 방지하기 위해 일정 시간 유지된다. 정상적인 상태이다.
CLOSE_WAIT 상대방이 연결 종료를 요청한 상태.
서버 애플리케이션이 아직 소켓을 닫지 않은 상태이며, 오래 유지되면 애플리케이션 문제를 의심할 수 있다.

정리

  • LISTEN → 연결 대기
  • ESTABLISHED → 정상 통신 중
  • TIME_WAIT → 정상 종료 과정
  • CLOSE_WAIT → 상대는 종료했지만 내 프로그램이 아직 연결을 닫지 않은 상태

4. nslookup

개요

nslookup은 DNS 서버에 질의하여 도메인과 관련된 정보를 조회하는 명령어이다.

주로 다음 정보를 확인할 때 사용한다.

  • 도메인에 대한 IP 주소 조회
  • IP 주소에 대한 도메인 조회(Reverse Lookup)
  • 특정 DNS 서버의 응답 확인
  • DNS 설정 및 문제 진단

5. ipconfig(Windows) / ifconfig(Linux)

개요

현재 시스템의 네트워크 인터페이스 정보를 확인하는 명령어이다.

  • Windows : ipconfig
  • Linux : ifconfig (별도 패키지 설치 필요)
    • 최근 Linux에서는 ifconfig보다 ip 명령(ip addr)을 권장한다.

인터넷 연결이 원활하지 않을 때 네트워크 상태를 확인하거나 IP를 재할당할 때 자주 사용한다.

주요 옵션

기능 Windows Linux
모든 인터페이스 표시 ipconfig /all ifconfig -a
DHCP IP 반납 ipconfig /release -
DHCP IP 재할당 ipconfig /renew -
DNS 캐시 삭제 ipconfig /flushdns -

자주 사용하는 명령

  • 현재 모든 네트워크 정보 확인
ipconfig /all
  • DHCP 서버에 현재 IP 주소 반납
ipconfig /release
  • DHCP 서버에서 새로운 IP 주소 재할당
ipconfig /renew
  • DNS 캐시 삭제
ipconfig /flushdns

참고

  • /release : DHCP 서버에 현재 할당받은 IP 주소를 반납한다.
  • /renew : DHCP 서버에서 새로운 IP 주소를 다시 할당받는다.
  • /flushdns : 로컬 DNS 캐시를 삭제하여 최신 DNS 정보를 다시 조회하도록 한다.
  • flush는 원래 “비우다”보다는 “내보내다, 밀어내다”의 의미를 가진다.

6. tcpdump

개요

tcpdump는 네트워크 인터페이스를 통해 송수신되는 패킷을 캡처하고 분석하는 명령어이다.

주로 네트워크 장애 분석, 패킷 분석, 트래픽 확인 등의 목적으로 사용된다.

Linux 서버뿐만 아니라 Linux 커널 기반의 네트워크 장비에서도 사용할 수 있다.

주요 옵션

옵션 설명
-i <인터페이스> 캡처할 네트워크 인터페이스를 지정한다.
-n IP 주소와 호스트 이름을 변환하지 않는다.
DNS 역방향 조회를 하지 않는다.
-nn 호스트 이름과 서비스 이름(DNS, HTTP 등) 모두 변환하지 않고 IP 주소와 포트 번호를 그대로 표시한다.
DNS 조회와 서비스 이름(HTTP, SSH 등) 변환을 모두 하지 않는다.
-X 패킷 내용을 16진수(Hex)와 ASCII 형태로 함께 출력한다.
-c <개수> 지정한 개수만큼 패킷을 캡처한 후 종료한다.
-w <파일> 캡처한 패킷을 파일로 저장한다.
-r <파일> 저장된 패킷 파일을 읽어 출력한다.

필터

필터 설명
src <IP> 출발지 IP가 일치하는 패킷
dst <IP> 목적지 IP가 일치하는 패킷
host <IP> 출발지 또는 목적지 IP가 일치하는 패킷
src port <포트> 출발지 포트가 일치하는 패킷
dst port <포트> 목적지 포트가 일치하는 패킷
port <포트> 출발지 또는 목적지 포트가 일치하는 패킷
tcp TCP 패킷만 캡처
udp UDP 패킷만 캡처

사용 예시

모든 인터페이스에서 TCP 패킷 10개 캡처

tcpdump -i any -nn tcp -c 10

80번 포트 패킷 캡처

tcpdump -i eth0 port 80

특정 호스트와 통신하는 패킷 캡처

tcpdump -i eth0 host 192.168.0.10

패킷을 파일로 저장

tcpdump -i eth0 -w capture.pcap

저장된 패킷 파일 읽기

tcpdump -r capture.pcap

정리

  • tcpdump → 네트워크 패킷을 실시간으로 캡처하고 분석하는 도구
  • -i → 인터페이스 지정
  • -nn → 주소와 포트를 숫자로 표시
  • -X → 패킷 내용을 Hex + ASCII로 출력
  • -w → 패킷 저장
  • -r → 저장된 패킷 분석
  • src, dst, host, port, tcp, udp 등을 조합하여 원하는 패킷만 필터링할 수 있다.

댓글