Skip to Content
자격증리눅스마스터 2급 1차22. 인터넷 활용 1: 네트워크 기초와 설정

이번 문서의 목표: IP 주소·서브넷 마스크·게이트웨이·DNS가 각각 무슨 역할을 하는지 설명하고, 사설 IP 대역과 클래스별 기본 마스크를 계산하며, ip 명령으로 네트워크 정보를 확인·설정할 수 있다.

왜 컴퓨터마다 “주소”가 필요한가

집에 편지를 보내려면 주소가 있어야 하듯, 네트워크(network, 여러 컴퓨터를 연결해 서로 통신할 수 있게 한 체계)에 연결된 컴퓨터도 서로를 구분할 고유한 번호가 있어야 한다. 이 번호가 IP 주소(IP Address, Internet Protocol Address) 다. 인터넷 프로토콜(Internet Protocol)은 데이터를 어떤 형식으로 쪼개고 어떤 주소 체계로 주고받을지 정한 통신 규약이며, IP 주소는 그 규약이 각 컴퓨터에 부여하는 고유 번호다.

쉽게 말하면: IP 주소는 네트워크에서 컴퓨터 한 대를 가리키는 고유한 번지수다.

이 문서에서 다루는 IP 주소는 IPv4(Internet Protocol version 4) 방식으로, 8비트(bit, 0 또는 1로 표현되는 정보의 최소 단위)씩 4묶음, 총 32비트로 이루어진다. 8비트는 0부터 255까지의 십진수 하나로 표현할 수 있으므로, IP 주소는 192.168.0.1처럼 점으로 구분된 네 개의 0~255 숫자로 쓴다. 이 표기법을 점십진표기법(dotted decimal notation) 이라 부른다.

서브넷 마스크 — 어디까지가 “우리 동네”인가

IP 주소 하나만으로는 부족하다. 예를 들어 192.168.0.1이라는 컴퓨터와 192.168.0.2라는 컴퓨터가 케이블 하나로 직접 연결된 같은 네트워크에 있는지, 아니면 인터넷 반대편에 떨어져 있는지를 IP 주소만 봐서는 알 수 없다. 이 “여기부터 여기까지가 같은 동네(네트워크)“라는 경계선을 정해 주는 것이 서브넷 마스크(subnet mask) 다.

쉽게 말하면: 서브넷 마스크는 IP 주소 32비트 중 앞쪽 몇 비트가 “네트워크를 가리키는 부분”인지 표시하는 자다.

서브넷 마스크도 IP 주소와 똑같이 32비트, 점십진표기법으로 쓴다. 마스크에서 1로 채워진 비트만큼이 네트워크를 가리키는 부분(네트워크 ID)이고, 나머지 0으로 채워진 비트가 그 네트워크 안에서 개별 컴퓨터를 구분하는 부분(호스트 ID)이다. 예를 들어 255.255.255.0은 앞 24비트가 1이라는 뜻이며, 뒤 8비트(256개, 0~255)가 호스트를 구분하는 데 쓰인다.

서브넷 마스크는 두 가지 방식으로 표기한다. 하나는 방금 본 점십진표기법(255.255.255.0)이고, 다른 하나는 네트워크 부분 비트 수를 슬래시 뒤에 적는 CIDR 표기법(Classless Inter-Domain Routing) 이다. 예를 들어 앞 24비트가 네트워크 부분이면 /24라고 쓴다. 둘은 완전히 같은 정보를 다른 방식으로 표현할 뿐이다.

CIDR 표기서브넷 마스크(점십진)호스트 비트 수네트워크당 전체 주소 수
/8255.0.0.02416,777,216
/16255.255.0.01665,536
/24255.255.255.08256
/25255.255.255.1287128
/26255.255.255.192664

이 대응표는 통째로 외워 두는 것이 좋다. 시험에 “/16에 해당하는 서브넷 마스크는?” 같은 형태로 자주 나오는데, 앞 비트 수만큼 1을 채운 뒤 8비트씩 끊어 십진수로 바꾸면 스스로 계산할 수도 있다. 예를 들어 /26은 앞 26비트가 1이다. 24비트(3옥텟)는 이미 255.255.255로 꽉 찼고, 남은 2비트만 네 번째 옥텟에서 1이 되므로 11000000(십진수 192)이 되어 255.255.255.192가 만들어진다.

