1. 케이블의 앞은 LAN 기기였다
케이블과 리피터, 허브 속을 신호가 흘러간다
- 패킷의 헤더에 기록된 제어 정보로 목적지를 판단해 목적지로 패킷을 중계
- 내부의 데이터 부분은 보지 않고 목적지 주소만 보고 패킷을 중계
⇒ 모든 패킷은 아무 관련도 없는 별개의 것으로 간주하고 목적지를 향해 중계됨
라우터의 패킷 중계 동작
- 라우터 = 중계 부분 + 포트 부분
- 중계 부분 : 패킷의 중계 대상을 판단하는 동작을 담당 (like IP 담당 부분)
- 포트 부분 : 패킷을 송수신하는 동작을 담당 (like LAN 어댑터)
- 라우터의 각 포트에는 MAC 주소와 IP 주소가 할당되어 있음
- IP주소
- 라우터는 IP 주소로 중계 대상을 판단
- 라우팅 테이블 (경로표) : 라우팅 테이블의 수신처의 정보(IP주소)와 수신한 패킷의 수신처 IP 주소를 비교하여 패킷을 중계
- MAC주소
- 라우터는 자신의 MAC주소에 해당하는 패킷만 수신하고 해당하지 않는 패킷은 폐기
- 수신이 끝나면 맨 앞의 MAC 헤더를 제거
- IP주소
- 라우터의 경로표에서 넷마스크 항목이 0.0.0.0인 행은 기본 경로를 나타냄
통신 상대까지 패킷을 전달하는 전체의 동작은 IP(라우터)가 담당하고, 이 동작을 할 때 다음 라우터까지 패킷을 운반하는 부분은 이더넷(스위칭 허브)가 담당
2. 라우터의 부가 기능
- 라우터의 주요 두 가지 기능 : 주소 변환, 패킷 필터링
1. 주소 변환
- 주소 변환 : 패킷을 중계할 때 IP헤더에 기재된 IP주소와 포트번호를 바꿔쓰는 것
- private IP : 어떤 그룹 내에서만 사용하는 IP 주소
- 특별한 구조를 가진 것이 아니라 원래 퍼블릭 주소에서 사용하던 것 중 범위를 정해서 그룹 내에서만 사용하기로 약속한 것
- 일원화하여 관리하지 않으므로 신청할 필요가 없고 누구나 자유롭게 사용 가능
- 단, 그룹 내에서 중복은 안 됨
- public IP ⇒ IP 부족 문제를 해결하기 위해
- 내부에서 외부로 액세스하는 경우
- 최초로 흐르는 패킷을 중계할 때 송신처의 IP 주소를 private IP에서 public IP(주소변환장치의 인터넷측에 있는 포트에 할당된 주소)로 바꿈과 동시에 포트번호(미사용 번호를 적당히 선택하여 사용)도 바꿈
- 바꿔쓰기 전의 private IP 주소와 포트 번호, 바꿔쓴 후의 public IP 주소와 포트번호를 한 세트로 하여 주소 변환 장치 내부의 대응표에 기록
- 해당 패킷을 송신 후 회신 패킷이 돌아오면 회신 패킷의 수신처에서 바꿔쓴 public IP와 포트번호를 가지고 대응표에서 private IP와 포트 번호를 찾아 바꿔씀
- 모든 데이터 송수신이 끝나고 연결 끊기 동작을 해 접속 동작이 끝나면 대응표에 등록해둔 것 삭제
- 포트 번호를 바꿔쓰는 이유
- 포트 번호를 바꿔쓰지 않으면 private IP와 public IP가 1대 1로 대응해서 인터넷에 접속하는 대수만큼 public IP가 필요 ⇒ 이 점을 개선하기 위해 포트 번호 바꿔쓰기가 고안됨
- 클라이언트 측의 포트 번호는 원래 비어있는 것이어서 무작위로 선택해도 문제 발생 X
- 포트번호를 바꿔쓰면 한 개의 public IP를 수만 개의 private IP에 대응시킬 수 있으므로 훨씬 이용 효율이 높아짐
- 외부에서 내부로 액세스하는 경우
- 내부에서 외부로 액세스하는 경우와는 다르게 private IP와 포트 번호가 대응표에 등록되어 있지 않아 중계를 할 수 없음 ⇒ 내부에서 의도적으로 외부에 액세스하지 않는 한 외부에서 내부에 패킷을 보낼 수 없음(부정 침입 방지 효과)
- 외부에서 내부로 액세스하려면 사전에 수동으로 대응표에 등록해두어야 함
2. 패킷 필터링
- 패킷을 중계할 때 MAC 헤더, IP 헤더, TCP 헤더에 기록되어 있는 내용을 조사하여 그것이 사전에 설정한 조건에 합치되면 패킷을 중계하거나 폐기되는 동작을 실행
- 대부분의 방화벽이나 소프트웨어는 이 원리를 이용하여 부정 침입을 방지함