쿠버네티스 전문가 양성과정 1주차 3일(12/21)

최수환·2022년 12월 21일
0

Kubernetes

목록 보기
4/75
post-thumbnail

topology

Star

  • 가장 일반적인 네트워크 구성 형태
  • 허브가 중앙에서 다른 모든 노드들을 연결한다
  • 통신망의 처리능력과 신뢰성은 허브가 좌우한다
  • 케이블 하나의 문제는 해당노드에만 영향을 줄 뿐 전체 네트워크에 영향을 주지 않는다.

장점

  • 케이블과 I/O포트하나만 필요하므로 설치비용이 저렴
  • 중앙집중적인 구조라 유지보수와 확장이 용이하다
  • 케이블연결이 끊어져도 전체 네트워크에 영향을 미치지 않는다(안전성)

단점

  • 중앙제어장치(허브)에 장애가 있으면 전체 네트워크에 문제 발생, 통신량이 많으면 전송 지연
  • 모든 노드가 중앙허브와 반드시 연결이 되어있어야 하기 때문에 많은 케이블 연결이 필요
  • 최초 설치할 때 케이블에 소요되는 비용과 노력이 크다

Tree

  • Star의 변형된 형태로 트리 형태의 노드에 전송제어장치(허브)를 두어 노드들을 연결
  • 상위계층의 노드가 하위 노드들을 직접 제어하는 계층적인 네트워크에 적합

장점

  • 제어가 간단해서 관리와 확장이 용이하다.
  • 중앙의 전송제어장치(허브)에 더 많은 장비를 연결할 수 있어 각 장비간의 데이터 전송거리가 늘어남
  • 우선순위를 부여할 수 있다.

단점

  • 중앙에 트래픽이 집중되면 병목현상 발생
  • 중앙의 전송제어장치가 다운되면 전체 네트워크 영향

bus

  • 설치가 간단하고 비용이 적게든다
  • 하나의 노드가 전송하면 브로드캐스트로 다른 모든 노드들이 수신가능
  • 노드가 많아질수록 전력이 약해져서 성능저하

ring

  • 반복적인 작업은 ring구조 사용
  • 한 곳의 연결만 끊어져도 전체 네트워크에 영향

mash

  • 지하철에서 ipv6와 함께 사용
  • 연결이 끊어져도 다른 연결을 통해 유지한다
  • 케이블 연결이 많기 때문에 비싸다

혼합형

TCP/IP 프로토콜 구조

  • 현재는 대부분 OSI가 아닌 TCP/IP계층 구조를 사용한다
    📒 이더넷(유선)망을 이용할 것인지 802.11(무선=와이파이)망을 이용할 것인지는 LLC가 규정해준다
    📒 IEEE 802에 다양한 무선 통신이 정의되어 있다
    📒 CSMA/CD : 다수의 호스트가 하나의 매체에 연결되서 통신 신호가 충돌이 일어나면 충돌을 감지하고 Delay를 준다 (IEE 802시리즈)

TCP헤더

  • UDP의 단점을 보완(UDP보다 헤더가 복잡함)

  • Reliable and stateful 서비스

  • Flags : 통신의 상태를 체크하는 기능(UDP단점 보완)

    • URGENT : 다른 패킷보다 우선순위로 보냄
    • ACK :응답
    • PUSH : 상위 7계층으로 신속하게 보냄
      (데이터 전송하기 위한 flag)
    • RESET : 초기화
    • SYNCK : 연결 설정
    • FIN : 연결 종료
  • SN/AN : 데이터가 어디까지 갔는지 체크(UDP단점 보완)

three-way handshake

  • TCP통신 전에 초기 연결설정
  • 서로 통신할 준비가 되어있는지 체크(UDP X)
    📌 그림에서 마지막 ACK의 seq : 8001이다

  • 종료할때도 three-way handshake를 통해서 연결을 끊는다
    📌 그림에서 마지막 ACK의 seq : x+1이다

four-way handshake

  • 종료할때 상대방(서버)측에서 할말이 남은 경우 Four-way hanshake

데이터 전송

  • SN/AN을 사용하기때문에 통신이 흘러가는 지점을 파악할 수 있다.
    EX) 파일 받고있을 때 몇 퍼센트 되고있는지 보여줄 수 있다
    📌 그림에서 마지막 ACK의 seq : 10001이다
    📌 데이터를 전송하는건 오직 push만 가능하다
    -> 데이터를 보낸 트래픽을 찾기위해서는 push만 찾으면 된다

State Diagram 참고

