
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) 경로
'컴퓨터공학부' 카테고리의 다른 글
| [차크라 명상] 차크라 명상의 이론과 실습 (0) | 2026.06.02 |
|---|---|
| [자료구조] 탐색 트리 (0) | 2026.05.29 |
| [시스템 프로그래밍 Linux] 파일 시스템 (0) | 2026.05.28 |
| [데이터 구조와 활용] 해시 테이블 (0) | 2026.05.26 |
| [문제 해결 알고리즘] 정렬 알고리즘 ② (0) | 2026.05.25 |