생활코딩 WEB

WEB2 - Home Server (1)Router

finepiz 2021. 11. 22. 13:17

공유기를 전문용어로는 라우터라고 합니다.

라우터는 인터넷이 동작하는 핵심중의 핵심이라고 할 수 있습니다.

라우터를 이해한다면 인터넷을 바라보는 시야가 확 넓어진 것을 체감할 수 있을 것입니다.

WEB2-Home server 수업에서는 라우터가 무엇인지를 집집마다 있는 공유기를 통해서 알아보고, 인터넷과 관련된 여러 중요한 개념들을 살펴봅니다.

공유기에 연결된 컴퓨터를 서버로 사용할 수 있는 법을 알아보는 수업, 이게 되면 정말 많은 것을 할 수 있습니다.

 

https://opentutorials.org/module/3398

 

WEB2 - Home server

수업소개 이 수업은 자신의 집에서 서버를 운영하는 방법을 알려드리는 수업입니다. 가정에서는 보통 공유기를 이용해서 인터넷을 이용하는 경우가 많습니다. 이런 환경에서 서버를 운영하기

opentutorials.org

https://youtube.com/playlist?list=PLuHgQVnccGMA52uRBmSwqcvtI5IMoFclJ 

 

WEB2-Home server

 

www.youtube.com

===

@1.수업 소개

이 수업은 공유기를 사용하는 환경에서 웹서버를 구동하는 방법을 알려드리는 수업

공유기에 연결된 컴퓨터의 웹서버에 불특정 다수가 접속하게 하는것은 쉬운 일이 아닙니다.

--컴퓨터 ≠ 웹서버(프로그램)

하지만 이 목표를 향해 가는 과정에서 우리는

인터넷을 지배하는 핵심적인 지식과 경험

을 얻을 수 있습니다.

 

전화기가 서로 통신을 하기 위해선 전화번호가 필요함

마찬가지로 인터넷 위에 있는 컴퓨터와 컴퓨터가 서로간에 통신을 하기 위해 IP address가 필요함

1980년대 초 인터넷의 선구자들은 IPv4라는 인터넷 통신 규칙을 만듦

이 통신규칙에서 사용하는 ip주소는 42억개의 주소를 표현할 수 있다.

컴퓨터와 인터넷이 이렇게 흥행할 것이라고는 생각하지 못했던 것.

-> web, smartphone, cloud computing, IOT과 같은 정보 기술의 혁신들이 속속 등장하면서 인터넷에 연결되는 컴퓨터의 숫자가 기하급수적으로 증가함 넉넉할 줄 알았던 42억개의 ip주소가 동이나버림

 

가장 근본적인 해결책은 주소의 형식을 완전히 새롭게 바꾸는 것

새로운 인터넷 통신 규칙인 IPv6에서는 새로운 주소 체계를 도입함. 거기선

개 가능

 

하지만 주소를 바꾸는 것은 쉽지 않은일이기 때문에 당분간은 기존의 주소체계인 IPv4를 아껴써야함

그 노력중의 하나가 바로 공유기

공유기를 사용하면 하나의 ip주소를 여러대의 컴퓨터가 나눠 쓸 수 있다.

인류는 ip를 아껴쓸 수 있고 개인은 통신 요금을 절약할 수 있다.

 

하지만 공유기에 연결되어 있는 컴퓨터에서 서버를 설치해서 운영하는 것은 쉽지 않은 일.

 

를 위해서는

이런 개념들을 알아야 함.

 

지금부터 우린 공유기에 연결된 컴퓨터를 웹서버로 이용하는 방법을 알아볼 것

클라이언트로만 사용되던 여러분의 컴퓨터가 서버로 사용된다는 것은 소비자로만 살아오던 사람이 생산자가 되는 것만큼이나 혁명적인 사건이라고 할 수 있습니다.

컴퓨터가 가진 무한한 잠재력을 흔들어 깨워 봅시다

 

===

@2.공유기

Router

Router

인터넷이 돌아가는 굉장히 중요한 원리

 

IP adress : Internet Protocol address

