일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SpringBoot
- async
- 멀티쓰레드
- 인턴생활
- restful
- cmi
- 실검
- wooza
- 이커머스
- Gradle
- 자바
- 스트리밍서버
- 서버구축
- 네이버
- 이커머스 api
- 미디어서버
- RDB
- api설계
- AWS
- 라이브커머스
- API
- db 스키마
- DB 설계
- JPA
- 스프링
- autowired
- REST API
- @async
- mariaDB
- Spring
- Today
- Total
Polymor!
[네트워크] 스위치와 라우터 본문
오늘은 기본적인 네트워크 장비들에대한 소개와 우리가 실생활에 많이 쓰는 공유기(와이파이)의 원리를 이야기해보고자한다.
많이 보았을 그림이다. 네트워크 통신의 계층 구조이고, 복잡한 네트워크를 계층으로 구분하여 각기 할 일을 나누게 된 것이다.
Layer2 데이터 링크 계층의 대표 통신 장치로 스위치와 허브 등이있고, Layer3 네트워크 계층에는 라우터가 있다.
스위치는 mac 주소 기반으로 패킷을 전달하고 라우터는 ip주소를 기반으로 전달하는 가장 큰 차이점을 가진다.
참고로 IP단의 ARP 프로토콜은 MAC-IP 매핑 테이블로 IP주소로 MAC주소를 반환해주는 역할을 한다.
ICMP는 ping [주소] 명령어를 통해 네트워크 연결이 가능한 상태인지를 판단해주는 역할을 할때 쓰인다.
아래 그림을 살펴보면,
스위치는 기본적으로 보통 내부 사설 네트워크 망에 구성된다. 즉 스위치는 같은 네트워크 내에서만 데이터 통신이 가능하고, 외부 네트워크 망으로는 불가하다. 스위치는 mac table 기반으로 도착지를 알아내는데, 이때 찾을 수없다면 브로드 캐스팅으로 물려있는 모든 장치에 전송하고, 해당 장치가 응답을하면 mac table에 저장을 한다. 참고로 허브는, 스위치와 달리 메모리가 없어 mactable 개념이없다.
그래서 허브는 항상 모든 패킷을 브로드캐스팅하여 데이터를 전달하는 역할을 한다. 더불어 최적의 신호전달을 위해 100m내 UTP이더넷 케이블로 구성을 하고 감쇄된 신호를 증폭시켜주는 대표적인 LAN(사설 네트워크망) 통신 장비이다.
라우터는 ip기반 서로 다른 사설 네트워크 간의 통신을 하는 역할로 더 복잡한 방식으로 패킷의 도착지를 찾아내 최적으로 전달을 하게된다.
공유기에 대한 이야기를 잠시 해보자. 공유기는 AP(Access Point)이다. 많은 유저들이 한대의 무선 와이파이로 공유기 AP에 접속하여 인터넷을 사용한다. 이것에 기반한 기술적인 원리는 DHCP와 NAT이다. 하나의 공인 IP로 다수가(NAT) 사설 IP를 할당(DHCP) 받아 사용한다.
DHCP : Dynamic Host Configuration Protocol
쉽게 이야기하면, ip 프로토콜을 베이스로 하고 주 역할은 ' 동적으로 ip 주소를 부여하는 일'을 하게된다. 여기서 ip는 사설이될수도 광역이 될수도 있다. ISP로 제공받는 광역 ip주소 혹은 공유기가 뿌리는 사설 ip주소 등 모두 DHCP 서버의 역할이라고 보면된다.
아래 그림을 보면 현재 내 맥북(PC)은 무선랜으로 와이파이에 연결이 되어있고 공유기의 DHCP서버로 부터 사설 ip를 부여받아 인터넷에 연결이 되어있다. 오른쪽 사진처럼 Manually로 설정을 하면 사용자가 직접 ip를 부여할 수도 있게 된다.
부가적으로 네트워크 관련 된 사항을 설명해보자면,
192.XX.XX.XX는 C 클래스 네트워크이고,이는 보통 사설 네트워크 주소로 사용되는 범위이다. subnet mask가 /24범위이니 가장 마지막 숫자들로 네트워크를 구분짓고 있다는 것을 알수 있다. 즉 192.168.1.13과는 통신 불가이다!
Router 192.168.0.1은 아이피타임 공유기의 사설주소이며, isp로 할당받은 외부 주소는 아래와같이 39.XX.XX.XX 이다.
내 PC가 연결되어있는 게이트웨이 주소 (여기선 192.168.0.1) 를 브라우저로 접속하면 위와같은 관리자 창이 나오는걸 참고!
* 그럼 공유기는 스위치일까 라우터일까?
공유기는 AP(access point)로서 다수의 사용자가 하나의 공인ip를 사설ip로 나누어 가져 모두 인터넷에 접속하는 기능을 한다.
이를 NAT(Network Address Translation)이라고 표현하고, 라우터의 기능 중 하나이다. 이때 하나의 공인 ip에 여러개의 서로다른 사설 ip가 매핑되지만 충돌이 생기지않게 하기위해 서로다른 port 번호로 구분하는 방식을 택한다.(PAT; port address translation)
또한 스위치 허브의 역할로 포트 4~6개를 제공하여 내부 네트워크 장치를 구성하는 역할도한다. 그리고 공유기는 보통 내부와 외부를 연결하는 '게이트 웨이'(Gateway)의 역할을 하여 게이트웨이 주소도 함께 가지고 있는데, 게이트웨이는 라우터보다 상위단 L3 장비라고 생각하면 된다.
즉, 공유기는 라우팅의 NAT기능이 특화되고 게이트웨이 역할 + L2 스위칭 기능도 함께하는 장치라고 생각하자.
위와 같은 작업을 '포트포워딩'(Port Forwarding)이라고도 부른다.
공유기의 ip를 39.11.22.33 이라고 가정하자. 내부 사설 네트워크에 192.168.0.10을 부여받은 리눅스 서버가 있다.
이때 리눅스 서버는 22번 포트로 ssh 서비스를 실행한다고 하자.
이때 외부에서 170.20.10.1 이라는 ip를 가진 PC가 내부 리눅스 서버에접속을 하고자 할때 어떻게 해야할까?
우선 공유기는 이 둘을 중개하는 역할을 해야한다.또한 보통 외/내부 포트를 달리하는데, 보안상의 문제이다.
100퍼센트 답은 아닐 수있지만 내가 생각하는 프로세스는 아래와같다.
외부 172.20.10.1:66667(랜덤) ------>연결시도------> 공유기 39.11.22.33:1000
공유기 39.11.22.33:1000 ------>전달------> 내부서버 192.168.0.10:22
내부서버 192.168.0.10:22 -----> 응답 -----> 공유기 192.168.0.1:1000
'Infrastructure' 카테고리의 다른 글
내가 너무 일하기가 싫어서 ... 젠킨스 (1) (1) | 2022.03.09 |
---|