네트워크 기초
TCP/IP 프로토콜
프로토콜: 컴퓨터와 컴퓨터 사이에 데이터를 어떻게 주고받을 것인지를 정의한 통신규약
인터넷은 TCP/IP라는 프로토콜에 따라 통신
주소
컴퓨터의 주소: MAC 주소, IP 주소, 호스트명
MAC주소
- 하드웨어를 위한 주소
- MAC 주소는 네트워크 인터페이스 카드(랜 카드)에 저장된 주소로 기본적으로 네트워크 인터페이스 카드가 만들어질 때 부여
- MAC 주소는 각 하드웨어를 구별하는 역할을 수행
- MAC 주소는 : 이나 - 으로 구분되는 여섯 개의 16진수로 구성되며 총 48bit
앞의 세 자리는 제조사 번호, 뒤의 세 자리는 일련변호
제조사 번호는 국제 표준 기구 중 하나의 IEEE에서 지정
IP 주소
- IP 주소는 1바이트 크기의 숫자 네 개로 구성되므로 총 4바이트
- TCP/IP 프로토콜의 3~5 계층은 IP 주소를 사용
- IP주소는 네트워크를 구분하는 네트워크 주소 부분과, 해당 네트워크 안에서 특정 컴퓨터를 식별하는 호스트 주소 부분
- IP 주소는 총 32bit(4B) 중 몇 비트를 네트워크 부분으로 사용하고 나머지 몇 비트를 호스트 부분으로 사용하는지에 따라 A 클래스, B 클래스, C 클래스로 구분
- C 클래스는 앞의 3바이트가 네트워크 부분이고 뒤의 1바이트만 호스트 부분
- 호스트 부분으로 사용할 수 있는 숫자는 0~255인데, 0은 네트워크 주소를 나타내는 데 사용하고 255는 브로드캐스트 주소로 사용하므로 1~254를 호스트 주소로 할당 - IPv6(IP 버전 6)는 fe80::250:56ff:fe3e:3cfe와 같이 16진수로 표기하며 128bit 크기
넷마스크와 브로드캐스트 주소
- 넷마스크: IP 주소에서 네트워크 부분을 알려주는 역할
- 브로드 캐스트 주소: 같은 네트워크에 있는 모든 컴퓨터에 메세지를 보낼 때 사용
- 호스트 부분을 모두 1로 설정
- 예: IP 주소에서 네트워크 부분이 192.168.100.0이면 브로드캐스트 주소는 192.168.100.255
호스트 이름
- 컴퓨터에 붙이는 이름
- 호스트 이름도 IP 주소처럼 네트워크 부분과 호스트 이름 두 부분으로 구성
- 예: www.naver.com, 호스트 부분(www), 네트워크 부분(naver.con)
포트 번호
- 서버에서 제공하는 각 서비스를 구분하는 번호
- /etc/services 파일에 서비스 포트번호 저장
네트워크 설정
네트워크 설정에 필요한 정보
- IP 주소
- 넷마스크와 브로드캐스트 주소
- 게이트웨이(라우터) 주소
- DNS 주소
네트워크 관리자
네트워크의 제어와 설정을 관리하는 데몬
네트워크 관리자 설치하기
sudo apt install network-manager
GUI로 네트워크 설정
GNOME의 [설정]-[네트워크]
$ nm-connection-editor
nmcli
기능 - 명령 기반으로 네트워크 관리자를 설정
형식 - nmcli [옵션] 명령 {서브 명령}
옵션
-t: 실행 결과를 간단하게 출력
-p: 사용자가 읽기 좋게 출력
-v: nmlic의 버전을 출력
-h: 도움말 출력
명령 {서브 명령}
- general(gen) {status | hostname}: 네트워크 관리자의 전체적인 상태 출력, 호스트 명을 읽거나 변경 가능
- networking(net) {on | off | connectivity}: 네트워크를 시작, 종료하고 연결 상태를 출력
- connection(con) {show | up | down | modify | add | delete | reload | load}: 네트워크를 설정
- device {status | show}: 네트워크 장치의 상태 출력
ip
기능 - IP 주소, 게이트웨이, 네트워크 장치의 상태 등을 출력, 관리
형식 - ip [옵션] 객체 [서브 명령]
옵션
-V: 버전을 출력
-s: 자세한 정보를 출력
객체[서브명령]
- adress [add|del|show|help]: 장치의 IP 주소를 관리
- route [add|del|help]: 라우팅 테이블을 관리
- link [set]: 네트워크 인터페이스를 활성화/비활성화
ip addr show
ip addr add 192.168.1.20/24 dev ens33
ip route show
ip route add 192.168.2.0/24 via 192.168.1.1 dev ens33
게이트웨이: 네트워크를 다른 네트워크와 연결할 때 연결점이 되는 장치
게이트웨이도 하나의 컴퓨터로 보통 라우터라고 함
게이트웨이 주소가 설정되어 있지 않으면 같은 네트워크가 아닌 컴퓨터와는 접속할 수 없음
ifconfig
기능 - 네트워크 인터페이스의 IP 주소를 설정한다
형식 - ifconfig [인터페이스명] [옵션] [값]
옵션
-a: 시스템의 전체 인터페이스에 대한 정보 출력
up/down: 인터페이스를 활성화, 비활성화
netmask 주소: 넷마스크 주소를 설정
broadcast 주소: 브로드캐스트 주소를 설정
ifconfig ens33
ifconfig ens33 192.168.1.2 netmask 255.255.255.0. broadcast 192.168.1.255
우분투에서 ifconfig 명령을 사용하려면 net-tools 패키지를 설치
sudo apt install net-tools
현재 설치된 인터페이스 설정 보기 ifconfig
route
기능 - 라우팅 테이블을 편집하고 출력
형식 - route [명령]
명령
add: 라우팅 경로나 기본 게이트웨이를 추가
del: 라우팅 경로나 기본 게이트웨이를 삭제
route
route add default gw 192.168.1.1 dev ens33
DNS 설정
DNS: 호스트명을 IP 주소로 바꾸는 역할을 수행
DNS 서버 지정하기
우분투는 17.04 버전부터 DNS를 관리하는 systemd-resolved 서비스를 도입
DNS 서버의 주소를 /etc/resolv.conf 파일에 저장
systemd-resolve
기능 - 서버에 질의하고 응답을 받음
형식 - systemd-resolve [옵션] [호스트명|IP 주소]
옵션 - --status: DNS 서버 정보를 출력
systemd-resolve www.daum.net
systemd-resolve --status
nslookup
기능 - DNS 서버와 대화식으로 질의하고 응답을 받음
형식 - nslookup [도메인명]
nslookup
nslookup www.daum.net
호스트 이름 설정
umane
기능 - 시스템 정보를 출력
형식 - uname [옵션]
옵션
-m: 하드웨어 종류를 출력
-n: 호스트 이름을 출력
-r: 운영체제의 릴리즈 정보를 출력
-s: 운영체제의 이름을 출력
-v: 운영체제의 버전을 출력
-a: 위의 모든 정보를 출력
uname -n
uname -a
hostname
기능 - 호스트 이름을 출력하거나 설정
형식 - hostname [호스트 이름]
hostname
hostname mail.han.server
hostnamectl
기능 - 호스트 이름을 검색하거나 설정
형식 - hostnamectl [옵션] [명령]
옵션
-h: 도움말을 출력
--version: 버전을 출력
명령
- status: 현재 호스트 이름과 관련 정보를 출력
- set-hostname 호스트명: 호스트명을 호스트 이름으로 설정
hostnamectl
hostnamectl status
hostnamectl set-hostname mail.han.server
리눅스에서 호스트 이름을 저장하는 파일은 /etc/hostname
네트워크 상태 확인
ping
기능 - 네트워크 장비에 신호를 보냄
형식 - ping [옵션] [목적지 주소]
옵션
-a: 통신이 되면 소리를 냄
-q: 테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력
-c 개수: 보낼 패킷 수를 지정
ping 192.168.1.1
ping -a www.naver.com
traceroute
기능 - 목적지까지 패킷이 거치는 경로를 출력
형식 - traceroute 목적지 주소
traceroute 192.168.0.1
traceroute www.naver.com
traceroute 명령 사용
sudo apt install inetutils-traceroute
중간 노드의 기관 확인: whois
정상으로 경로가 확인되지 않는 경우
네트워크가 연결되지 않는 구간은 *가 출력: 통신에 장애가 있거나 traceroute 명령을 거부 의미
netstat
기능 - 네트워크의 상태 정보를 출력
형식 - netstat [옵션]
옵션
-a: 모든 소켓 정보를 출력
-r: 라우팅 정보를 출력
-n: 호스트명 대신 IP 주소로 출력
-i: 모든 네트워크 인터페이스 정보 출력
-s: 프로토콜별로 네트워크 통계 정보 출력
-p: 해당 소켓과 관련된 프로세스의 이름과 PID 출력
netstat -rn
netstat -s
arp
기능 - ARP 캐시 정보를 관리
형식 - arp [IP 주소]
arp
arp 192.168.1.1
옵션 없이 사용할 경우: 현재 같은 네트워크에 연결되어 있는 시스템의 MAC 주소와 IP 주소를 출력
tcpdump
기능 - 네트워크 상의 트래픽을 덤프
형식 - tcpdump [옵션]
옵션
-c 패킷 수 | 지정한 패킷 수만큼 덤프 받고 종료 | -i 인터페이스명 | 특정 인터페이스를 지정 |
-n | IP 주소를 호스트명으로 바꾸지 않음 | -q | 정보를 간단한 형태로 출력 |
-X | 패킷의 내용을 16진수와 ASCII로 출력 | -w 파일명 | 덤프한 내용을 지정한 파일에 저장 |
-r 파일명 | 덤파를 저장한 파일에서 읽어옴 | host 호스트명 또는 주소 | 지정한 호스트가 받거나 보낸 패킷만 덤프 |
tcp port 번호 | 지정한 포트 번호 패킷만 덤프 | ip | IP 패킷만 덤프 |
tcpdump
tcpdump -i eth0
tcpdump -i eth0 -w DUMP .out
tcpdump tcp port 22 and host 192.168.0.7
옵션 없이 사용하기: 현재 시스템에서 주고받는 모든 패킷을 캡처하여 패킷의 헤더 부분 정보를 출력
'전공 > 리눅스시스템관리' 카테고리의 다른 글
[Linux] 리눅스 사용자 관리 (0) | 2023.06.12 |
---|---|
[Linux] 리눅스 소프트웨어 관리 (0) | 2023.06.12 |
[Linux] 리눅스 부팅 프로세스 (0) | 2023.06.12 |
[Linux] 리눅스 파일시스템과 디스크관리 (1) | 2023.06.12 |
[Linux] 리눅스 프로세스 관리 (0) | 2023.04.20 |