Post

오토에버 클라우드 2기 18일차

오토에버 클라우드 2기 18일차

네트워크

IP주소

역할: 네트워크 상에서 호스트(컴퓨터, 라우터, 스마트폰 등)를 식별하는 논리적 주소

  • IPv4
    • 32비트(4바이트)로 구성
    • 8비트씩 점(.)으로 구분하여 십진수 표기: 0.0.0.0 ~ 255.255.255.255
    • 클래스풀(Classful)·클래스리스(Classless) 표기: 전통적 클래스 A/B/C 구분(더 이상 잘 쓰이지 않음)
  • IPv6
    • 128비트(16바이트)
    • 16비트씩 콜론(:)으로 구분하여 16진수 표기
    • 2001:0db8:85a3:0000:0000:8a2e:0370:7334

 

도메인(Domain Name)과 DNS

도메인: 사람이 기억하기 쉬운 호스트 이름 예: www.example.com

DNS(Domain Name System): 도메인 ↔ IP 주소 변환(“해석”)을 담당하는 분산 데이터베이스 /etc/resolv.conf에 지정된 DNS 서버에 질의  

서브넷 마스크(Subnet Mask)

역할: IP 주소에서 “네트워크 부분”과 “호스트 부분”을 구분

  • 네트워크 비트: 같은 네트워크(서브넷)에 속한 호스트들을 식별하기 위해 고정된 비트
  • 호스트 비트: 서브넷 내 개별 호스트(장치)를 구별하기 위해 남겨둔 가변 비트 표기 점-십진수: 255.255.255.0 또는 CIDR(Classless Inter-Domain Routing): /24

계산법 255.255.255.0 = 이진 11111111.11111111.11111111.00000000

앞의 24비트가 네트워크, 뒤 8비트가 호스트

CIDR 프리픽스네트워크 비트 수호스트 비트 수할당 가능 호스트 수 (2ⁿ–2)
/16161665,534
/24248254
/2828414

 

브로드캐스트 주소

역할: 동일 서브넷 내 모든 호스트에 패킷을 보내는 특수 주소

계산: 네트워크 주소: 192.168.0.0/24 → 192.168.0.0 호스트 비트를 모두 1로 채운 브로드캐스트: 192.168.0.255

주의:192.168.0.0 (네트워크 주소)와 192.168.0.255 (브로드캐스트)는 직접 할당 불가 사용 가능한 호스트: 192.168.0.1 ~ 192.168.0.254  

기본 게이트웨이(Default Gateway)

역할: 서브넷 외부의 목적지로 패킷을 보낼 때 출구가 되는 라우터 주소

1
2
3
ip route show       # “default via 192.168.0.1 dev enp0s3” 형태로 표시
netstat -rn         # legacy: 라우팅 테이블 확인
route -n            # 동일

수동설정

1
sudo ip route add default via <게이트웨이 IP> dev <인터페이스>

NetworkManager를 쓸 때

1
2
nmcli connection modify <프로필명> ipv4.gateway 192.168.0.1
nmcli connection up <프로필명>

 

포트번호(Port Number)

역할: 하나의 호스트 내에서 애플리케이션(TCP/UDP 서비스)

식별 범위: 0 ~ 65535

0~1023: Well-known ports (HTTP 80, HTTPS 443, SSH 22…)

1024~49151: 등록된 포트

49152~65535: 동적·프라이빗 포트  

통신 방식

방식설명
Unicast단일 송신자 → 단일 수신자 (기본)
Broadcast단일 송신자 → 서브넷 내 모든 호스트
Multicast단일 송신자 → 특정 그룹(멀티캐스트 그룹)의 호스트들

 

리눅스 네트워크 설정 도구

NetworkManager

  • 우분투 기본 네트워킹 서비스 데몬
  • GUI(nm-connection-editor), CLI(nmcli)로 프로필 관리

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 전체 연결(프로필) 리스트
nmcli connection show

# 활성화된 장치 상태
nmcli device status

# 프로필 생성: 고정 IP 할당 예
nmcli connection add type ethernet ifname enp0s3 con-name static1 \
  ipv4.addresses 192.168.1.20/24 ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual

# 기존 프로필 수정: DNS 추가
nmcli connection modify static1 ipv4.dns "1.1.1.1"

# 프로필 적용
nmcli connection up static1

 

ip 명령

1
2
3
4
5
6
7
8
9
10
11
12
13
# 주소관리
ip addr show                  # 모든 인터페이스의 IP 확인
ip addr add 192.168.1.20/24 dev enp0s3  # IP 할당
ip addr del 192.168.1.20/24 dev enp0s3  # IP 해제

# 링크 관리
ip link show                  # 인터페이스 상태 확인
ip link set enp0s3 up/down    # 인터페이스 활성/비활성

# 라우팅 관리
ip route show                 # 라우팅 테이블
ip route add default via 192.168.0.1 dev enp0s3
ip route del default

 

ping명령어

ping 은 네트워크 상의 대상(host)이 응답 가능한지, 왕복 지연 시간(latency)이 얼마인지 등을 확인하는 유틸리티

1
ping [옵션] <대상 IP 또는 도메인>

 

