컴퓨터공학부

[시스템 프로그래밍 Linux] 네트워크 설정

혜머니 2026. 6. 1. 00:27

1. 네트워크 기초

(1) TCP/IP 프로토콜과 MAC 주소

- 프로토콜 : 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신 규약

- 같은 프로토콜을 사용하는 기기 간에는 통신이 가능함

응용/표현/세션 계층 - TCP/IP 프로토콜은 5계층으로 구성됨
- 계층별로 수행하는 역할이 구분됨
- 계층별로 다양한 서비스를 제공하는 프로토콜이 지원됨
- TCP/IP 프로토콜은 다양한 프로토콜의 집합임
  이 중 전송 계층의 TCP와 네트워크 계층의 IP로 전체 프로토콜을 대표하여 TCP/IP 프로토콜이라 일컬음
전송 계층
네트워크 계층
링크 계층
물리 계층
계층 기능 프로토콜 전송 단위
응용 계층 서비스 제공 응용 프로그램 DNS, FTP, HTTP, SSH, TELNET 메세지
전송 계층 응용 프로그램으로 데이터 전달, 데이터 흐름 제어 및 전송 신뢰성 담당 TCP, UDP 세그먼트
네트워크 계층 주소 관리 및 경로 탐색 IP, CMP 패킷
링크 계층 네트워크 장치 드라이버 ARP 프레임
물리 계층 케이블 등 전송 매체 구리선, 광케이블, 무선 비트

- MAC : Media Access Control의 약자

- MAC 주소 : 하드웨어를 위한 주소, 이더넷 주소, 하드웨어 주소, 물리 주소라고도 함

- MAC 주소는 각 하드웨어를 구별하는 역할을 수행함

- 네트워크 인터페이스 카드(랜카드)에 저장된 주소라고 생각하면 됨

- MAC 주소는 네트워크 인터페이스 카드가 만들어질 때 부여

- 원칙적으로 수정 불가, 일부 네트워크 인터페이스 카드의 경우 사용자가 MAC 주소를 수정할 수 있도록 허용

- 특별한 경우가 아니면 수정하지 않는 것이 좋음

- MAC 주소는 :이나 -으로 구분되는 여섯개의 16진수로 구성 (48bit)

- 앞의 세자리는 제조사 번호이고, 뒤의 세자리는 일련번호임

- 제조사 번호는 국제 표준 기구인 IEEE에서 지정 : MAC 주소로 제조사 확인 가능

(2) IP 주소

- IP 주소 = 네트워크 주소 + 호스트 주소

- 컴퓨터가 인터넷에 연결되려면 IP 주소가 할당되어 있어야 함

- 우리가 보통 인터넷 주소라고 부르는 것이 IP (internet Protocol) 주소임

- IP 주소는 인터넷으로 연결된 네트워크에서 각 컴퓨터를 구분하기 위해 사용됨

- IP 주소는 1 바이트 크기의 네 개 숫자로 구성되며 총 4바이트임

- TCP/IP 프로토콜의 3~5 계층은 IP 주소를 사용함

- IP 주소는 네트워크를 구분하는 네트워크 주소 부분과 해당 네트워크 안에서 특정 컴퓨터를 식별하는 호스트 주소 부분으로 나뉨

- 총 32B(4B) 중 몇 비트를 네트워크 부분으로 사용하고 나머지 몇 비트를 호스트 부분으로 사용하는지에 따라 A/B/C 클라스로 구분

- 이 가운데 주로 접하게 되는 C 클라스는 앞의 3바이트가 네트워크 부분이고 1바이트만 호스트 부분임

- 호스트 부분으로 사용할 수 있는 숫자는 0~255임

- 0은 네트워크 주소를 나타내는데 사용하고 255는 브로드 캐스트 주소로 사용함

- 1~254를 호스트 주소로 할당할 수 있음

- 192.168.100.5 같은 형식의 IP 주소를 IPv4(IP 버전 4)라고 하는데, 이 주소는 고갈되어 더 이상 새로운 주소를 할당받을 수 없음

- 이를 대체하기 위해 개발된 주소는 IPv6(IP 버전 6)

- 넷마스크  : IP 주소에서 네트워크 부분을 알려주는 역할을 함, 하나의 네트워크를 작은 네트워크(서브넷)으로 분리할 때도 사용하므로 서브넷 마스크라고 부르기도 함

- C 클래스 IP 주소의 경우 기본 넷 마스크가 255.255.255.0

- IP 주소와 넷 마스크를 10진수에서 2진수로 바꾼 다음 두 값을 가지고 AND 연산을 수행

- 네트워크 부분만 남고 호스트 부분은 0이 됨

- 넷마스크 : IP 주소와 AND 연산을 수행하여 네트워크 부분만 남기는 역할

- 브로드캐스트 주소 : 같은 네트워크에 있는 모든 컴퓨터에 메세지를 보낼 때 사용하는 것으로 호스트 부분을 모두 1로 설정함

- 컴퓨터가 인터넷에 연결하려면 IP 주소가 있어야하며, 이 주소를 사용하여 메일도 보내고 웹 사이트에 접속함

