현대 오토에버 SW 스쿨 - 클라우드/네트워크
[네트워크] - 네트워크의 기본
yongyongMom
2024. 9. 6. 17:47
SMALL
Protocol
- 통신을 수행하는 규칙 또는 규약
OSI 7 계층
- 프로토콜이 아니며 네트워크 통신 계층을 7개의 계층으로 나누는 개념적 프레임워크
이점
- 복잡한 시스템에 대한 이해 공유
- 엔지니어가 작업을 이해하기 쉬워서 빠른 연구 및 개발
계층
- Physical Layer (물리 계층)
물리적 통신 매체와 매체를 통해 전송하는 기술
케이블이나 Bluetooth, NFC, 데이터 전송 속도가 포함된 영역
- Datalink Layer
물리 계층이 이미 존재하는 네트워크를 통해서 두 시스템을 연결하는데 사용하는 기술
- Network Layer - 장치
분산된 네트워크 하나 또는 연결된 여러 네트워크의 노드 또는 머신을 통한 라우팅, 전달 및 주소 지정 등과 같은 기술
- Transport Layer
데이터 전송, 순서 제어나 오류 제어 등을 수행합니다.
데이터를 보내는 방식
:: 1. 한 번에 보내는 방법
:: 2. packet 이라는 일정한 크기로 보내는 방법이 있습니다.
완전히 소프트웨어적인 계층의 시작
- session Layer
동기화
- Presentation Layer
데이터 표현, 압축, 암호화
- Application Layer
사용자가 사용하는 특정 유형의 애플리케이션의 통신 방법으로 https, ftp, smtp 등이 있습니다.
MAC (Media Access Control Address)
- 데이터 링크 계층에서 사용하는 주소 체계
- 하드웨어에 장착된 네트워크 인터페이스 카드(NIC)의 고유한 이름
- 모든 하드웨어에는 일련번호가 있습니다.
- wifi - ?
IP 주소
- 인터넷을 사용하는 네트워크에서 컴퓨터를 구분하기 위한 주소체계
IPv4
- 32 비트 주소체계를 갖고 있습니다.
- 사용을 할 때는 8비트씩 묶어서 10진수 형태로 사용합니다.
- 구분자로 .(점) 을 사용합니다.
- 0.0.0.0 ~ 255.255.255.255 :: 실제 사용 가능한 주소 범위
- 00000000 00000000 00000000 00000000 => 0.0.0.0
클래스
- A, B, C 는 일반 기업이나 단체가 사용 가능합니다.
- D는 Multicast
- E는 예비용
A class :: 맨앞이 0으로 시작하는 것, 기업에게 부여
:: 0.0.0.0 ~ 127.255.255.255
B class :: 앞의 두개가 10 으로 시작하는 것
:: 128.0.0.0 ~ 192.255.255.255
C class :: 앞의 세개가 110으로 시작하는 것, 일반적으로 집에서 사용하는 IP
:: 192.0.0.0 ~ 223.255.255.255
D class :: 앞의 네개가 1110 으로 시작하는 것
:: 224.0.0.0 ~ 239.255.255.255
E class :: 앞의 네개가 1111 으로 시작하는 것
:: 240.0.0.0 ~ 255.255.255.255
- 통신 분류 방식 중 하나
unicast :: 일대일로 통신
multicast :: 그룹과의 통신
broadcast :: 전체 통신
anycast :: 아무나 하나
IPv6
- 128 비트 주소 체계
- IPv4의 주소 고갈 문제를 해결하기 위해서 등장한 방식
- 현재는 IPv6 를 사용하고 있음
- IPv4 주소를 설정하면 네트워크 장비를 통해서 외부로 전송이 될 때 IPv6 로 변환되어 전송
- 16비트씩 나누어서 16진수로 표기하고 구분자는 :: (콜론)
- 하나의 블럭에서 모두 동일한 값이면 하나로 줄여서 쓰는 것이 가능
- 모두 0인 블럭은 생략도 가능
- 0000::0000::0000::0000::0000::0000::0000::0000
- FFFF::FFFF::FFFF::FFFF::FFFF::FFFF::FFFF::FFFF
Loopback
- 자기 자신을 가리키기 위해 만들어진 예약된 IP 주소
- 현재 조작 중인 컴퓨터를 네트워크 연결 대상으로 인지하기 위해서 만들어낸 IP 주소
- IPv4 -> 127.0.0.1 ~ 127.255.255.255 // IPv6 -> ::1 (0::0::0::0::0::0::0::1)
- localhost :: 운영체제 내부의 설정 파일에 localhost-127.0.0.1 이라고 작성했기 때문에 현재 컴퓨터 접근
- 리눅스에서는 /etc/host 파일에 연결되어 있음
private IP (사설 IP)
대역
- 내부 네트워크 구성을 위해서 사용하는 IP
- 이 IP 를 가지고는 인터넷에 직접 연결할 수 없습니다.
- 최근에는 보안 그리고 IP 를 유동적으로 할당하기 위해서 사용합니다.
A class :: 10.0.0.0 ~ 10.255.255.255
B class :: 172.16.0.0 ~ 172.31.255.255
C class :: 192.168.0.0 ~ 192.168.255.255
유동 IP 와 고정 IP
- 유동 IP : IP 가 변하는 것
- 고정 IP : IP 가 고정되는 것
동일한 네트워크
- 통신이 가능한 대역의 IP 를 가지고 있어야 합니다.
서브넷 마스크
- 네트워크 규모를 나타내기 위한 마스크, 스위치의 역할과 유사함 (네트워크 분할)
- IP 주소와 마찬가지로 32비트로 표현
- 앞에서부터 연속된 1까지의 IP 가 같으면 동일 네트워크로 간주 -> 라우터를 통해 외부로 나가지 않고 통신이 가능하도록 해주는 역할
ex)
ip -> 0.0.0.7 // subnet mask -> 255.255.0.0
ip -> 00000000 00000000 00000000 00000111
subnet mask - > 11111111 11111111 00000000 00000000
=> 0.0.x.x 는 모두 동일한 네트워크의 컴퓨터로 간주
- 동일 네트워크 대역을 표현할 때 서브넷 마스크를 이용하기도 하지만 비트 수를 이용하기도 합니다.
ex)
IP 주소 뒤에 /를 하고 일치해야 하는 비트 수를 적어 줍니다.
192.168.202.207 && 255.255.255.0 => 192.168.202.207/24
컴퓨터 -> subnet mask // 네트워크 설계 -> 일치해야하는 비트 수를 뒤에 적는 CIDR 방식 사용
- 네트워크 대역으로 IP 주소를 표현하면 일치해야 하는 부분을 네트워크라고 하고 일치하지 않아도 되는 부분을 호스트라고 합니다.
:: 192.168.202 는 네트워크 207은 호스트 - 클라우드 시스템을 직접 구축해야 하는 상황에서는 IP를 할당하는 로직을 구현해야 합니다.
- 하나의 네트워크 대역에서 할당할 수 있는 주소의 개수 = 주소의 개수 - 2 (시작 번호 & 끝 번호 사용 불가능)
:: 시작 번호 : 외부에서 해당 네트워크를 찾아오기 위한 대표 주소
:: 마지막 번호 : broadcast 를 위한 주소, broadcast 는 전체와 통신을 하는 것 - Gateway : 외부 네트워크와 통신하기 위해서 내부 네트워크에서 접근해야 하는 곳
:: 네트워크 장비와 연결되는 지점으로 해당 네트워크를 나가야 하는지 아닌지를 확인해주는 곳으로 주소를 부여, 일반적으로 첫번째 주소 부여 - 허브의 데이터 전송 방법 : broadcast 사용, 허브를 통해서 데이터를 전송할 때 송신자 -> 허브 -> 모든 네트워크 전송 + 수신자 정보 -> 모든 컴퓨터는 받은 후 수신자 정보 불일치 시 폐기
- 대역
A class : 255.0.0.0
B class : 255.255.0.0
C class : 255.255.255.0
네트워크 수 계산
- 기업 내부에 네트워크 수를 계산하는 쉬운 방법은 라우터를 기반으로 하는 것입니다.
- 라우터 장비만 네트워크를 분할 할 수 있으며 라우터 장비와 연결된 하나의 회선은 별도의 네트워크입니다.
- 네트워크에 따라 IP 주소 대역이 서로 달라져야 합니다.
- 인프라를 직접 구성할 때 필요한 작업입니다.
- 라우터와 스위치의 구분
라우터 : 네트워크를 구분할 수 있음
스위치 : 네트워크를 분류할 수 없음
최근 스위치의 기능을 라우터까지 확장해서 출시를 하며 L3 Switch, L4 Switch 등으로 불립니다. L3 가 라우터를 의미합니다.
스위치는 가상 집단을 나누어서 허브와 연결하여 사용하여도 broadcast 하는 집단의 크기가 작아서 속도가 빨라집니다.
Routing 과 Switching
Routing
- 3 계층의 주소를 보고 목적지로 전송하기 위한 경로를 설정하는 것이 라우팅
- IP 주소 :: 서브넷 마스크를 이용해서 주소를 계층으로 만들어 놓은 것입니다.
- MAC Address 는 주소에 계층이 없으며 계층이 없는 주소를 Flat Address 라고 합니다.
- 라우팅 테이블 :: 경로를 찾아서 해당 경로를 기록해 놓는 테이블
- 이후 동일한 경로를 찾는 경우 라우팅을 이용해 찾아가고 라우팅 테이블은 주기적으로 업데이트를 합니다.
Ethernet Switching
- 하나의 물리적인 네트워크 안에서 다시 네트워크를 분할하고자 하는 경우 사용
- 구축 :: 2중화를 해서 구축하는 것이 좋습니다.
:: 2중화 :: 장애를 대비하기 위함, 부하를 분산하기 위함 => Load Balancing - segment ::논리적으로 분할된 네트워크
스위치 :: segment 를 분할하기 위한 장비
VLAN :: 포트 별로 분할한 세그먼트, 즉 분할한 네트워크를 말함
=> Router 와 Switch 를 적절히 배치해서 트래픽을 분산해야 하고 이를 기반으로 bandwidth 를 산정해서 네트워크 구성을 해야합니다.
응용 계층 프로토콜
- 실제 서비스와 관련된 프로토콜 :: 인간이 사용하는 서비스와 관련된 프로토콜
인터넷 관련된 프로토콜
TCP 와 UDP
- 4계층 프로토콜
- 전송 방식에 관련된 프로토콜
- TCP == stream
>> 연결형 프로토콜
>> 신뢰성이 높음
>> HTTP, HTTPS
- UDP == datagram
>> 비연결형 프로토콜
>> 전송 속도가 빠름
>> Datagram 이라고도 함
>> DNS, NTMP 등
>> Apple 의 APNS 와 Google 의 FCM
>> 중요한 메시지 전송에는 사용하면 안됨
목적지에서 데이터를 받았는지 여부를 확인할 방법이 없음 ex) 카카오톡, 알림 서비스
VLAN 과 TRUNC
- 하나의 물리적인 네트워크를 논리적으로 분할하는 것
- IP 주소와 서브넷 마스크를 이용해서 분할 - 장비 없이도 가능
- 논리적으로 분할을 하게되면 내부 통신으로 접근할 수 없습니다.
- 스위치와 같은 장비로 분할을 하면 트래픽도 전달이 안됩니다.
- cloud 환경에서 여러 컴퓨터를 묶고자 할 때 사용하는 개념입니다.
- 웹 서버, 데이터베이스 서버, API 서버, Application Server 등을 하나의 VLAN 으로 묶어 통신 가능
- 외부로 노출시켜야 하는 컴퓨터나 public 설정을 해서 보안을 강화하고 트래픽을 최소로 사용하도록 설계를 할 수 있습니다.
NAT
- 내부 네트워크 -> 외부 네트워크로 접속을 하기 위해서는 Private 가 아닌 IP 주소가 필요
- private IP 주소를 외부의 공인 IP 주소로 변환해주는 서비스
- 적은 IP 주소를 가지고 더 많은 컴퓨터에게 인터넷을 사용할 수 있도록 하기 위해서 사용합니다.
- 외부에서 내부 컴퓨터에 직접 접근할 수 없도록 IP 주소를 숨기기 위한 목적으로 사용합니다.
- Private IP :: 내부 네트워크에서 컴퓨터를 구분하기 위한 IP, 외부의 IP 와 중복되어도 가능함
>> 10.0.0. ~ 10.255.255.0
>> 172.16.0.0 ~ 172.31.255.255
>> 192.168.0.0 ~ 192.168.0.255
- MAC Address :: NIC (Network Interface Card) 의 구별자
- 네트워크는 사용자가 설정한 이름으로 구분을 할 수 없어 MAC Address 를 사용합니다. (HUB 가 구별하는 경우)
- 계층 :: 분류를 하는데 편리해짐, 재사용성이 좋아짐 => OSI 7 계층 또한 필요에 따라 계층을 교체할 수 있음
- 하나의 회선(IP)을 분할해서 사용할 수 있음 (=포트포워딩)
- 보안 :: 기업에서 많이 사용하는 이유, 외부에서 내부 컴퓨터에 직접 접근할 수 없습니다.
Dynamic NAT
- 동적으로 IP 주소를 할당하는 방식입니다.
- 네트워크 장비가 몇 개의 IP pool 을 가지고 내부 네트워크에서 외부 네트워크에 진입할 때 동적으로 변환을 시키는 방식입니다.
- 내부 컴퓨터는 클라이언트용으로는 사용가능지만 고정IP를 갖는 서버용으로는 사용할 수 없습니다.
NAT Overload
- Dynamic NAT 만으로 Public IP 주소를 절감하는 효과는 미비합니다. 따라서 NAT Overload
- 컴퓨터 애플리케이션 :: 특정 컴퓨터의 서비스를 이용할 목적으로 만들어집니다.
:: 컴퓨터에 접속한 후 자신이 원하는 프로세스 또는 서비스에게 요청을 전송합니다. - PID (프로세스 ID) :: 컴퓨터에서는 프로세스를 구분하기 위해 사용합니다.
:: 외부 컴퓨터에서 접속 시 PID 가 아닌 port 의 개념을 이용해서 원하는 서비스를 요청합니다. - NAT 오버로드, PAT (Port Address Translate) :: 네트워크 장비에서 내부 네트워크의 컴퓨터를 구별할 떄 IP 만 사용하는 것이 아니고 포트까지 이용해서 구별 -> 훨씬 많은 컴퓨터를 내부 네트워크에서 사용하는 것이 가능해짐
- port : 0번, 65535번 는 사용 불가능, 1024번까지는 알려진 포트로 특정 프로토콜의 기본 포트
telnet : 23번 포트
ssh : 22번 포트
http : 80번 포트
https : 443번 포트
mysql : 3306번 포트
mongoDB : 27017번 포트
NAT 를 사용하는 환경에서 NAT 내부의 컴퓨터를 서버로 사용하고자 하는 경우
- (Static NAT) :: 네트워크 장비 -> 외부 IP 와 Port 에 내부 장비의 IP 와 Port 가 고정되어서 변환이 되도록 해주면 됩니다.
- 외부 IP 를 이용해서 내부 컴퓨터에 접속이 가능합니다.
- Virtual Box -> 각각의 VM 을 내부 컴퓨터로 인식
- 리눅스 & 윈도우즈는 외부에서 내부 접근을 막아놓음. 동일한 네트워크에서 접속이 가능함.
Access List
- 라우터 또는 컴퓨터를 통과하는 패킷 중 불필요하거나 나쁜 의도를 가진 패킷을 차단하기 위해서 작성합니다.
- TPC, UDP 로 적기도 하고 각각의 프로토콜을 적는 경우도 있습니다.
- 종류
Standard Access : 패킷의 허용 및 차단 기준이 출발지 IP 주소
Extended Access : 패킷의 허용 및 차단 기준이 출발지 IP 주소, 목적지 IP 주소, 프로토콜, 포트 번호
- 허용 여부
permit :: 혀용
deny :: 거부
permit all || deny all :: 운영 체제 내부에서는 port 번호만 기재하여 방화벽을 해제하고 사용합니다. 실무에서 많지 않습니다.
permit any || deny any :: 전체를 허용하거나 거부하는 것이 가능합니다.
게임 서버 :: 중국 서버만 따로 만들어 permit all, deny all 을 사용합니다.
작성법
- Standard Access List
- 형식 :: permit 나 deny IP주소 와일드카드마스크
:: 서브넷 마스크와 반대 - 반드시 일치하는 것이 0, 일치하지 않아도 되는 것이 1 - ex) 11.1.1.0/24 네트워크를 허용 => permit 11.1.1.0 0.0.0.255
- 네트워크 장비 설정 또는 컴퓨터에 설정 또는 어플리케이션에 설정
:: 일반적으로 네트워크 장비를 설정하기 어려워 소프트웨어적 설정을 진행합니다. - 여러줄로 작성 가능하며 위에서부터 순차적으로 적용됩니다.
- 위줄이 작은 규모 ---> 아래쪽이 작은 규모 로 작성해야합니다.
-- 11.1.1.0/24 네트워크에서 11.1.1.1 에 해당하는 컴퓨터만 허용하고 나머지는 모두 거부
-- 이외 네트워크는 모두 허용
permit 11.1.1.1 0.0.0.0 (0.0.0.0 대신 permit 다음에 host 라고 하면 하나의 컴퓨터)
deny 11.1.1.0 0.0.0.255
permit any
- extended Access List
- 형식 : permit 이나 deny TCP | UDP | IP 소스 네트워크 목적지 네트워크 [port 조건]
- permit ip any any :: 모든 트래픽 허용
FTP --> 20/21
Telnet --> 23
SMTP(메일) --> 25
DNS (Domain Name Service) --> 53
HTTP (Hyper Text Translate port) --> 80
-- 11.1.1.0/24 네트워크에서 11.1.2.0/24 네트워크로 향하는 20번 포트만 거부
deny tcp 11.1.1.0 0.0.0.255 11.1.2.0 0.0.0.255 eq20
-- FTP :: 파일 전송 프로토콜로 TCP 서비스이며 포트번호는 20번과 21번 사용
-- 11.1.1.0/24 네트워크가 파일 전송하는 것을 금지
-- deny 이후 permit 조건 추가 주의
deny tcp 11.1.1.0 0.0.0.255 any eq20/21
permit ip any any
deny tcp 11.1.1.0 0.0.0.255 0.0.0.0 255.255.255.255 eq20
deny tcp 11.1.1.0 0.0.0.255 0.0.0.0 255.255.255.255 eq21
permit ip any any
이미지 참조
https://velog.io/@younghwan/NAT
반응형
LIST