인터넷을 사용하기 위해서는 컴퓨터가 IP주소를 갖고 있어야 한다. 그래야 다른 컴퓨터와 통신을 할 수 있음 .

오른쪽 컴퓨터가 클라이언트면, 클라이언트의 예를들어서 웹브라우저에다가 13.124.88.36/index.html 이러고 엔터를 치겠죠

 

그럼 어떤 마법같은 메커니즘에 의해 상대방 컴퓨터로 요청하는 신호가 간다

 

이때 요청하는 신호를 받아서 13.124.77.38에 설치돼 있는 웹서버가 요청한 정보를 응답해야 하는데 응답하기 위해서는 당연히, 요청한 컴퓨터의 아이피를 알아야겠죠

그리고 그 아이피를 어떻게 아는지는 요청할 때 전달이 되는 것

그럼 요청했던 컴퓨터인 59.6.66.238로 응답해주면 그 컴퓨터에 정보가 표시되면서 이 하나의 사이클이 끝나게 됨.

 인터넷에 접속돼 있는 컴퓨터들은 서로 정보를 주고받아야 되기 때문에 양쪽 다 IP address가 필요함.

 

그리고 우리가 현실에서 인터넷을 사용할 때는 이런식으로 된, 통신사랑 계약을 해서 회선을 받음.

그 케이블을 내 컴퓨터에 꽂거나 

스마트폰을 와이파이에 연결하는 그 순간에

자동으로 그 컴퓨터에는 자동으로 ip가 부여되게 되어 있다.

근데 문제는 옛날에는 컴퓨터가 하나였는데 여러대로 늘어나면? 전화기의 탈을 쓴 컴퓨터 스마트폰, 노트북 등..

이런게 다 인터넷에 연결이 되려면 ip를 갖고 있어야 함. ▽위에서부터 계속 이어지는 논리

 

그럼 제일 쉬운 방법은 우리가 통신사랑 회선을 2개를 더 계약하는 것 - 비쌈

가정에서는 통신사와는 하나의 회선을 계약하고, 공유기라고 하는 기계를 삼.

그리고 공유기의 뒷면을 보면 구멍이 혼자 떨어져있는 구멍이 있고, 같이 붙어있는 구멍들이 있음.

혼자떨어져 있는 애는 WAN이라고 적혀있을 거고

붙어있는 애들은 LAN이라고 적혀있을 것

 

통신사랑 계약을 해서 받은 케이블은 WAN에 꽂고

원래 컴퓨터에 꽂을 케이블을 공유기에 꽂게되면 이제 통신사로부터 발급받은 ip adress는 공유기의 것이 됨.

 

이제 사람들이 59.6.66.238이라는 주소로 접속하면 더 이상 컴퓨터에 접속하지 않고 공유기에 접속한다 라는 것을 이해하는 것이 첫번째로 주의깊게 생각할 부분

 

이제 각각의 디바이스들은 LAN의 뚫려있는 구멍들에 연결, 스마트폰과 같은 무선기기는 안테나를 통해 연결함, 본질적으로는 똑같음.

 

공유기를 중심으로 같은 네트워크에 묶여있다. 이걸 지역 네트워크 라고 함. LAN이 Local Area Network의 약자

 

그리고 이 공유기는 동시에 전 세계에서 가장 거대한 네트워크인 인터넷이라고 하는 광역 네트워크에 소속돼 있다.

광역 네트워크를 WAN, wide area network라고 부름.

 

그래서 공유기라고 하는 기계는 LAN이라고 하는 네트워크와 WAN이라고 하는 이 두개의 네트워크 사이에 있는 일종의 중계자와 같은 역할을 하는 교환원같은 기계가 공유기이다.

 

그리고 각각의 컴퓨터들이 공유기의 케이블이나 무선으로 연결되는 그 순간에 자동으로 이 각각의 컴퓨터들은 ip를 부여받습니다.

 

이 네트워크 안에 소속돼 있는 기계들 뿐만 아니라 공유기도 네트워크의 일부잖아요?자연스럽게 공유기에게도 IP가 부여됨(그림을 보세요, 공유기의 IP가 두개예요)

 

