CH.3 네트워크의 이해
* docker0
: 경량화된 서버 가상화 기술인 Docker를 사용할 경우 설정되는 네트워크 장치
1. 네트워크 기초
1-1. OSI 7계층
1-2. 네트워크 장비
1) 허브(Hub)
- 물리 계층에서 동작하는 장비
- 더미 허브(Dummy Hub)
: 일반적인 허브.
: 허브로 들어온 데이터를 모든 포트로 뿌려주는 역할
: 충돌이 발생할 확률이 높고, 연결된 노드가 많을수록 속도가 저하됨
- 스위칭 허브(Switching Hub)
: 허브에 스위칭 개념을 도입한 장비
: 허브로 들어온 데이터를 해당 목적지에 해당하는 포트로 전송함
: MAC 주소를 이용하기 때문에 2계층 장비로 분류되고 충돌 도메인을 나누는 역할을 함
- 리피터(Repeater)
: 물리
: 약해진 신호를 수신하여 원래의 형태로 재생하고 증폭하는 장비
: 최근에는 모든 네트워크 장비에 기본적으로 들어가 있는 기능
2) 브리지(Bridge)
- 데이터링크 계층인 MAC에서 동작하는 장비
- 네트워크를 확장시키고 통신을 격리시키기 위해 사용
- 충돌 도메인(Collision Domain)을 나누는 역할을 함
- 하나의 네트워크 내부에서 동작
3) 라우터(Router)
- 3계층 장비로 물리 / 데이터 링크 / 네트워크 계층에서 동작
- 라우터는 각 인터페이스마다 MAC 주소와 IP주소를 가짐
- 브로드캐스트 도메인(Broadcast Domain)을 나누는 역할을 함
- 각 네트워크끼리 연결하는 것
4) 게이트웨이(Gateway)
- 서로 다른 프로토콜을 사용하는 네트워크를 상호 접속하기 위한 장비
- 4계층 장비로 분류됨
1-3. 이더넷/LAN의 기본 이해
1) 토폴로지(topology)에 따른 분류
- 그물(mesh)형 토폴로지
: 모든 장치들끼리 점-대-점 링크를 가짐 → 많은 링크가 필요
: 통신량 문제 해결, 안전성/보안성 ↑
- 스타형(성형) 토폴로지
: 각 장치들은 허브라고 불리는 중앙제어장치와 점-대-점 링크를 가짐
: 그물형 토폴로지보다 비용 ↓, 설치/재구성 용이
- 버스형 토폴로지
: 하나의 긴 케이블이 네트워크 상의 모든 장치를 연결하는 형태 → 적은 양의 링크 수
: 설치가 용이하지만 재구성/결합 분리는 어려움
- 링형 토폴로지
: 자신의 양쪽에 있는 장치와 점-대-점 링크를 갖고, 각 장치는 중계기를 포함
: 비교적 설치/재구성이 용이하지만 장치 추가가 어렵고 단방향 전송의 단점을 가짐
2) 규모에 따른 분류
- LAN(Local Area Network)
: 근거리 통신망. 단일 건물 같은 소규모 지역을 묶는 네트워크
- MAN(Metropolitan Area network)
: LAN보다 크고 WAN보다는 작은 규모의 네트워크
: 하나의 도시 정도를 묶는 네트워크
- WAN(Wide Area Network)
: 광역 통신망
: 하나의 국가 정도를 묶는 네트워크
1-4. TCP/IP 및 네트워크 프로토콜의 이해
1) 프로토콜(Protocol)과 포트(Port)
- 프로토콜
: 컴퓨터 간의 통신을 위한 규격
: /etc/protocols에서 주요 프로토콜 번호를 확인할 수 있음
: 대표적인 프로토콜의 제정 기관 : ISO, ANSI, ITU-T
: 프로토콜의 기능 : 흐름제어, 오류제어, 동기화, 캡슐화 등
: 구문(Syntax), 의미(Semantics), 순서(Timing)으로 구성되어 있음
: TCP/IP의 시초는 ARPANET이 맞으나, IETF(인터넷 표준화기구)에서 제정하고 지속적인 기술개발을 함
- 포트 번호
: 포트 : TCP와 UDP에서 어플리케이션의 상호 통신을 사용
: OSI 7계층의 4계층(전송계층)에서 사용되는 논리적인 주소
: 0~65535번의 범위(2^16) 중에서 0~1023번까지는 특정 프로토콜이 지정되어 있으며, 잘 알려진 포트(well-known port)라고 함
: /etc/services에서 주요 포트 번호를 확인할 수 있음
- 주요 포트 번호
2) IP(Internet Protocol)
- IP 주소 : OSI 7계층의 3계층(네트워크 계층)에서 사용되는 논리적인 주소
- 32bits의 길이를 가지며, 네트워크 ID와 호스트 ID로 구성되어 있음
- 클래스(Class)
- 예약된 주소
: 0.0.0.0/32 : 현재 네트워크를 뜻하는 주소로, 자신의 IP 주소를 모를 때 사용
: 10.0.0.0/8 : A 클래스의 사설 주소
: 127.0.0.0/8 : 루프백(loopback) 주소
: 172.16.0.0/12 : B 클래스의 사설 주소
: 192.168.0.0/16 : C 클래스의 사설 주소
: 255.255.255.255/32 : 브로드캐스트 주소. 같은 네트워크 상의 모든 장치에게 패킷을 전송할 때 사용
- 서브네팅(Subnetting)
: IPv4 주소의 고갈로 인해 하나의 네트워크를 여러 개의 서브 네트워크로 나누어 낭비를 막기위한 방법
: 서브넷 마스크(Subnet mask) : IP 주소를 네트워크 주소와 호스트 주소로 구분하기 위한 주소
- IPv6
: IPv4 주소의 고갈로 더 큰 주소 길이를 갖는 IPv6 주소 체계가 등장
: 크게 확장된 주소 공간, 향상된 서비스, 보안성 ↑
: IPv4 vs IPv6
3) ARP 프로토콜
- IP 주소를 이용해 해당 MAC 주소를 요청하는 프로토콜
- 보통은 3계층 프로토콜로 분류된다. (2계층으로도 분류되는 경우도 있음)
- RARP : MAC 주소를 이용해 IP 주소를 요청하는 프로토콜
4) TCP(Transmission Control Protocol)
- 신뢰적이고 연결지향적인 프로토콜
- 전이중(full-duplex) 통신 : 동시에 양방향 전달 가능
- 연결 설정 과정(3-way Handshaking)
- 연결 종료 과정(4-way handshaking)
* 3 Way-Handshake
- TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정하는 과정
- ESTABLISHED
: 3 Way-Handshaking이 완료된 후 서버와 클라이언트가 서로 연결된 상태
- LISTENING
: 서버에서 클라이언트로 들어오는 패킷을 위해 소켓을 열고 기다리는 상태
- SYS_SENT
: 로컬 시스템의 클라이언트 애플리케이션이 원격 호스트에 연결을 요청하는 상태
- SYN_RECEIVED
: 원격 호스트가 종료되고 소켓도 닫힌 상태에서 마지막 ACK 패킷을 기다리는 상태
* ss : ssh로 접속한 호스트의 IP 주소를 확인할 때 사용하는 명령어
* mii-tool : 네트워크 인터페이스 연결 상태와 속도를 확인할 수 있고, 강제로 포트 속도를 변경할 수 있음
* ethtool : NIC(네트워크 인터페이스 컨트롤러) 즉 인터넷 선을 꽂는 장치 드라이버의 정보를 표시하고 일부 기능 조정이 가능한 명령어
* ICMP : 네트워크 제어를 위한 각종 메시지가 규정되어 있으며, ping(접속 가능 여부 확인)과 traceroute(경로추적)에 활용됨
해당 블로그를 참고하여 정리했습니다.
https://bangu4.tistory.com/139
'자격증 & 공부 > 리눅스마스터 1급' 카테고리의 다른 글
[리눅스마스터1급 - 1차] 2과목 - 4-2. 파일시스템 관리 (1) | 2024.06.13 |
---|---|
[리눅스마스터1급 - 1차] 2과목 - 4-1. 사용자 관리 (0) | 2024.06.13 |
[리눅스마스터1급 - 1차] 1과목 - 3-2. 네트워크의 이해 (0) | 2024.06.13 |
[리눅스마스터1급 - 1차] 1과목 - 2. 리눅스 시스템의 이해 (1) | 2024.06.13 |
[리눅스마스터1급 - 1차] 1과목 - 1. 리눅스의 개요 (0) | 2024.06.13 |