- 컴퓨터는 숫자를 이해하지만 사람은 문자나 이름을 더 잘 기억하므로 호스트 이름이 등장함

- 호스트 이름도 IP 주소처럼 2부분으로 구성됨

- 네이버 호스트 이름 : www.naver.com  (www = 호스트 부분) (naver.com = 네트워크 부분)

- 개인용 PC는 호스트 이름을 붙일 필요가 없음

- 웹 서버와 같이 네트워크 서비스를 제공하는 서버 컴퓨터는 용도에 따라 호스트 이름을 붙여서 사용해야 함

- 포트 번호 : 보통 주소에 포한되지 않지만 각 서비스를 구분하는 번호

- 사용자가 네트워크 서비스를 이용할 때 사용자 패킷은 IP 주소를 보고 해당 서버 컴퓨터를 찾아감

- 서버 컴퓨터에 도착한 사용자 패킷은 어떤 서비스를 요청했는지 확인한 다름 해당 데몬에 패킷을 전달함

- 웹 서비스를 요청했다면 웹 서버 데몬(httpd)에 전달하는 것 > 사용자가 어떤 서비스를 요청했는지 구분해주는 것이 포트 번호

- TCP/IP 프로토콜의 4계층인 전송 계층에서 사용하는 것이 포트 번호, 전송 계층이 하는 일은 해당 프로그램에 데이터가 정호가하게 전달되도록 하는 것

- 포트 번호 보는 법 : /etc/services 파일의 역할은 서비스별로 포트 번호가 무엇인지 정의하는 것

- /etc/services 파일에 저장된 포트 번호는 국제 표준의 포트 번호임

- 사용자가 개발한 네트워크 프로그램은 이 파일에 정의되지 않은 번호를 사용하여 서비스를 제공할 수 있음

2. 네트워크 설정

(1) 네트워크 설정하기

- 네트워크 사용하기 위해 설정해야할 주소 : IP, 넷마크스와 브로드캐스트 주소, 게이트웨이 주소, DNS 주소

- 사용자가 임의로 설정하여 사용할 수 있는 것이 아님

- 반드시 해당 기관의 네트워크 관리자에게 문의하여 정확한 주소를 받아야 함

- 하나라도 틀리면 네트워크 연결에 문제가 밸상할 수 있기 때문

- 네트워크 관리자가 네트워킹 서비스를 제공함

- 네트워크 관리자는 네트워크 제어와 설정을 관리하는 데몬

- 네트워크 관리자를 사용하여 IP 주소 설정, 고정 라우터, DNS 설정 등을 수행할 수 있음

- nmcli 명령 : 네트워크 관리자를 사용하는 명령 기반 도구

- [설정]-[네트워크] : 그놈에서 제공하는 GUI 기반 도구

- nm-connection-editor : 네트워크 관리자를 사용하는 GUI 기반 도구, [제어판]-[네트워크]에서 설정할 수 없는 부분도 설정 가능

- ip 명령 : 네트워크를 설정하는 명령을 제공

- 네트워크 관리자는 로키 리눅스 설치 시 기본적으로 설치됨

- 설치되지 않은 경우는 dnf 명령으로 설치됨

- 네트워크 관리자는 시스템이 부팅될 때 자동으로 동작함

- 네트워크 관리자가 동작하고 있는지 systemctl status 명령으로 확인 가능

- 만약 네트워크 관리자 상태가 inactive 상태라면 다음 명령으로 동작시킴

   : systemctl start NetworkManager

- 시스템이 부팅될 때 네트워크 관리자가 동작하게 하려면 다음과 같이 enable 명령을 실행 함

   : systemctl enable NetworkManager

- 네트워크 관리자는 네트워크 설정 정보를 연결 프로파일에 저장함

- 사용자는 네트워크 관리자를 직접 제어하지 않고, 명령 기반 도구나 GUI 기반 도구를 사용함

- nmcli은 네트워크 관리자를 사용하는 명령 기반 도구임

- 그놈의 [설정]-[네트워크]나 nmconnection-editor는 GUI 기반 도구임

- 이러한 도구를 사용하여 네트워크 설정을 변경하면 네트워크 관리자가 자동으로 인식함

- ip 명령으로도 네트워크를 설정할 수 있지만, 이 명령으로 네트워크 설정을 변경하면 네트워크 관리자가 자동으로 인식하지 못함

- 그놈 : 윈도의 제어판 처럼 시스템과 네트워크 설정을 위한 기능을 제공

(2) nmcli 명령 : nmcli [옵션] [명령] [서브 명령]

- nmcli 명령은 네트워크를 설정하는 명령은 네트워크 관리자와 함께 설치됨

- nmcli 명령으로 유선 네트워크 뿐 아니라 와이파이 등의 무선 네트워크 보안 등 네트워크와 관련된 거의 모든 설정을 관리할 수 있음

- nmcli는 명령행에서 사용하는 명령은 물론이고 대화식 인터페이스도 제공함

* -t 실행 결과를 간단하게 출력