옵션설명
-c <개수>전송할 ICMP 패킷 수 지정 (예: -c 5 → 5개만 전송 후 종료)
-i <초>패킷 전송 간격 지정 (초 단위, 기본 1초; root 권한 시 0.2초 가능)
-s <바이트>ICMP 페이로드 크기 지정 (기본 56바이트 → 총 64바이트 전송)
-W <초>각 응답별 timeout 지정 (초 단위; Linux에서는 소문자 사용)
-t <TTL>IP 패킷의 TTL(Time To Live) 값 지정
-q간략 모드(quiet): 통계(summary)만 출력
-f플러드(flood): 가능한 한 빠르게 전송 (root 권한 필요)
-D각 응답에 타임스탬프 표시

 

netstat명령어

  • 네트워크 연결 상태 확인: 현재 열려 있는 TCP/UDP 포트와 연결 정보
  • 라우팅 테이블 조회: 시스템이 목적지까지 패킷을 어떻게 라우팅하는지 확인
  • 인터페이스 통계: 각 네트워크 인터페이스별 송수신 패킷 수, 에러 등

 

옵션설명
-tTCP 소켓만 표시
-uUDP 소켓만 표시
-lLISTEN 상태(수신 대기 중) 소켓만 표시
-n주소/포트를 숫자(IP+포트번호)로만 표시
-a모든 소켓(연결된/리스닝 중인) 표시
-p소켓을 연 프로세스(PID/프로그램 이름) 표시
-r라우팅 테이블 표시
-i인터페이스별 통계(패킷, 에러 등) 표시
1
2
3
4
5
6
7
8
9
10
11
# 모든 TCP/UDP 소켓과 프로세스 표시
sudo netstat -tulnap

# LISTEN 중인 TCP 포트만 숫자 형태로
netstat -tnl | grep LISTEN

# 라우팅 테이블 확인
netstat -rn

# 인터페이스별 통계
netstat -i

 

ARP

  • ARP(Address Resolution Protocol) 테이블 조회/관리: IP 주소 ↔ MAC 주소 매핑 상태를 확인
  • 로컬 서브넷 이웃 확인: 같은 네트워크 내 호스트들이 어떤 MAC을 가지고 있는지 본다
  • 네트워크 문제 진단: MAC 주소 충돌, ARP 스푸핑 의심, 이웃 응답 여부 등을 점검
    1
    2
    3
    
    ip neigh show
    ip neigh flush 192.168.0.10
    ip neigh add 192.168.0.20 lladdr aa:bb:cc:dd:ee:ff dev eth0
    

     

    tcpdump

  • 패킷 캡처 및 분석: 네트워크를 오가는 실제 패킷을 확인해 문제 원인 파악
  • 프로토콜 디버깅: DNS, HTTP, ARP, ICMP 등 특정 트래픽을 추적
  • 보안 모니터링: 의심스러운 트래픽, 포트 스캔, DoS 등을 탐지
옵션설명
-i <iface>캡처할 네트워크 인터페이스 지정
-c <개수>캡처할 패킷 수 지정 후 자동 종료
-n호스트·포트 숫자 형태로만 표시
-nn호스트·포트뿐 아니라 프로토콜 번호까지 숫자로 표시
-s <크기>캡처할 페이로드 최대 크기 지정 (기본 262144바이트)
-w <파일>캡처 결과를 파일(PCAP)로 저장
-r <파일>저장된 PCAP 파일 읽기
-X패킷의 헥사·ASCII 덤프 표시
-vv / -vvv출력 레벨 증가(더 자세한 헤더·옵션 정보)
port <번호>특정 포트 필터링 (tcpdump 필터 언어)
host <IP>특정 호스트 IP만 캡처
tcp / udp특정 프로토콜만 캡처

 

SSH VS Telnet

  • SSH는 데이터 기밀성·무결성을 모두 보장하며, 포트 포워딩 등 고급 기능을 제공
  • Telnet은 암호화가 없어 보안상 위험하므로, 내부망의 레거시 장비 용도가 아니면 사용을 자제
구분SSH (Secure Shell)Telnet
포트 번호TCP 22TCP 23
암호화전 구간 암호화 (대칭·비대칭 암호화 사용)평문 전송 (암호화 없음)
인증 방식공개키 인증(Public Key) 및 비밀번호 인증비밀번호 인증만
보안성매우 높음 (중간자 공격, 도청 방지)매우 낮음 (비밀번호·데이터 도청 위험)
무결성메시지 무결성 검증 (MAC) 지원무결성 검증 기능 없음
포워딩 기능포트 포워딩, X11 포워딩, SOCKS 프록시 지원포워딩 기능 없음
호환성대부분의 현대 서버/클라이언트 지원구형 시스템에서만 사용 권장
성능암호화 오버헤드로 약간 느림암호화 없음으로 빠름
사용 사례원격 서버 관리, 자동화 스크립트, 파일 전송레거시 장비 접속, 암호화 불필요 환경
프로토콜자체 바이너리 프로토콜텍스트 기반 프로토콜
파일 전송SFTP, SCP 등 내장별도 도구 필요 (FTP, RCP 등)
접속 제어IP/사용자별 키 관리, 다양한 설정 가능제한적 (호스트 접근제어 only)
This post is licensed under CC BY 4.0 by the author.