네트워크 주소·브로드캐스트 주소·사용 가능한 호스트 범위

하나의 서브넷 안에서 모든 주소를 컴퓨터에 나눠 줄 수 있는 것은 아니다. 그 블록의 첫 번째 주소는 네트워크 자체를 가리키는 네트워크 주소(network address) 로 예약되고, 마지막 주소는 그 네트워크의 모든 컴퓨터에게 동시에 메시지를 보낼 때 쓰는 브로드캐스트 주소(broadcast address) 로 예약된다. 그 사이의 주소만 실제 컴퓨터에 할당할 수 있는 호스트 주소다.

예를 들어 서브넷 마스크가 255.255.255.192(/26, 블록 크기 64)이고 IP 주소가 192.168.5.66이라 하자. /26은 네 번째 옥텟을 64 단위로 끊으므로, 063, 64127, 128191, 192255의 네 블록이 생긴다. 66은 두 번째 블록(64~127)에 속하므로, 이 블록의 네트워크 주소는 192.168.5.64, 브로드캐스트 주소는 192.168.5.127이다. 따라서 이 컴퓨터가 실제로 쓸 수 있는 호스트 주소 범위는 192.168.5.65부터 192.168.5.126까지, 총 62개(64에서 네트워크·브로드캐스트 2개를 뺀 값)다.

자주 틀리는 점: 브로드캐스트 주소(위 예시에서 192.168.5.127)를 실제 컴퓨터에 할당 가능한 호스트 주소로 착각해 답으로 고르는 오답이 자주 섞여 나온다. 블록의 첫 주소(네트워크 주소)와 마지막 주소(브로드캐스트 주소)는 항상 제외한다는 원칙을 기계적으로 적용해야 한다.

게이트웨이 — 다른 동네로 나가는 문

내 컴퓨터가 같은 네트워크(서브넷) 안의 컴퓨터와 통신할 때는 직접 신호를 보내면 된다. 하지만 다른 네트워크, 예를 들어 인터넷 저편의 서버와 통신하려면 일단 우리 네트워크를 벗어나야 한다. 이때 데이터가 처음 거쳐 나가는 문 역할을 하는 장비의 주소가 게이트웨이(gateway) 다. 흔히 라우터(router, 서로 다른 네트워크를 연결해 데이터의 경로를 정해 주는 장비)의 주소가 게이트웨이가 된다.

쉽게 말하면: 게이트웨이는 우리 동네를 벗어나 다른 동네로 나갈 때 반드시 거쳐야 하는 대문이다.

게이트웨이 주소를 반드시 특정 값으로 정해야 한다는 표준 규칙은 없지만, 관례상 그 서브넷에서 사용 가능한 첫 번째 호스트 주소나 마지막 호스트 주소를 게이트웨이로 쓰는 경우가 많다. 위 예시(192.168.5.66, /26)에서라면 사용 가능한 마지막 호스트 주소인 192.168.5.126을 게이트웨이로 지정하는 방식이 흔하다.

현재 시스템에 설정된 게이트웨이(기본 경로)를 확인하려면 ip route show(또는 짧게 ip route) 명령을 쓴다. 출력에서 default via 게이트웨이주소 형태의 줄이 바로 기본 게이트웨이를 보여 준다. 옛날 방식인 route -n 명령도 같은 정보를 보여 주지만, 최근 배포판은 ip 명령을 표준으로 쓴다.

DNS — 숫자 주소를 이름으로 바꿔 주는 전화번호부

IP 주소는 컴퓨터끼리 통신하기에는 편리하지만, 사람이 172.217.161.142 같은 숫자를 외워서 웹사이트에 접속하기는 어렵다. 그래서 www.example.com처럼 사람이 기억하기 쉬운 이름(도메인 이름, domain name)을 IP 주소로 바꿔 주는 체계가 필요한데, 이것이 DNS(Domain Name System, 도메인 이름 시스템) 다.

쉽게 말하면: DNS는 도메인 이름과 IP 주소를 짝지어 알려 주는 전화번호부다.