* -p 사용자가 읽기 좋게 출력

* -v nmcli의 버전을 출력

* -h 도움말 출력

[명령] [서브 명령]

[general] [status|hostname] 네트워크 관리자가 전체적인 상태를 출력하고, 호스트명을 읽거나 변경 가능

- 네트워크의 전체적인 상태는 nmcli의 general 명령으로 확인 가능

- nmcli를 사용할 때 명령을 줄여서 사용할 수 있음

- general 대신 gen만 입력해도됨 (status없어도 같은 결과 출력)

[networking] [on|off|connectivity] 네트워크를 시작, 종료하고 연결 상태를 출력함

- connextivity : 서브 명령으로 네트워크 연결 상태를 알려줌

> 출력 : none(없음) limited(연결되어있지만 인터넷 연결되지 않음) full(네트워크 연결됨 인터넷 사용 가능) unknown(알 수 없음)

[connection] [show|up|down|modify|add|delete|reload|load] 네트워크를 설정함

- show : 메모리와 디스크에 저장된 네트워크 연결 프로파일을 출력함, 거브 명령을 지정하지 않으면 기본값이 show임

> 출력 : 이름, UUID, 유형, 연결 장치 이름

- up : 네트워크 연결 시작

- down : 네트워크 연결 중지

- modify : 연결 프로파일에서 속성을 추가, 수정, 삭제함

- 추가 시 +, 삭제 시 -로 진행 수정은 미사용

- add : 새로운 연결 생성

- 동적 IP 연결 : nmcli connection add type ethernet con-name connection-name ifname interface-name 

- delete : 연결 설정 삭제

- reload : 연결과 관련된 파일을 디스크에서 다시 읽어옴

- load : 디스크에서 하나 이상의 연결 파일을 읽어옴

[device] [status|show] 네트워크 장치의 상태를 출력함

(3) ip 명령 : ip [옵션] [객체] [서브 명령]

- ip 명령을 사용하여 네트워크 상태 확인, IP 주소 설정, 게이트 웨이 설정 가능

- ip 명령으로 설정한 것은 시스템을 재시작하면 사라짐

- 시스템을 다시 시작한 후에도 설정한 내용이 적용되게 하려면 설정 파일을 수정해야 함

* -V 버전 출력

* -s 자세한 정보 출력

[address] [add|del|show|help] : 장치의 IP 주소 관리

- show 출력 > link/ether(이더넷 주소), inet(IPv4 주소), inet6(IPv6 주소)

[route] [add|del|help] : 라우팅 테이블 관리(ip-route)

- 인터넷은 네트워크와 네트워크를 연결한 것, 연결점이 되는 장치를 게이트웨이라고 하며, 데이트웨이도 하나의 컴퓨터이며 라우터라 불림

- 게이트웨이는 패킷을 보고 같은 네트워크로 보내는 것이 아니면 외부로 전송함

- 게이트 웨이 주소가 설정되어있지 않으면 같은 네트워크가 아닌 네트워크는 전송 불가

[link] [set] : 네트워크 인터페이스 활성화

(4) ifconfig 명령 : ifconfig [인터페이스명] [옵션] [값]

- 네트워크 인터페이스의 IP 주소를 설정함

* -a 시스템의 전체 인터페이스에 대한 정보 출력

* -up/down 인터페이스 활성화/비활성화

* netmask [주소] 넷마스크 주소를 설정

* broadcast [주소] 브로드캐스트 주소 설정

- 옵션 없이 inconfig 시 전체 설정 내용 출력

- IP 주소와 넷마스크, 브로트 캐스트 주소는 사용자의 네트워크 환경에 따라 다르게 출력

- 보통 시스템에서 네트워크 인터페이스는 하나이지만 경우에 따라 두개 이상 장착도 가능

- 네트워크 인터페이스 IP 주소를 수작업으로 설정하려면 IP 주소와 넷마스크를 함께 설정해야 함

- 서브넷으로 나누지 않고 기본 C 클래스를 사용한다면 넷마스크나 브로드 캐스트 주소 생략 가능

  : ifconfig 인터페이스명 IP 주소 netmask 넷마스크주소 broadcast 브로드캐스트주소

- ifconfig 명령으로 ip 주소를 다른 것으로 설정하면 게이트 웨이 경로 등 네트워크 정보를 잃어버릴 수 있음

(5) 게이트웨이 설정하기 : route [명령]

- 게이트 웨이 연결 정보를 관리하는 라우팅 테이블을 편집하는 명령임

- 라우팅 테이블이 제대로 설정되어있지 않으면 외부 네트워크와 연결 불가

[add] 라우팅 경로나 기본 게이트웨이를 추가함

[del] 라우팅 경로나 기본 게이트웨이를 삭제함

- Destination : 라우팅 대상 네트워크나 호스트의 주소

- Gateway : 게이트웨이 주소 또는 설정되어있지 않으면 * 출력

- Genmask : 대상 네트워크의 넷 마스크, 255.255.255.255 = 대상이 호스트, 0.0.0.0 = 기본(default) 경로