그래서 공유기에 부여된 저 내부 네트워크 안에서의 ip는 아주 특수한, 중요한 ip이기 때문에 이름이 있음.

Gateway address

또는 Router address같은 여러가지 이름들을 갖고 있음

 

Router라는 기계는 WAN안에서 이 공유기로 접속할 수 있게 해주는 IP를 갖고 있는데 그 IP는 전세게에 있는 누구나 접속 가능하다는 뜻에서 public ip address 공용 ip라고 부름.

그리고 안에 있는 컴퓨터들에게 부여되는 ip들은 말하자면 회사 내선번호 같은 것

회사의 대표번호를 통해서 회사에 전화를 걸수 있고 내선번호를 통해서 회사 안에 있는 사람들끼리 서로 전화를 할 수 있잖아요 이 지역네트워크 안에서만 쓸 수 있는 IP adress를 private IP address 사설 IP 주소라고 부름

 

그리고 IPv4시대의 주소체계는 총 42억개 주소가 있는데

이 표의 애들은 사설 IP로 쓰기로 정해놨다, 오른쪽의 숫자는 총 몇개인지

 

누가 나한테 IP를 답해줄 때 59.6.66.238이라고 하면 저 범위 안에 속하지 않으니까 그건 public ip구나 라고 알 수 있어

192.168.0.4 라고 대답하면 저 범위안에 있기 때문에 private IP이고 직접적으로 접속할 순 없구나 라는 걸 바로 알 수 있어

 

그리고 오른쪽 숫자가 수용할 수 있는 장치들의 숫자이기 때문에

거대한 네트워크를 구축할 때는 첫번째 줄의 천육백만개

작은 네트워크를 구현한다고 하면 6만5천개짜리 192.168.0.0-... 를 쓰면 됨 대부분 이거면 충분함

▽(1)LAN을 구축할 때를 말하는거겠지 (2)첫번째줄 두번째줄 세번째줄 중에 선택을 해야되나보네?

 

===

@3.NAT

Network Address Translation라고 하는 기술

이 기술 덕분에 사설 아이피를 쓰고 있는 각각의 컴퓨터들이 외부의 인터넷에 접속할 수 있게 됨.

이걸 알아가는 과정에서 많은 개념들을 파악할 수 있기 때문에 알아봅시다

 

여러분의 IP는 192.168.0.4

위키피디아를 접속한다면 내부적으로는 어떤일이 일어나는지 알아보기

1.무조건 Gateway address에 해당되는 IP의 머신에게 신호를 보냄

- 그럼 공유기가 받는데, 공유기가 보니까 네트워크 안에 있는 요청이 아님(위키피디아는 안에 없음)

- 있다면 그냥 거기로 보냄!

2.없기 때문에 요청을 WAN을 통해 외부로 보내야 함. 보내기 전에 두가지를 함

- 이 요청이 192.168.0.4라는 IP를 갖고 있는 컴퓨터의 요청이다 라는 걸 마법같은 방법으로 공유기 안에 기록

--그래야 나중에 연결해줄 수 있다

- 요청한 애는 192.168.0.4를 쓰고 있는데 외부에서는 접속을 못하는 주소다. 그래서 NAT라는 기술이 요청한 데이터를 변경함. 192.168.0.4라고 되어 있던 부분을 59.6.66.238로 변경. 후, 변경 된 데이터를 위키피디아에 쏴주는 것

▽우리 네트워크 안에 누가 요청했는지 따로 기록하고, 요청의 IP주소를 Gateway address로 변경 후 쏜다 이거군 이게 끝이야? 오

위키피디아가 그 정보를 받고, 어떤 작업을 처리한 다음에, 59.6.66.238로 응답함! -- 변경했으니까

공유기는 응답받은 정보를 보고 192.168.0.4가 요청했었던 정보라는걸 파악한 다음에 --기록돼 있다고 했죠

 

응답해줌

 

이 과정을 통해 사설 IP를 쓰고 있는 이 컴퓨터가 사설 IP 바깥쪽에 있는 public IP에 해당되는 외부의 세계에 접속할 수 있게되고 바로 그때 사용되는 기술이 NAT

 