내 컴퓨터가 이름을 IP 주소로 바꿀 때 어떤 순서로 어디를 찾아보는지는 리눅스 안에 정해져 있다. 먼저 로컬(내 컴퓨터 안)에 있는 정적 매핑 파일을 보고, 거기에 없으면 DNS 서버에 물어본다.

파일역할
/etc/hosts호스트 이름과 IP 주소를 직접 짝지어 둔 로컬 정적 매핑 파일. 여기 등록된 이름은 DNS를 거치지 않고 즉시 해석된다
/etc/resolv.conf클라이언트가 물어볼 DNS 서버(네임서버)의 IP 주소를 nameserver 항목으로 지정하는 파일
/etc/nsswitch.conf이름 해석 시 /etc/hosts와 DNS 중 어느 쪽을 먼저 참조할지 순서를 정하는 파일(hosts 항목)
/etc/named.confDNS 서버 소프트웨어(BIND)의 설정 파일. 클라이언트가 아니라 DNS 서버 자체를 운영할 때 쓴다

자주 틀리는 점: /etc/resolv.conf(클라이언트가 물어볼 DNS 서버 지정)와 /etc/named.conf(DNS 서버 소프트웨어 설정)를 헷갈리는 문제가 자주 나온다. 2급 1차는 DNS 서버를 직접 구축하는 문제까지는 내지 않으므로, “클라이언트 쪽 설정은 /etc/resolv.conf”라는 점만 확실히 기억해 두면 된다.

사설 IP와 공인 IP

IP 주소는 크게 두 종류로 나뉜다. 공인 IP(public IP) 는 인터넷 전체에서 유일해야 하는 주소로, 인터넷 서비스 사업자(ISP)를 통해 할당받아 인터넷 어디서든 라우팅(routing, 데이터가 목적지까지 가는 경로를 찾는 과정)된다. 사설 IP(private IP) 는 집이나 회사 내부 네트워크에서만 쓰는 주소로, 인터넷상에서는 라우팅되지 않는다. 사설 IP를 쓰는 이유는 전 세계 모든 기기에 유일한 공인 IP를 하나씩 줄 만큼 IPv4 주소 공간이 넉넉하지 않기 때문이다. 사설 네트워크 안의 여러 컴퓨터가 공인 IP 하나를 함께 쓰며 나가고 들어오는 방식을 NAT(Network Address Translation, 네트워크 주소 변환) 라 한다.

쉽게 말하면: 사설 IP는 우리 집 안에서만 통하는 내선 번호이고, 공인 IP는 외부에서도 걸 수 있는 대표 전화번호다.

사설 IP로 쓰도록 정해진 대역은 클래스별로 정확히 세 개다. 반드시 정확한 숫자로 외워야 한다.

클래스사설 IP 대역CIDR 표기
클래스 A10.0.0.0–10.255.255.25510.0.0.0/8
클래스 B172.16.0.0–172.31.255.255172.16.0.0/12
클래스 C192.168.0.0–192.168.255.255192.168.0.0/16

자주 틀리는 점: 169.254.0.0/16 대역을 사설 IP로 착각하는 오답이 자주 섞여 나온다. 이 대역은 사설 IP가 아니라 링크 로컬(link-local) 주소, 흔히 APIPA(Automatic Private IP Addressing)라 부르는 것으로, DHCP(동적 호스트 설정 프로토콜, 자동으로 IP를 할당해 주는 서비스)로부터 주소를 받지 못했을 때 컴퓨터가 임시로 스스로에게 부여하는 주소다. 사설 IP 3대역과 이 링크 로컬 대역을 명확히 구분해야 한다.

IP 주소 클래스와 기본 서브넷 마스크

전통적인 IPv4 주소 체계는 첫 옥텟(첫 번째 8비트)의 범위에 따라 클래스 A·B·C·D·E로 나눈다. 2급 1차에서는 실제로 호스트에 할당하는 A·B·C 세 클래스와 그 기본 마스크를 확실히 알아 두면 된다.

클래스첫 옥텟 범위기본 서브넷 마스크용도
클래스 A1–126255.0.0.0(/8)대규모 네트워크(호스트 수가 매우 많은 조직)
클래스 B128–191255.255.0.0(/16)중규모 네트워크
클래스 C192–223255.255.255.0(/24)소규모 네트워크(가정·소기업 등)

