자격증/리눅스마스터 1급
리눅스 마스터 1급_1과목_CH3.네트워크의 이해
Leo.K
2023. 4. 11. 15:35
728x90
CH3.네트워크의 이해
1. 네트워크 기초
1-1. OSI 7계층
※ OSI 7계층 요약
계층 | 특징 | 데이터 단위 | 프로토콜 | |
1 | 물리 (Physical) |
물리적 연결 설정 | 비트 스트림 (Bit Stream) |
|
2 | 데이터링크 (Data Link) |
오류제어, MAC 주소 사용 | 프레임 (Frame) |
ppp |
3 | 네트워크 (Network) |
라우팅 | 패킷 (Packet) |
IP, ICMP, IGMP, ARP |
4 | 전송 (Transport) |
데이터 전송 보장 흐름 제어 |
세그먼트 (Segment) |
TCP, UDP |
5 | 세션 (Session) |
동기화, 세션 연결/관리/종료 | 메시지 (Message) |
전송 모드 결정 |
6 | 표현 (Presentation) |
압축, 암호화 | ASCII | |
7 | 응용 (Applicationw) |
각종 응용 서비스 제공 | FTP, SMTP, HTTP |
1-2. 네트워크 장비
※ 허브(Hub)
- 물리 계층에서 동작하는 장비
- 더미 허브(Dummy Hub)
- 일반적인 허브
- 허브로 들어온 데이터를 모든 포트로 뿌려주는 역할
- 충돌이 발생할 확률이 높고, 연결된 노드가 많을수록 속도가 저하된다.
- 스위칭 허브(Switching Hub)
- 허브에 스위칭 개념을 동비한 장비
- 허브로 들어온 데이터를 해당 목적디에 해당하는 포트로 전송한다.
- MAC주소를 이용하기 때문에 2계층 장비로 분류되고 충돌 도메인을 나누는 역할을 한다.
- 리피터 (Repeater)
- 약해진 신호를 수신하여 원래의 형태로 재생하고 증폭하는 장비
- 최근에는 모든 네트워크 장비에 기본적으로 들어가 있는 기능이다.
※ 브릿지(Bridge)
- 데이터 링크 계층인 MAC에서 동작하는 장비
- 네트워크를 확장시키고 통신을 격리시키기 위해 사용한다.
- 충돌 도메인을 나누는 역할을 한다.
※ 라우터 (Router)
- 3계층 장비로 물리 / 데이터 링크 / 네트워크 계층에서 동작한다.
- 라우터는 각 인퍼페이스마다 MAC주소와 IP 주소를 갖는다.
- 브로드캐스트 도메인을 나누는 역할을 한다.
※ 게이트웨이(Gateway)
- 서로 다른 프로토콜을 사용하는 네트워크를 상호 접속하기 위한 장비
- 4계층 장비로 분류된다.
1-3. 이더넷 / LAN의 기본 이해
※ 토폴로지에 따른 분류
- 그물형(Mesh)
- 모든 장치들끼리 Point-to-Point 연결을 갖는다. 많은 연결 수가 필요하다.
- 통신량 문제 해결, 안정성 / 보안성이 높다
- 성형(Star)
- 각 장치들은 허브라고 불리는 중앙제어장치와 Point-to-Point 연결을 갖는다.
- 그물형보다 비용은 저렴하고, 설치와 재구성이 용이하다.
- 버스형(Bus)
- 하나의 긴 케이블이 네트워크 상의 모든 장치를 연결하는 형태의 토폴로지다. 적은 양의 연결
- 설치가 용이하지만 재구성과 결합, 분리가 어렵다
- 링형(Ring)
- 자신의 양쪽에 있는 장치와 Point-to-Point 연결을 갖고, 각 장치는 중계기를 포함한다.
- 비교적 설치와 재구성이 용이하지만 장치 추가가 어렵고, 단방향 전송의 단점을 갖는다.
※ 규모에 따른 분류
- LAN (Local Area Network)
- 근거리 통신망, 단일 건물 같은 소규모 지역을 묶는 네트워크
- MAN (Metropolitan Area Network)
- LAN보다 크고, WAN 보자는 작은 규모의 네트워크
- 하나의 도시 정도를 묶는 네트워크
- WAN (Wide Area Network)
- 광역 통신망
- 하나의 국가 정도를 묶는 네트워크
1-4. TCP / IP 및 네트워크 프로토콜의 이해
※ 프로토콜과 포트
- 프로토콜
- 컴퓨터 간의 통신을 위한 규격
- /etc/protocols에서 주요 프로토콜 번호를 확인할 수 있다.
- 포트 번호
- 포트 : TCP와 UDP에서 어플리케이션의 상호 통신을 위해 사용한다.
- OSI 7계층의 4계층에서 사용되는 논리적인 주소이다.
- 0~65535번의 범위(2^16) 중에서 0~1023번 까지는 특정 프로토콜이 지정되어 있으며, 잘 알려진 포트라고 한다.
- /etc/services에서 주요 포트 번호를 확인할 수 있다.
※ Well Known Port
Protocol | Port | 설명 |
FTP (File Transfer Protocol) |
TCP / 20 TCP / 21 |
데이터 포트 (20), 제어 포트 (21) |
SSH (Secure Shell) |
TCP / 22 | 암호화된 원격 터미널 접속 프로토콜 |
SFTP (Secure File Transfer Protocol) |
TCP / 22 | SSH를 이용한 암호화된 FTP 프로토콜 |
TELNET | TCP / 23 | 암호화를 하지 않는 원격 터미널 접속 프로토콜 |
SMTP (Simple Mail Transfer Protocol) |
TCP / 25 | 메일 전송 프로토콜 |
HTTP | TCP / 80 | Hyper Text Transfer Protocol |
POP3 (Post Office Protocol 3) |
TCP / 110 | 메일 수신용 프로토콜 |
IMAP4 (Internet Mail Access Protocol) |
TCP / 143 | 메일 수신용 프로토콜 |
SMB (Server Messaging Block) |
TCP / 445 | 서버 메시지 블록 프로토콜 |
DNS (Domain Name System) |
TCP / 53 UDP / 53 |
도메인에 대한 호스트 정보 제공하는 프로토콜 |
DHCP (Dynamic Host Configuration Protocol) |
UDP / 67 UDP / 68 |
동적 호스트 네트워크 설정 프로토콜 서버 (67) / 클라이언트 (68) |
TFTP (Trivial File Transfer Protocol) |
UDP / 69 | 단순 파일 송수신 프로토콜 |
NetBIOS | TCP / 135 ~ 139 UDP / 135 ~ 139 |
별개의 컴퓨터 상에 있는 어플리케이션들이 LAN에서 통신할 수 있게 해주는 프로그램 |
SNMP (Simple Network Management Protocol) |
UDP / 161 UDP / 162 |
네트워크 관리 프로토콜 서버 (161) / 클라이언트 (162) |
※ IP Internet Protocol
- IP 주소 : OSI 7계층의 3계층에서 사용되는 논리적인 주소
- 32bits의 길이를 가지며, 네트워크 ID와 호스트 ID로 구성되어 있다.
- 클래스(class)
8bits | 8bits | 8bits | 8bits | ||
Class A | Network | Host | 큰 규모의 네트워크에서 사용 | ||
Class B | Network | Host | 중간 규모의 네트워크에서 사용 | ||
Class C | Network | Host | 작은 규모의 네트워크에서 사용 | ||
Class D | Multicast Address | 멀티캐스트용으로 사용되는 주소 | |||
Class E | Reserved Address | 추후 사용을 위해 예약된 주소 |
- 예약된 주소
- 0.0.0.0/32 : 현재 네트워크를 뜻하는 주소로, 자신의 IP 주소를 모를 때 사용
- 10.0.0.0/8 : A 클래스의 사설 주소
- 127.0.0.0/8 : 루프백 주소
- 172.16.0.0/12 : B 클래스의 사설 주소
- 192.168.0.0/16 : C 클래스의 사설 주소
- 255.255.255.255/32 : 브로드 캐스트 주소, 같은 사설 네트워크 상의 모든 장치에게 패킷을 전송할 때 사용
- 서브네팅
- IPv4 주소의 고갈로 인해 하나의 네트워크를 여러 개의 서브 네트워크로 나누어 낭비를 막기위한 방법
- 서브넷 마스크 : IP 주소를 네트워크 주소와 호스트 주소로 구분하기 위한 주소
- IPv6
- IPv4 주소의 고갈로 더 큰 주소 길이를 갖는 IPv6 주소 체계가 등장
- 크게 확장된 주소 공간, 향상된 서비스, 보안성 증가
구분 | IPv4 | IPv6 |
주소 길이 | 32bits (4개의 필드) | 128bits (8개의 필드) |
주소할당 방식 | 클래스 단위 | 네트워크 규모 |
브로드캐스트 주소 | 있음 | 없음 |
헤더 크기 | 가변 | 고정 |
Qos 제공 | 미흡 | 제공 |
보안 | IPSec 프로토콜 별도로 설치 | IPSec 자체 지원 |
Plug&Play | 불가(DHCP 이용 가능) | 가능 |
※ ARP(Address Resolution Protocol) 프로토콜
- IP 주소를 이용해 해당 MAC 주소를 요청하는 프로토콜
- 보통은 3계층 프로토콜로 분류된다. (2계층으로도 분류되는 경우도 있다)
- RARP : MAC 주소를 이용해 IP주소를 요청하는 프로토콜
※ TCP(Transmission Control Protocol) 프로토콜
- 신뢰적이고 연결지향적인 프로토콜
- 전이중(full-duplex) 통신 : 동시에 양방향 전달 가능
- 신뢰할 수 있는 연결 설정 (3-way handshake)
- 자세한 내용은 여기를 참고하자.
2. 네트워크 설정
2-1. 환경 설정
※ IP 주소 설정
- LAN 카드를 OS에 인식시킨 후에 IP를 설정해야 한다.
- ipconfig
- 형식 : #ipconfig [인터페이스 명][옵션]
- [-a] : 시스템의 전체 인터페이스에 대한 정보를 출력
- 옵션 없이 사용 시 현재 설치된 네트워크 인터페이스의 설정 내용대로 출력한다.
- IP 주소, 서브넷 마스크, 브로드캐스트 주소, MAC 주소, MTU, RX/TX 패킷 등의 정보를 알 수 있다.
- # ipconfig eth0 192.168.1.33 netmask 255.255.255.0 -> eth0 인터페이스에 IP, 넷마스크 설정
- # ipconfig eth0 up -> eth0 인터페이스 활성화
- ip
- [-addr] : 네트워크 인터페이스에 대한 정보를 출력 / 추가 / 삭제
- # ip addr show -> 인터페이스 정보 출력
- # ip addr add 192.168.1.33/24 dev eth0 -> eth0 인터페이스에 IP 설정
- # ip addr del 192.168.1.33/24 dev eht0 -> eth0 인터페이스에 설정된 ip 삭제
- [-route] : 라우팅 테이블 출력 / 정적 라우팅 추가 / 삭제
- # ip route show -> 라우팅 테이블 출력
- # ip route add 10.90.21.1/24 via 192.168.1.33 dev eth0 -> eth0 인터페이스에 대한 정적 라우팅 추가
- # ip route del 10.90.21.1/24 -> 정적 라우팅 삭제
- # ip route add default gateway 192.168.1.1 -> 디폴트 게이트 웨이 추가
- [-link] : 네트워크 인터페이스에 대한 상태 출력 / 관리
- # ip link show -> 인터페이스 상태 출력
- # ip link set eth0 up -> eth0 인터페이스 활성화
- [-addr] : 네트워크 인터페이스에 대한 정보를 출력 / 추가 / 삭제
2-2. 네트워크 관련 명령어
※ netstat 명령어
- 네트워크 상태 정보를 출력하는 명령어
- [-a] : 모든 소켓 정보를 출력
- [-r] : 라우팅 정보를 출력
- [-n] : 호스트 이름을 IP 주소로 출력
- [-l] : LISTEN 상태인 소켓 정보만 출력
- [-p] : 해당 소켓과 관련된 프로세스의 이름과 PID 출력
- [-t] : TCP 프로토콜만 출력
- [-u] : UDP 프로토콜만 출력
※ 네트워크 상태 진단 명령어
- traceroute : 목적지까지 패킷이 지나가는 경로를 출력한다.
- ping : 목적지에 ICMP 패킷(echo request)을 보내 상태를 점검한다.
※ DNS 관련 명령어
- nslookup : DNS 서버와 질의/응답하는 명령어
- dig : nslookup 명령어와 비슷하지만 더 간결하고 사용하기 편하다
- 관련 파일
- /etc/resolv.conf : 네임 서버가 정의되어 있는 파일
- /etc/host : 도메인/호스트명과 IP 주소 매핑 정보를 저장하고 있는 파일
※ route관련 명령어
- 라우팅 테이블을 출력/수정 하는 명령어
- 주요 옵션
- [-add] : 라우팅 경로나 디폴트 게이트웨이를 추가
- [-del] : 라우팅 경로나 디폴트 게이트웨이를 삭제
- [-n] : 호스트 이름을 IP 주소로 출력
- 옵션 없이 사용하는 경우 라우팅 테이블을 출력한다.
※ nmcli 관련 명령어
- 네트워크 관리자 서비스를 커맨드라인에서 수행하는 명령어
- 주요 옵션
- [-con show] : 네트워크의 모든 연결에 대한 정보를 출력한다
- [-con add] : 네트워크 연결 설정 추가
- # nmcli con add con-name ens33 ifname test-net type eth ip4 192.168.1.33/24 gw4 192.168.1.1
- [-con del] : 네트워크 연결 설정 제거
- [-con up] : 네트워크 연결 활성화
- [-con mod] : 네트워크 연결 설정 수정
728x90