ICMP

  • TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알리거나, 진단 등과 같이 IP 계층에서 필요한 기타 기능들을 수행하기위해 사용되는 프로토콜
    TYPE : ICMP종류에 대해서 구분한다
    CODE : 해당 ICMP종류에 대해서 세부정보를 구분
  • ICMP는 기본적으로 응용프로그램에 데이터를 전달X
  • 버퍼에 데이터를 보낼 수 있는 공간이 있긴하다
  • 클라우드 실무에서도 ICMP를 이용해 어떤 오류가 나는지 정의할 수 있다.
  • netstat -nr : 게이트웨이 주소 알기
  • 외부와 통신하기위해 외부로 나가야하는데 이때 반드시 게이트웨이를 통과해야하고 따라서 게이트웨이 주소를 반드시 알아야한다.
  • 게이트웨이를 통과하면서 식별한다
  • 자신의 노드를 찾아갈수 있는 지점에 게이트웨이 존재
    📒 라우터는 게이트웨이 역할도 같이 한다
  • 게이트웨이 주소찾고 ping 주소 날린후 wireshark키고 wifi클릭후 검색창에 ICMP검색하면 ICMP가 실제로 사용된것을 확인할 수 있다
  • ICMP종류 정의

IGMP

멀티캐스트 = 클릭한 사람만= '지정된 사람' 다수 한테만 전송하게끔 만든다

  • 224.0.0.1, 239.0.0.1에서 224,239가 멀티캐스트를 나타낸다
  • 멀티캐스트의 대표적인 프로토콜이 IGMP다
  • 영상관련한 클라우드 실무에서 많이 사용되는 프로토콜
    📒 wireshark에 IGMP입력하고 유튜브 live동영상 아무거나 틀면 IGMP가 실제로 사용되는 것이 보인다

브로드캐스트 = 다수의 전체
유니캐스트 = 1대1 통신

Ipsec

source : 192.168.140.200 dest : 192.168.140.205

  • 이런식으로 S/D가 이루어져있으면 LAN이라고 생각되지만
    사실은 S와D 사이에는 수많은 라우터가 존재한다.
  • 이렇게 눈에 보이는 것과 같이 바로 옆에있는 것처럼 보이게 만들고 사이에 있는 수많은 네트워크와 실제 IP를 감추는 네트워크가 VPN이고 이 프로토콜이 Ipsec이다.
  • ESP,AH프로토콜(암호화 프로토콜)을 사용한다면 Ipsec이다.
  • 암호화, 실제 IP감추기, 중간의 네트워크 감추기가 주 기능이다.

Ipsec예시

UDP


도메인호출 처럼 빠르게 응답을 요구하는 기능은 UDP를 사용한다.

  • Unreliable 서비스

  • stateless서비스임 (C/S사이 연결이 되어있는지 확인안함)
    -> 만약 Server의 port가 닫혀있는데도 보내려하면 ICMP가 type3(destination unreachable) 메세지를 보냄
    -> 빠르긴하다 그러나 데이터 전송과정에서 문제가 자주 발생

  • 비연결지향적이다 - 통신의 상태를 체크하는 기능이 없다

  • 데이터를 전송할때 흐름제어가 안됨 = 그냥 보낸다 하면 끝까지보내고 에러나면 다시보냄 = 이어받기x

  • 도메인 직접 호출해보기
    ipconfig /flushdns
    nslookup naver.com
    wireshark에 dns검색

  • 계층에서의 encapsulation과정
    7계층에서 dns -> 4계층에서 UDP가 붙는다 -> 3계층 IP붙음 -> 2계층에서 Frame

TCP/UDP 참조

추가정보

GOOGLEDORK
filetype:pptx 네트워크
filetype:pdf network 기본
-> 원하는 정보 찾을때 유용

wireshark연습

port가 0~65536까지 있는데

  • TCP통신에서 SYN를 보내서 SYN,ACK가 오면 열려있는 Port, RESET이 오면 닫혀있는 Port
  • UDP통신에서 닫혀있는 Port에 ping을 보내면 ICMP(Destination unreachable)이 수신된다

-> 열려있는 Port식별 가능
-> 열려있는 Port를 통해서 공격당할 수 있다
= tcp의 flag에 64가지의 조합중에서 실제 사용중인 조합은
열 몇개 정도고 나머지에 대한 예외처리가 안되어있기 때문에 취약한 것이다

  • wireshark에서 statistics에 들어가서 conversation에 들어가면 각 프로토콜마다 통신되고 있는 패킷수를 볼 수 있으며, 보고싶은 Port 우클릭해서 apply as a filter누른 후 selected눌러서 A<->B누르면 display filter를 활용할 수 있다.
  • view - Time Display Format에 들어가 원하는 시간표시를 설정 할 수 있다
  • Edit - Preferences - Appearance - columns에 들어가 '+'버튼으로 원하는 항목을 추가 가능.
    ex) source의 포트번호를 추가하기위해 s-port로 이름 지정후 type : Src Port(unresolved) 선택, destination도 동일

마치며

생각보다 네트워크에 취약점이 많다는 것을 배웠고, 내가 클라우드 쪽에서 근무하게되도 가장 critical한 문제가 네트워크 문제일 것이라는 생각이 들었다. 따라서 에러를 식별하는 ICMP를 잘 활용하는 것과 , 해당 에러를 어떻게 처리하는지가 중요할 것이다.

profile
성실하게 열심히!

0개의 댓글