AWS CloudSchool (1)

jw·2024년 4월 6일

공부

목록 보기
8/13

AWS 한국 본사에서 진행했던 OT 이후,
3/26부터 약 2주간 수업을 들었다.

Cisco Packet TracerGNS 프로그램을 사용하여 네트워크 기본 실습을 진행했으며, VMware를 설치하여 리눅스 환경 실습을 진행하고있다. 주로 기본기 위주로 배우고있다.

전 글에서도 밝혔듯, 수업의 모든 내용을 기록하지는 않을 것 이다.
나중에 따로 보고싶거나, 내가 부족하다고 생각하는 부분이나 중요하다고 생각하는 내용들만 추려서 올릴 예정이다. 오늘 기록도 그러하다.

필기한 내용 중 부분 부분만 잘라서 올릴 것 이기 때문에...
글이 엄청 매우 굉장히 두서가 없을 것을 미리 예고한다... 이걸 보는 사람이 있을지는 모르겠다만...

(그치만 내 공부 기록이니까.. 나만 알아보면 뭐...)


네트워크

OSI 7 layer

OSI는 Open System Interconnection의 약자로, inter는 무언가를 가로지르는 것 의미.
ex) Internet -> net을 가로지르는 것 <-> Intranet

PDU (Protocol Data Unit) - 상위 계층의 PDU는 하위 계층의 데이터가 됨.

결국 '통신을 어떻게 할 것 인가?' 하는 규약을 정해둔 것이 OSI 7계층.

-- application 7

  • (data/header)를 합치는 행위를 캡슐화. encapsulation
  • 그렇게 캡슐화해서 보냄

-- presentation 6

  • 캡슐화된 그 데이터가 7의 데이터가 됨
  • 얘도 header가 붙음 -> 얘는 jpg파일이야~ 뭐 이런거 담김
  • 그리고 얘도 마찬가지로 캡슐화

-- session 5

  • 세션을 맺었다? 개발자들 쓰는 말 -> 전화 통화음 가다가 전화 받는 순간이 통신을 하기 위한 세션이 맺어진 순간.
  • 주로 보안, 통신하는 순간을 결정하는 계층
  • 또 캡슐화 그 과정 거침. 헤더도 붙음

-- transport 4

  • 어떻게 보낼까~ 고민하는 계층
  • 5에서 pdu가 내려옴. -> 4에서는 segement라고 함
  • 포트가 여기 개념임.
  • 그리고 어떤 식으로 보낼까? 이게 TCP/UDP

-- network 3

  • 마찬가지로 위에서 pdu가 내려오고, 앞에 header가 붙죠
  • 3계층 pdu는 패킷
  • 3계층이 중요한 이유는 ip(internet protocol)를 다루기 때문
  • 라우터가 해당 계층의 장비
  • 아이피 주소. 논리적인 주소 이용하여 통신 -> 출발지, 목적지 등의 정보가 들어있어야함 -> 아마 이게 프록시 원인이였던 듯? 출발지 주소가 안 담겨있어서

-- data-link 2

  • pdu : frame
  • 여기는 헤더 뿐 아니라 trailer라는게 하나 더 붙는다.
  • 스위치가 여기예여
  • mac주소가 여기꺼 -> 맥 주소는 nic에 고유 번호
  • 트레일러는 이 데이터가 온전한가? 하는 정도? 프레임이 제대로 되었는지 체크하는 단계가 있다? 모르겠다

-- 1

  • pdu : bit - 0 & 1
  • NIC 같은 원초적인 물리 장비들 모두 포함

이러한 과정들은 정보를 보내기 위함이였고,
정보를 상대방이 받는다면, 1부터 7까지 역으로 decapsulation하며 정보를 찾아감
네트워크 장비가 있다면, 그 밑 계층의 pdu만 까볼 수 있음

TCP/IP 계층

5,6,7 합쳐서 application layer
4는 같음 transport layer
3은 internet layer
1,2 합쳐서 network-access layer

사실 요새는 이렇게 계층을 나누는 것이 좀 무의미하다고 한다.
하지만 여전히 네트워크 개념은 정말 중요한 개념이고, 현업에서도 잘 모르는 사람들이 많다 하니 꼼꼼하게 공부해두자.

