11-01. NAT (Network Address Translation)
1-1. 방법
- ip 주소를 바꿔줘
- ip 주소랑 포트 넘버까지 바꿔줘야돼
- 왜냐하면 항상 같은 포트 쓸 수 있다는 보장이 없기 때문
- 바꾼 정보는 테이블에 저장
- NAT translation table
- WAN side addr
- LAN side addr
- 그럼 이 라우터를 통과하면 데이터에 출발지가 이 라우터 ip 주소로 바뀌어
- 다음 라우터는 응답을 받으면 이 라우터로 보내주겠지
- 그럼 이 라우터는 뭘 보고 원래 src 로 돌려보내줄 수 있을까
- 바로 데스티네이션 포트 번호 (데스티네이셔 ㄴip 주소는 모든 패킷이 똑같을테니)
- 이 포트가 다른게 wan side addr에 적혀있겠지..
문제점
- 이 테이블은 클라이언트가 요청을 보낼 때만 생성될 수 있기 때문에 서버 측면에서는 사용할 수 없습니다.
- 굳이 NAT 뒤에서 서버를 운영하고 싶다.
- ex) Web Server
- 10.0.0.2:7777
- 외부에서 접근 가능한 방법이 필요한데, 서버는 먼저 요청을 보내지 않기 때문에 NAT를 통과한 적이 없어서 NAT 테이블에 관련 정보도 저장되어 있지 않음
- 해결 방법 : 홀터칭
- NAT 에 변환 정보를 NAT 라우터에 “미리” 저장해 놓기
- 이렇게 하기 위해서 어떻게 하냐면 SKT에 전화해서 해달라고해? 해주겠냐? 퍼블릭하게 유니크한 기관(라잌 대학교)이 아니라면 개인적으로는 안해주겠지.
- 포트 번호를 마치 ip 주소 처럼 목적지 호스트를 찾는 용도로 사용했다는 점에서 진짜 포트를 지정할 필요가 있을 때 문제가 생길 수 있다.
- 근본적인 문제: 라우터가 패킷헤더에 적힌 필드 하나를 자기 맘대로 고쳤다는 거 심지어 캡슐화된 TCP 헤더인 포트넘버까지 고쳤음. 라우터는 네트워크 계층의 서비스인데 Transport 계층의 데이터를 조작했다. (비유하자면 님이 편지를 썼는데, 집배원한테 배달해달라 그랬더니 집배원이 편지봉투 목적지 이름 바꾸고, 편지 까가지고 편지 내용까지 고친거야)
11-02. DHCP (Dynamic Host Configuration Protocol)
- 정의
- Dynamically get address form as server
- plug and play
- 님들 IP 주소 받기 위해 어떤 행동을 해요? 안해요.
- 한양대 네트워크에서 지정해줄 수 있는 ip 주소가 매우 한정되어 있겠죠.
- 님들 여기 있다가 이디야 수원점에 있는 와이파이 쓰면 거기서 ip 주소가 또 달라지겠죠.
- 즉 여러분의 물리적인 위치와 IP 주소가 관련이 있다는 거예요.
- Configuration === 구성
- 어디서든 네트워크 접속할 수 있게 IP 주소를 구성해주는 프로토콜 이구나.
- 비유
- 여러분이 이디야 들어가서 노트북 뚜껑 열어
- DHCP discover: 나 아무것도 몰라요 도와줘요
- 모든 서버가 받음 근데 dhcp 포트 없어서 그냥 유실됨
- dhcp는 받아서 dhcp offer를 돌려줌
- DHCP 오퍼가 마음에 들면 정식으로 쓸게 하고 DHCP한테 응답함
- DHCP가 알겠다고 ack를 돌려주면 그때부터 통신이 가능해짐
- DHCP 서버가 제공하는 네트워크를 할 수 있는 최소한의 정보
- ip addr, subnet mask
- gateway router ip addr (최소한 우체통의 위치정도는 알아야!! 통신을 할거아냐)
- local name server IP addr
- 게이트웨이 라우터에 보통 local name server, NAT, DHCP 이거 세개가 같이 있어요