요즘 계속 뭔가 하나씩 연결이 되는 상황이 많다. 그래서 기분이 좀 좋다. 몰랐던 것을 조사하면 이전의 학습했던 것들이 쭉 이어진다. 오늘도 마찬가지이다.
라우터란?
라우터는 패킷의 위치를 추출하여, 그 위치에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전향시키는 장치이다. 즉, 라우터는 이름 그대로 네트워크와 네트워크 간의 경로를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 네트워크 장비이다. 그냥 공유기라 생각하면 된다.
이 라우터에는 단자를 꼽는게 크게 두가지로 볼 수 있는데
그것이 바로 WAN과 LAN이다.
WAN
WAN은 Wide Area Network의 줄임말로 한 집마다 인터넷 회선이 있는데 그것을 WAN으로 생각하면 되겠다. 광범위한 지역 단위로 구성하는 네트워크이다.
이 회선을 가지고 집이나 사무실의 네트워크를 구성한다.public IP
이다.
LAN
LAN은 Local Area Network로 사용자가 포함된 지역 네트워크이다. 랜랜 거리는 것이 바로 이 LAN이다.
사무실에는 예를 들면 내선전화가 있고 집에서는 공유기를 통해 Wi-Fi나 이더넷으로 연결한 기기들이 다 LAN으로 구성이 되어있다. 그래서 구성할 때 드는 비용과 전기세를 빼면 유지보수비가 들지 않는다. private IP
이다.
라우터를 쓸 때에는 이 자체에도 IP주소가 붙게된다.
인터넷을 실행시키는 순서는 다음과 같다.
컴퓨터에서 웹 브라우저를 킨다. 그리고 도메인명을 입력해서 그 주소에 해당하는 자료를 요청하면 화면이 나오게 되는데
이것을 우리가 배운것으로 설명하자면...
내 private IP
를 라우터가 받는다. 여기서 NAT가 등장하는데 이 뒤에서 설명하도록 하겠다. 공유기가 하는 일은 여기서 두 가지 이다.
- 어떤 IP가 도메인명을 요청하는지 내부에서 자체적으로 확인 후 기억
- NAT가 요청한 데이터를 변경 ex) 192.168.0.xx 를
WAN(public IP)
으로 주소를 변경해서 요청(request)한다.
이렇게 되면 그 도메인은 WAN주소에 응답(response)하고 데이터를 전달해준다. 그러면 WAN에서 다시 공유기로 받은 데이터를 가져온다.
여기서 공유기가 아까 했던 두번째를 다시 바꿔주는데
이제 WAN을 LAN으로 변경해준다. 그렇게 한 뒤에
첫번째로 했던 일인 private IP를 기억해내서 해당 IP에 WAN으로 부터 넘어온 데이터를 넘겨준다.
이런식으로 인터넷으로 소통을 하는것이다.
NAT
NAT는 Network Address Translation이다. IP 패킷에 있는 출발지 및 목적지의 IP주소와 TCP/UDP 포트 숫자 등을 바꿔 재기록하며 네트워크 트래픽을 주고 받게하는 기술이다.
NAT가 있어서 내가 가지고 있는 하나의 공인 IP주소(private IP)를 사용하여 여러 대의 호스트가 인터넷에 접속할 수 있다.
그래서 LAN으로 묶여있는 기기들은 전부 같은 공인 IP주소를 사용한다.
포트 포워딩
0~ 65535 포트까지 있음
22 - SSH
80 - http
1023까지 well-known port
127.0.0.1:8080 ==> 저 ip주소에 8080포트로 서버를 연결해달라는 의미
근데 여기서 문제는 192 사설포트가 여러개일 경우에 해당하는 서버로 매칭시켜주는 것이 포트가 필요한 이유이다.
공인ip:포트 접속요청이 오면 내부에서 192.168.0.x:포트 로 보내는것
여기서 라우터의 nat설정을 바꿔야한다.(라우터가 없을때는 그냥 localhost = 128.0.0.1)
외부포트 -> 공인ip:요청포트
내부포트 -> 설정한 사설ip:요청포트
동적 IP - 계속 값이 변화하기 때문에 지속적인 연결을 하려는데에 제한이 있다.
대신 보안에는 좋을 듯?
고정 IP - 지속적인 연결에는 좋을것, 하지만 보안에는 상대적으로 취약할 수 있다.
네트워크의 기초 개념들을 학습중인데 다시 보니까 이해가 더 잘되는 것같다. 이렇게 공부하고 그냥 아니까 지나가자 가 아니라 다시 한번 와서 개념들을 복습하는게 훨씬 좋은 것이라고 생각한다.🤣🤣
mybatis나 ibatis의 db 매핑정보에서 url주소를 192.168인 내부IP, 그리고 127.0.0.1(localhost) 종류를 많이 사용했고 실제 배포할 때에는 외부 IP를 사용하여 데이터베이스 정보를 잘 매핑시켜야 배포도 원활하게 진행이 되는 것이다. 다음에 서버를 구매하여 배포를 할 때에는 이점을 명시하고 잘 배포해보아야 겠다.