네트워크 규모 & 갯수

  • 네트워크 규모를 구하면 자연스레 네트워크 갯수도 알 수 있다.
  • 라우터는 3계층 장비로써 호스트 가능. ip를 소유 할 수 있다. 네트워크를 나누는 이정표.
  • 맥 주소는 내부 ip와 같이 안에서만 쓰인다고 봐도 무방
  • 같은 스위치에 연결되어있다 -> 같은 네트워크이다.
  • 네트워크 규모 -> 방의 크기 -> 서버가 들어갈 수 있는 공간
  • 규모와 갯수는 반비례. 종이접기와 같은 느낌

예시)
c클래스 예시 192.168.0.x에서
x가 0이면 네트워크 주소, 255면 브로드캐스트 주소라 두개는 쓸 수 없음 (보통 그러함).
그래서 위 경우 호스트 수는 <네트워크 규모 - 2> 임. 이 경우 254가 되겠지
브로드 캐스트는 식별을 위해 주로 사용. 어디 교실에서 한 명씩 찾는 것 보다, 여기 누구 있나요~? 하면서 찾는게 더 효율적이니까.

질문)
네트워크 규모, 갯수, 크기 어떻게 하는 것이 유리한가?

답변)
케익이 있는데 16등분 할수있음 16명이서 먹는게 좋음. 2조각 먹으면 14조각 버림.
8명인데 16등분 나누면 1조각씩 먹을 수 있는거 2조각씩 먹음
8명인데 4등분 나누면 또 애매하고
상황에 따라 맞게 설정하는게 좋다.

네트워크 주소 & 서브넷 마스크를 알아야 그 네트워크를 정확히 안다고 말 할 수 있다. 그리고 호스트 주소와 규모만 아아도 그 네트워크를 알 수 있다. 왜? 네트워크는 연속적이기 때문

CIDR

classful <-> classless
결과적으로 classful -> classless 되었음.
이 클래스 구조/규칙을 딱히 따르지는 않음. 거의 따르지 않는 듯 함
하지만, 기본적인 기념이기에 알아둘 것.

classless하다면 규모를 알기 어렵다.

서브넷팅 & 슈퍼넷팅

  • 서브넷 -> 서브넷팅
  • 서브넷 마스크 : ip주소를 네트워크 포션 / 호스트 포션으로 나누는데 사용되는 숫자 조합. (와일드 카드 마스크 & prefix 표현법의 차이) 서브넷 마스크는 IP 주소와 같은 길이의 비트로 구성되며, 이진수(Binary)로 표현했을 때 네트워크 포션은 1로, 호스트 포션은 0으로 설정됩니다. 결론적으로, 1인 부분은 고정, 0인 부분은 유동적.
  • 슈퍼넷팅은 서브넷팅의 반대 개념

라우터 & 라우팅

라우팅: 경로를 알려주는 행위
라우터: 경로를 알려주는 애

라우팅 시 알아야 하는 정보
- 내가 가고싶은 목적지 네트워크 = 대표 주소 & 서브넷 마스크 --> 목적지
- 목적지로 가기 위해 현재 네트워크에서 빠져나가기 위한 첫 번째 관문 --> Next-hop(반드시 같은 네트워크의 주소여야함)

ARP <-> RARP

ARP(adress resolution protocol)

  • 주소 결정 프로토콜
  • 핑테스트 할 때 앞에 몇 번 실패하는거. 그거
  • 결정한다 = 알아낸다 --> 맥 주소를 ->> 아이피로부터
    이거 거기 네관사 나왔던 그거네. 역이 RARP
    IP로부터 mac주소를 알아내는 프로토콜

네트워크를 지날때마다 출발지 맥주소, 도착지 맥주소는 계속 변하고 ip는 절대 변하지 않음. 결국은 맥주소를 알아내는 것이 목적이랄까

Longest Match Rule

라우터 경로에서, 둘 다 가도 말이 될 때, 조금 더 비트가 일치하는. 즉, ip가 조금이라도 더 비슷한 곳으로 경로 이동

