누구든 연결해서 사용가능한 공개적인 인터넷
물리적으로 멀리떨어진 지점도 인트라넷을 사용하게 되는데, 이것을 연결하기위해서 라우터와 스위치를 활용해서 직접 구성해야한다.
물리적으로 거리가 있는 곳과 선을 설치하기엔 유지보수와 비용이 많이들어서 너무 어렵다.
이런 상황에서는 인터넷을 이용해서 인트라넷 간의 연결을 사용한다.
IPsec프로토콜을 이용해서 ip 패킷의 인증, 암호화를 한다.
인트라넷과 인터넷에 동시에 연결된 라우터를 준비
인터넷을 이용해서 본사와 지사가 통신을 한다.
인터넷에만 연결된 사람도 따로 프로그램을 설치해서 인트라넷에 접속이 가능
물리적으로 인터넷에 연결되었다.
인트라넷을 이용할 수 있게 해주는 기술, VPN을 사용할 수 있다.
vpn 따로 회선을 설치하지 않아도 되니까 비용을 아낄 수 있다.
인터넷을 사용하기 때문에 보안이 약하다.
인터넷 트래픽에 따라 인트라넷 속도가 달라진다.
사용자의 ip는 VPN 장비의 ip로 바뀌기 때문에 악용 사례가 많이 발생한다.
IPsec vpn 다른점?
L1 스위치 : layer 1 스위치. osi 계층의 1계층. 물리 계층 스위치를 말한다. 1계층에는 스위치가 존재하지 않지만 1계층에 있는 허브를 뜻한다.
L2 스위치 : 스위칭 허브
L3 스위치 : 라우터
L4 스위치 : 4계층의 기술을 사용하는 라우터
트랜스포트 계층, 포트까지 구분해서 부하를 나눌 수 있는 로드밸런싱 기능이 답재된 라우터.
L7 스위치 : osi 7계층(tcp/ip5계층)의 기술을 사용하는 라우터를 말한다.
포트와 애플리케이션 단에 있는 패킷의 데이털르 구분해서 부하를 나눌 수 있는 로드밸런싱 기능을 제공한다.
L4스위치에 많은 다른 스위치에 비해 더많은 기능들이 있기때문에 더 비싸다.
부하를 밸런스 있게 나누는 것을 말한다.
L4 스위치에서 로드밸런싱은 NAT을 이용해서 수행한다.
nat
IP패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 한 마디로 Network Address인 IP를 변환
사설 네트워크(Private Network)에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함
게임회사에서 '감자의전설'을 출시해 사용자가 몰렸다는 가정
1. 많은 사용자가 몰릴 것을 예상했기 때문에 하나으 ㅣ서버로 감당되지 않는다.
2. 사용자의 게임 클라이언트는 게임서버에 접속하기 위해 L4 스위치에게 ip와 특정 port로 데이터를 보낸다.
L4 스위치는 클라이언트가 보낸 ip와 port를 보고, 즉 트랜스포트 계층까지 정보를 활용해 어떤 서버로 보낼지 결정하고 적절하게 부하를 나눈다.
'감자의 전설'게임은 9999번 포트를 사용하는데 이렇게 들어온 패킷은 L4스위치가 적절히 로드를 분배해준다.
요청이 들어올 때마다 목적지 서버를 번갈아 가면서 보내는 것.
사용자1에서 9999번포트 요청은 서버1로, 사용자2의 9999번 포트 요청은 서버2로 전달해서 부하를 분산.
L4 스위치는 포트를 활용해 부하를 분산시키는 기능
L4보다 더많은 것을 참조해서 부하를 분산시킨다. -> 촘촘히 분산가능
IP와 port뿐아니라 애플리케이션의 데이터를 참조해서 더 세심하게 트래픽 분산
하지만 애플리케이션 측의 암호화 때문에 모든 데이터를 볼 수 없어서 일부만 참조해서 분산한다.
3-1. ip와 port는 똑같이 보내도 get 메서드 /pictures/100을 보냈다면
L7 스위치는 사진을 조회하는 요청이라는 것을 알아내 사진 조회를 담당하는 서버로 보낸다.
작은 회사에 있는 나.
회사는 스위치와 허블르 이용해서 작은 lan을 만들었다.
사원들 간 통신을 할 수 있는 상태가 되었다.
회사는 인터넷에 연결하기 위해 isp에 연락해서 인터넷을 설치한다.
라우터가 설치가 되고, 라우터는nat을 지원하기 때문에
회사 내부에서는 private ip를 사용한다.
라우터 ip : 1.2.3.4
내 pc ip : 192.168.0.10
이때 내 pc에서 goole을 검색할 경우,
웹 브라우저는 http를 이용하기 때문에 http get 메서드를 이용해서 구글의 멩니 화면을 요청하는 메시지를 만든다.
www.google.com의 도메인명은 ip주소로 변환되어야 하기 때문에 DNA네임 서버에 인결해서 구글 웹 서버의 ip주소를 가져온다.
네임 서버로 데이터를 요청하는 것도 통신 방법이 똑같다~!
=> ip 주소를 알아왔다고 가정.
구글 웹 서버의 ip주소는 9.9.9.9라고 가정.
내 pc 웹브라우저는 50000번 포트를 사용하고 있다고 가정.
출발지 port : 50000
목적지 port : 80 (구글의 웹 서버 포트)
지정해서 세그먼트로 만든다.
이때, 애플리케이션 계층에서 보낸 http요청 헤더가 데이터가 된다.
이제 네트워크 계층의 프로토콜인 ip를 이용한다.
출발지 ip : 192.168.0.10 (내 pc)
목적지 ip : 9.9.9.9 (구글 웹서버)
ip 헤더를 붙이고 전체 데이터를 패킷이라고 부른다.
데이터 링크 계층의 프로토콜인 이더넷을 이용한다.
내 pc는 목적지의 ip주소(구글의 ip)가 내 pc 와 같은 네트워크가 아니라는 것을 알게되고,
라우터 A에게 패킷을 전달한다.
라우터 a에게 전달할 때 라우터 a mac 주소를 적어야하는데, 첫 연결일 경우 ARP로 라우터 a의 mac 주소를 알아낸다.
출발지 mac : 내 pc lan카드 mac 주소
목적지 mac : 라우터 mac 주소
를 적용해서 이더넷 헤더를 만든다.
패킷에 이더넷 헤더가 붙고, 패킷은 데이터가 된다.
이더넷 헤더가 붙은 전체 데이터를 프레임이라고 한다.
이렇게 디지털 데이터로 구성된 프레임은 lan카드가 직접 물리 신호로 바꾼다.
유선일 경우 전기나 빛, 무선일 경우 무선 주파수로 변환한다.
물리 신호로 바뀐 데이터는 utp 케이블을 타고 스위치로 이동한다.
스위치는 mac 주소를 이용해서 스위칭할 수 있기 때문에 연결된 모든 장치로 전송하지 않고 목적지인 라우터에게 데이터를 전송한다.
라우터에 도착한 전기신호는 다시 라우터의 lan카드로 디지털 데이터로 복원된다.
라우터는 이더넷 헤더는 사용했기때문에 버린다!
ip헤더를 보고 목적지를 판단한다.
인터넷은 많은 사우터가 있지만 라우팅 알고리즘을 이용해서 라우팅 테이블이라는 것을 만들어 놓아 어디로 가야하는지 결정해 놓은 상태이다.
라우터 a는 구글로 보내기 위해 라우터 B로 보내기로 한다.
ip 헤더에서 출발지 ip는 라우터 a의 public ip로 바꿔주고,
출발지 mac 주소 : 라우터 a mac주소
목적지 mac 주소 : 라우터 b mac 주소
해당 데이터는 라우터 b에게 보내지고,
같은 방식으로 멀리 떨어져 있는 많은 라우터를 거치면 구글의 웹서버가 설치된 컴퓨터에 도착한다.
구글 웹 서버의 lan카드에서 디지털 데이터로 복원하고,
이더넷 헤더와 ip 헤더를 보니 자시에게 도착한 데이터가 맞으므로
포트도 확인한다.
목적지 포트가 80번 포트이므로 해당 데이터를 웹 서버 애플리케이션으로 전달해준다.
웹 서버 애플리케이션은 여러분이 보낸 데이터를 확인한다.
내pc에서 보낸 데이터는 http get 메서드로 구글 메인 화면을 보여달라는 요청이다.
웹서버 애플리케이션은 구글의 메인 화면의 페이지 데이터를 http 사용해서 여러분에게 전송한다.
이러한 데이터는 앞서 거쳐온 똑같은 절차에 거쳐서 내 pc에 도착해, 구글 메인화면을 확인할 수 있다.