"Hello world"도 42준비하면서 처음 쳐 본 나로썬 네트워크는 다른 나라 언어같았다..
과제에 나오는 모든 단어를 몰랐고, 검색을 하면 또 모르는게 나오고... 타고타고 끝도 없었다..
과제를 하면서 내가 모르는 부분에 대해서 어느정도 정리를 해서 나와 같은 처음 개발을 접한 분들에게 조금이나마 도움이 됐으면 좋겠다.
ip는 간단하게 말해서 네트워크 장비에 접속할 수 있는 주소
라고 생각하면 좋을 것 같습니다.
예를들어 네이버에 접속한다고 예를 들어보면 우리가 주소창에 naver.com을 치면 어떤 일이 일어날까요??
우선은 우리가 주소창에 naver.com을 치면 DNS(Domain Name System) server에 네이버의 주소를 넘겨주게 되는데 그러면 DNS server는 해당 주소에 맞는 ip를 다시 넘겨주게 됩니다.
그리고 우리는 DNS server에서 받은 ip를 이용해서 네이버에 접속하게 되는거죠.
그러면 단순히 ip주소만 안다면 네이버에 접속할 수 있는거 아닌가??
물론 접속이 됩니다! 한번 직접 해보도록 합시다.
실제로 터미널에 nslookup이라는 명령어와 접속하고싶은 주소을 넣어서 실행시켜보면
IP Address가 나오는데 이 IP를 주소창에 넣어서 검색해 보면
네이버에 접속이 되는걸 볼 수 있죠!
이렇게 우리는 ip를 통해서 다른 서버 및 네트워크 장비에 접속할 수 있는 것입니다.
IPv4는 32비트의 크기를 가지고 있고 ' . '으로 구분된 4마디의 1과 0의 조합으로 이루어져 있습니다.
IPv4는 약 43억개의 IP를 할당할 수 있고 이 중 몇 가지는 특별한 용도를 위해 사용이 제한됩니다.
ex 1) network address : 127.0.0.0
ex 2) brodcast address : 127.255.255.255
ex 3) local host address : 127.0.0.1
공인 IP는 우리가 임의로 할당하고 하는게 아니라 전세계적으로 ICANN이라는 기관이 일정 IP를 나라별로 할당을 해 주게 됩니다.
만약 우리나라에서 ICANN에 IP가 필요하다고 하면 우리 나라에 일정 범위의 IP를 넘겨주고, 우리나라에서는 인터넷 진흥원(KISA)에서 이 IP를 관리하면서 SKT, KT등에 다시 할당을 해 주고 이를통해 우리가 인터넷에 접속할 수 있게 되는 것입니다.
그리고 외부와 연결될 수 있는 고유한 IP이기 때문에 전 세계에서 중복될 수 없이 단 하나만 존재할 수 있는 IP입니다.
공인 IP는 보통 서버와 같은 역할을 하는 곳에 이용됩니다.
만약 네이버가 주기적으로 변경되는 IP라고 한다면 이전에 접속했던 IP로 접속하면 에러가 나게 될 테니 고정적인 공인IP를 이용하는게 좋다고 합니다.
그럼 유동 IP는 서버의 역할을 하지 못 할까??
사설 IP는 내부망에 사용되는 IP입니다.
간단하게 말하면 우리가 사용하는 공유기에 연결된 기기들이 가질 수 있는 IP라는 뜻이죠
이 사설 IP는 할당할 수 있는 범위가 있는데 다음과 같습니다.
이 사설 IP의 특징은 외부에서 해당 사설 IP로 접근이 불가능 하다는 것입니다. 이 사설 IP는 내부망에서만 적용되는 IP이기 때문에 외부에서는 접근이 불가능 합니다.
그럼 우리는 어떻게 인터넷을 사용할 수 있는 걸까??
바로 공유기, 즉 라우터를 이용해서 사용할 수 있는 것입니다.
우리가 사용하는 대부분의 사설 IP는 네트워크 주소 변환(Network Address Translation, 줄여서 NAT)
기술을 이용해서 할당된 것인데, 간단한게 말하면 라우터에 할당된 공인 IP를 여러개의 사설 IP로 나누거나, 사설 IP를 공인 IP로 전환하여 외부와 통신을 할 수 있게 만들어주는 기능을 말합니다.
이 기술을 이용해서 우리가 외부의 서버로 접속을 할 때는 라우터에서 내 IP를 라우터에 할당된 공인 IP로 변환해서 서버로 정보를 보내고, 해당 서버에서는 다시 라우터로 정보를 보내고, 라우터에서 다시 사설 IP로 변환해서 내 컴퓨터로 정보가 들어오는 방식으로 사용하게 되는 것이죠.
한마디로 라우터가 하나의 출입구 역할을 해 주는 것입니다.
이런 식으로 사용되면서 공인 IP의 낭비를 줄일 수 있는 방법으로 사용됩니다.