첫 옥텟이 127인 대역(127.0.0.0/8)은 클래스 A 범위 안에 있지만 실제로는 자기 자신을 가리키는 루프백(loopback) 주소로 예약되어 있어 별도 취급한다는 점도 함께 기억해 두면 좋다. 127.0.0.1이 “내 컴퓨터 자신”을 뜻하는 대표적인 루프백 주소다.

네트워크 설정 파일과 인터페이스 이름

리눅스가 네트워크에 연결되려면 물리적인 네트워크 카드(NIC, Network Interface Card)를 운영체제가 하나의 인터페이스(interface) 로 인식해야 한다. 예전 배포판에서는 eth0, eth1처럼 순서대로 이름을 붙였지만, 최근 배포판은 하드웨어 위치 정보를 반영한 예측 가능한 인터페이스 이름(Predictable Network Interface Names) 규칙을 쓴다. 예를 들어 enp0s3은 “이더넷(en), PCI 버스 0번(p0), 슬롯 3번(s3)에 꽂힌 장치”라는 뜻을 담고 있다. 이렇게 이름을 부여하면 하드웨어를 추가·제거해도 기존 인터페이스 이름이 뒤죽박죽 바뀌지 않는다는 장점이 있다.

배포판 계열별로 인터페이스 설정을 저장하는 파일 위치가 다르다는 점도 알아 두어야 한다.