DHCP

Dynamic Host Configuration Protocol

  • 자동으로 ip와 같은 통신에 필요한 정보를 부여하는 프로토콜
  • discover -> offer -> request -> ack 과정으로 이루어짐
  • 포함되는 정보: ip, sm, gw, dns
  • 항상 client의 입장을 고려해야한다

풀이 꽉 차게되면 fifo 방식같은 느낌으로 ttl 먼저 된 것 부터 삭제시키나?
공격 방법으로 쓰이기도 함. 더 이상 등록이 안되게 더미를 등록시키는.

vlsm

Variable Length SubnetMask

OSPF

Open Shortest Path First

  • dynamic한 프로토콜
  • 라우터가 똑똑해. 짧은 길을 알아서 찾아줌

NAT & DNAT

NAT에서 source(출발지)는 dynamic하고, --> pat(port NAT)라고 부름
destination(목적지)는 static한 느낌 --> DNAT 라고 부름
nat는 포트 기반으로 작동. 그렇기에 사설 ip들이 공인 ip가 되어 밖으로 통신할 수 있음

NAT의 단계
1. source(출발지)를 정의 - ACL을 사용, Access Control List이며 wcm 사용
2. 내부(inside) / 외부(outside)를 정의
3. NAT 설정
결국, 포트 정보를 기반으로 네트워크 밖으로 나가기도 하고, 다시 찾아 들어오기도 한다.

DNAT(destination nat) : Destination + Static

  • 특정한 목적지를 향하는 주소를 변환
  1. 내/외부를 정의
  2. DNAT 설정

DNAT -> 유사 포트포워딩
뭐 구분짓는 것 자체가 큰 의미가 없음

서버가 주로 DNAT일 것 이고, pc가 주로 pat겠네.

내부 안에 내부 구조로도 가능함
내부 안에서 사설 ip를 또 부여. 그럼 거기서도 NAT가 발생할 수 있음

VLAN

virtual lan

스위치를 내 의도대로 쪼개서 사용하는 것
한 개의 물리적 스위치로 여러개의 서브넷 구성이 가능함

즉, 스위치가 한개가 아니라 두개, 세개다 생각해도 무방. --> 같은 네트워크가 아니다

케이블은 결국 하나이기에, 그리고 모두 가상으로 나눠지기에 게이트웨이도 가상으로 나눠짐. sub 인터페이스와 main 인터페이스로 나뉨. main이 원래 라우터의 gw

vlan 설정 - 자세한 설명 수업 내용 참조
1. vlan을 생성
2. 인터페이스 모드를 설정
상행 포트 설정: 일반적으로 여러개의 vlan 지나감
하행 포트 설정: 각각의 vlan에 맞게 access
3. 라우터에서 vlan 설정 - 802.1q같은 encapsulation 방식들이 있음

vlan은 내부 통신 방식이나 구조는 너무 자세하게까지 알 필요는 없고, vlan tag라는 것이 있다 정도. 어떤 경로 흐름인지 정도만 인식

네트워크 etc...

  • nat를 해주는 이유? 이런 것 처럼 각각 서비스를 왜 하는지? 그 목적을 알고있어야 함

  • 가상의 네트워크가 있다? --> 가상의 라우터/스위치가 있다.
    내가 물리적이든 가상이든 어떤 네트워크에 속해있다? --> 그 네트워크에 인터페이스(ex - NIC)를 가지고 있다.

  • 브릿지? --> 현실 대역이다.
    실제 공유기나 lan port에 연결되는 직통 연결이라고 보면 될 듯
    스위치에 가상의 포트에 하나 더 꽂히는 느낌. 그림 참조

os

  • 간단한 실습
    httpd 정적 웹서버, 기본적인 centos7 및 리눅스 명령어

  • vmware - hostonly, bridged, nat 3개 타입 나눠서 실습 중

  • GNS와 연계하여 hostonly 서버 GW 생성 후 통신 가능하게 해보기...


다음주도 vmware로 가상환경 하려나... 클라우드 언제 하지...?
(일단 로컬부터 잘 하자)

profile
『Infra Engineering』

0개의 댓글