컴퓨터를 클라이언트로 사용했을 경우 NAT가 동작하는 방법을 살펴봤음.

그럼 서버로 사용하려면 어떻게 해야 외부에 있는 같은 네트워크에 있지 않은 사용자가 192.168.0.4 머신에 접속할 수 있게?->5.에서

 

===

@4.IP 주소 알아내기

내 컴퓨터의 IP adress 확인 방법

 + 내 컴퓨터가 속해있는 LAN(지역네트워크)의 입구에 해당되는 교환원에 해당되는 공유기, Router 의 IP adress(▽내부 외부 두개잖아 그 중 내부 말하는듯)는 어떻게 되는가 알아보는 방법

 + 결과적으로 내 네트워크가 외부에서는 어떤 IP adress로 보여지는가(59.6.66.238) 알아내는 방법

 

운영체제별로 알아볼것 (윈도우 맥 리눅스)

 

--------------------------------------------------

윈도우의 IP관련 정보를 얻는 방법 : 

제어판 > Network and Internet > Network and Sharing Center

인터넷에 어떻게 연결돼 있는지, 케이블로 연결돼 있기 때문에 Ethernet이라고 표현됨

wifi같은걸로 연결하셨으면 wifi라고 적혀있을 것

> Ethenet클릭 : 접속과 관련된 설정 제어

> Details... 

IPv4 Address 가 이 컴퓨터의 내부 네트웤 상의 IP Adress 입니다.

IPv4 Default Gateway라고 적혀 있는 것이 우리의 LAN에서 공유기의 Router의 IP adress

 

--------------------------------------------------

리눅스 : 콘솔이라 불리는 환경을 많이 쓰니까 콘솔 관점에서 설명(리눅스가 콘솔 말고 뭐가 있어?)

ifconfig

- eth0(0일 수도 1일 수도) 의 inet addr(internet address) 가 IP address

router의 IP address 도 ifconfig에서 알 수도 있지만 좀 복잡하기 때문에

route라는 명령

default 에 Gateway 부분

 

검색과 같은 방법을 통해 찾아내시면 됩니다 이게 제일 중요한 얘기

 

--------------------------------------------------

맥 : 사과버튼 > 환경설정 > Network

초록색이 현재 연결돼 있는 연결방법

 > Advanced... > TCP/IP > 여기에 IPv4 Address 와 Router가 있다. 각각 컴퓨터와 공유기의 IP address

 

--------------------------------------------------

그래서 보통 가정용 공유기를 사용하고 있는 경우

방금 여러가지 방법으로 알아낸 router의 IP address 를 웹브라우저에 쳐보면 공유기로 접속을 할 수 있다.

로그인 > 관리도구 --어떤 공유기든 본질적으론 비슷해서 잘 찾아보면 똑같은 것들이 다 있음

이 상태는

192.168.0.4에서 router의 관리자에 접속을 한 것. 관리자를 통해 router의 동작방법 등을 세팅할 수 있다.

 

WAN상에서 router의 IP가 어떻게 되는가? 우리의 네트워크가 결과적으로 어떤 public IP address를 갖고 있는가?를 확인하는 방법. 저기 관리자에 외부 IP 주소, 내부 IP 주소 라고 써있다.

내부 IP 주소 : Gateway Address

외부 IP 주소 : 우리 네트워크의 public IP address

 

더 결과론적인 방법은 구글에 my ip 라고 검색하기그럼 여러가지 서비스가 나옴. 그냥 사이트 들어가보면 내 IP 알려준다.

 

우리가 whatismyipaddress.com이라는 서비스에 접속했는데

그 서비스는 접속한 우리가 어떤 IP를 갖는지 알 수가 있기 때문 그래야지 또 전송할 거 아냐

그걸 우리에게 알려주는 것

같은 네트워크에 있는 컴퓨터들은 모두 똑같은 IP로 표시될 것이다.(핸드폰, 노트북, 데스크탑) 모두가 같은 public IP 아래에 놓여있기 때문