계열설정 위치비고
레드햇(Red Hat) 계열(CentOS, RHEL 등)/etc/sysconfig/network-scripts/ifcfg-인터페이스명인터페이스별로 파일이 나뉜다
레드햇 계열 전역 설정/etc/sysconfig/network네트워킹 사용 여부, 호스트 이름, 기본 게이트웨이 등 전역 값
데비안(Debian) 계열(Ubuntu 등)/etc/network/interfaces (또는 최근 버전은 Netplan /etc/netplan/*.yaml)여러 인터페이스 설정을 한 파일(또는 YAML)에 모아 둔다

ifconfig와 ip — 옛 도구와 표준 도구

네트워크 인터페이스의 상태를 보거나 IP 주소를 직접 설정하는 명령도 세대가 갈린다. ifconfig는 오래전부터 쓰이던 net-tools 패키지의 명령이고, ip는 iproute2 패키지가 제공하는 최신 표준 명령이다. 최근 배포판은 ifconfig가 기본으로 설치되어 있지 않은 경우도 많아, 2급 1차도 ip 명령 사용법을 더 비중 있게 묻는다.

쉽게 말하면: ifconfig는 구식 도구, ip는 그 자리를 대체한 신식 도구다.

ip 명령은 “무엇을 다룰지”를 나타내는 객체(object)와 “무엇을 할지”를 나타내는 동작(action)을 이어서 쓰는 구조다.

목적ifconfig(구식)ip(신식)
인터페이스의 IP 주소 확인ifconfigip addr show(줄여서 ip a)
특정 인터페이스에 IP 주소 추가ifconfig enp0s3 192.168.10.5 netmask 255.255.255.0ip addr add 192.168.10.5/24 dev enp0s3
IP 주소 제거ifconfig enp0s3 0.0.0.0ip addr del 192.168.10.5/24 dev enp0s3
인터페이스 켜기·끄기ifconfig enp0s3 up/downip link set enp0s3 up/down
라우팅 테이블·게이트웨이 확인route -nip route show(줄여서 ip route)
MAC 주소(하드웨어 고유 번호) 확인ifconfig(HWaddr 항목)ip link show 또는 ip addr show(link/ether 항목)

ip 명령에서 IP 주소를 지정할 때 192.168.10.5/24처럼 CIDR 표기를 그대로 붙여 쓴다는 점이 ifconfig와의 큰 차이다. ifconfig는 IP 주소와 서브넷 마스크(netmask 255.255.255.0)를 따로 적어야 했지만, ip는 슬래시 표기 하나로 주소와 마스크 정보를 함께 넘긴다.

자주 틀리는 점: ip addr add(주소를 추가하는 동작)와 ip route add(경로를 추가하는 동작), ip link set(인터페이스 상태를 바꾸는 동작)을 서로 바꿔 쓰는 오답이 자주 나온다. “IP 주소를 추가한다”는 무조건 ip addr add ... dev 인터페이스명 형태라는 것을 명령의 뼈대로 외워 두면 흔들리지 않는다. 또한 게이트웨이(기본 경로)를 확인하는 명령을 “ip gw show”, “ip gateway show” 같은 존재하지 않는 형태로 헷갈리게 하는 오답도 나온다. 정답은 항상 ip route show다.

직접 해보기

00편에서 만든 Rocky Linux 컨테이너에서 진행합니다. 아직 안 만들었다면 00편을 먼저 보세요. ip: command not found가 뜨면 dnf install -y iproute로 설치한 뒤 다시 시도한다.

컨테이너에도 자체 IP가 할당된다. 그 주소가 어느 사설 대역에 속하는지 직접 확인해 본다.

ip addr show ip route show cat /etc/resolv.conf

무엇을 보아야 하나: ip addr show 출력에서 인터페이스(주로 eth0)에 붙은 inet 주소의 첫 두 옥텟을 본다. 도커 컨테이너는 흔히 172.17.x.x 같은 주소를 받는데, 이것이 클래스 B 사설 대역(172.16.0.0172.31.255.255)에 속하는지 위 표와 대조해 본다. ip route showdefault via 뒤 주소가 게이트웨이, /etc/resolv.confnameserver 줄이 DNS 서버다.

왜 이걸 해보나: 172.x.x.x를 보고 공인 IP나 클래스 A로 착각하는 것이 실제 함정이다. 눈으로 본 숫자를 대역표와 직접 맞춰 보면 “172.16.0.0/12는 클래스 B 사설 대역”이 암기가 아니라 확인된 지식이 된다.

핵심 정리

  • 서브넷 마스크는 IP 주소 32비트 중 앞쪽 몇 비트가 네트워크 부분인지 나타내며, /24=255.255.255.0처럼 CIDR과 점십진표기법 두 가지로 쓴다.
  • 한 블록의 첫 주소는 네트워크 주소, 마지막 주소는 브로드캐스트 주소로 예약되어 호스트에 할당할 수 없다.
  • 게이트웨이는 다른 네트워크로 나가는 문이며, ip route show로 확인한다.
  • DNS는 도메인 이름을 IP 주소로 바꿔 주며, 클라이언트 설정은 /etc/resolv.conf, 서버 설정은 /etc/named.conf로 서로 다른 파일이다.
  • 사설 IP 대역은 정확히 세 개: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16이며, 169.254.0.0/16(링크 로컬)과 혼동하지 않는다.
  • 클래스 A·B·C의 기본 마스크는 각각 255.0.0.0, 255.255.0.0, 255.255.255.0이다.
  • ip 명령이 ifconfig·route를 대체하는 표준 도구이며, ip addr(주소), ip link(인터페이스 상태), ip route(경로)로 객체가 나뉜다.

마무리 복습

문제 14지선다
서브넷 마스크 255.255.255.192에 해당하는 CIDR 표기로 알맞은 것은?
문제 24지선다
IP 주소가 192.168.5.66이고 서브넷 마스크가 255.255.255.192(/26)일 때, 이 컴퓨터가 속한 블록의 브로드캐스트 주소로 알맞은 것은?
문제 34지선다
다음 중 클래스 B에 속하는 사설 IP 대역으로 알맞은 것은?
문제 44지선다
클라이언트 컴퓨터가 물어볼 DNS 서버(네임서버)의 IP 주소를 지정하는 설정 파일로 알맞은 것은?
문제 54지선다
최신 리눅스 배포판에서 ifconfig를 대체하는 ip 명령으로, 인터페이스 enp0s3에 IP 주소 192.168.10.5/24를 추가하는 올바른 명령은?
문제 64지선다
클래스 C 네트워크의 기본 서브넷 마스크로 알맞은 것은?
문제 74지선다
현재 시스템에 설정된 기본 게이트웨이를 확인하는 ip 명령으로 알맞은 것은?

참고 자료

Last updated on