CKA 공부 29일차

Networking

  • k8s의 네트워크에 이해하기에 앞서, 네트워크에 필요한 사전 지식들을 공부해보자.

Networking Pre-Requisites

  • k8s의 네트워크를 이해하기에 앞서 우리는 먼저 네트워크에 대해 이해해야한다.

  • 이러한 선행지식이 있어야 k8s가 어떻게 내부적인 네트워크를 구축했는지 이해할 수 있고, 이것이 시니어 개발자들이 말하는 기본기의 중요성이 아닐까 싶다.

  • 결국 기본기가 튼튼한 개발자는 새로운 기술도 쉽게 학습할 수 있기 때문에 나는 기본적인 네트워크 지식을 공부하기로 결심했다.

Switching

  • A와 B라는 시스템이 서로 통신하기 위해서는 스위치가 필요하다.

  • 스위치는 A와 B 시스템의 랜카드에 있는 정보를 연결한다.

  • 스위치로 A와 B 시스템이 연결되면 ip addr 명령어를 사용하여 고유 IP 주소를 부여할 수 있다.

  • 이렇게 각자 고유의 IP까지 생성되고 스위치가 연결되어있다면 두 시스템은 스위치를 통해 상호 통신할 수 있게 된다.

Routing

  • 만약 이러한 A, B 시스템과 마찬가지로 C, D의 시스템이 스위치로 상호 연결되어있고 자신만의 Ip Address를 보유하고 있다면 B와 C는 어떻게 통신할 수 있을까??

  • 여기서 라우터가 등장한다.

  • 라우터는 두개의 네트워크를 연결하는데 사용된다.

  • 라우터는 스위치에 연결될 때 해당 네트워크의 IP를 할당받는다.

  • 이렇게 연결된 라우팅을 통해 A,B 시스템에서 C,D 네트워크로 전송할 수 있는 것이다.

Gateway

  • 그럼 B에서 C로 패킷을 보내려고 할 때 라우터는 어느 네트워크에 존재하게 될까?

  • 사실 라우터는 그냥 장비일 뿐이다.

  • 여기서 게이트웨이라는 개념이 등장한다.

  • 네트워크가 방이라면, 게이트웨이는 문이다.

  • 라우터 장비에 있는 게이트웨이에 명시된 IP 주소에 따라 라우트 장비로 들어오는 IP 대역을 지정할 수 있다.

  • 그리고 라우팅 테이블에 Destination IP를 0.0.0.0으로 명시하면 어떤 퍼블릭 네트워크든 인터넷이 연결되어있는 어떤 곳으로도 패킷을 전송할 수 있다는 의미가 된다.

Private 네트워크의 이해

  • A와 B가 Private 네트워크로 서로 연결되어있고, B와 C가 Private 네트워크로 연결되어있다고 하자.

  • A가 C에게 패킷을 보내는 것은 불가능하다.

  • 이를 위해 B 네트워크의 IP 주소를 각가의 Private 네트워크 주소 (A와 B가 연결된 네트워크와 B와 C가 연결된 네트워크)를 라우팅 테이블에 추가해두면 A와 C는 B를 통해 서로 통신할 수 있을 것이다.

  • 그러나 실제로 이 작업 이후 A가 C로 핑을 날려보면 에러가 나온다.

  • 그 이유는 보안적인 이슈때문에 그런데, 가령 B가 하나는 퍼블릭, 하나는 Private 네트워크와 연결되어있다면 퍼블릭 네트워크가 Private 네트워크로 패킷을 전송할 때 B가 매개체가 되어 전송될 것이다.

  • 이를 막기 위해 /proc/sys/net/ipv4/ip_forward를 확인해보면 기본값은 0으로 되어있는 것을 확인할 수 있다.

  • 이는 포워드 설정을 하지 않겠다는 의미이다.

  • 1로 셋팅하면 이제 A는 B를 매개체로 하여 C로 패킷을 전달할 수 있게 된다.





© 2022. by minkuk

Powered by minkuk