서론
오늘 다뤄볼 내용은 실제 패킷이 네트워크 상(LAN/WAN)에서 어떻게 전달되는지에 대한 내용을 적어보려고 한다.
Life of Packet
frame rewrite에 대한 내용을 읽고 싶은 분들은 글의 아래로 내려가서 확인하길 바란다.
ARP, MAC Table
설명을 위해 위와 같은 구성도에서 설명을 진행하도록 하겠다. 만약 192.168.55.10에서 192.168.55.11에 Ping을 날리다면 어떤 프로세스를 통해 나의 패킷이 전송될까?
우리가 느끼기에는 위와 같이 그냥 알아서 진행되는 것 같지만 그 안에서는 다양한 일이 발생한다.
먼저 MAC Address를 알기위한 ARP 과정이 발생한다.
ARP(Address Resolution Protocol)은 3계층 프로토콜로 LAN 상에서 IP와 MAC Address를 매핑해주는 역할을 한다.
55.10의 서버는 55.11의 MAC Address를 모르므로 ARP Request를 LAN 상에 브로드캐스팅한다.
해당 요청을 받은 장비들은 대상이 자신이 아니라면 해당 프레임을 폐기하고, 맞다면 ARP Reply를 송신한다.
위와 같이 해당 IP Address와 MAC Address를 매칭한 ARP Table이 생성된 것을 확인할 수 있다. ARP는 따라서 3계층 이상의 모든 장비에서 실행된다.
네트워크 장비가 통신할 때 7계층부터 1계층으로 1계층부터 7계층으로 통신된다는 것을 알고 있을 것이다.
7->6->5->4->3->2->1 계층 헤더 순으로 캡슐화(Capsulation)되고 1->2>3->4->5->6->7 순으로 역캡슐화된다.
위 사진은 Frame 헤더를 도식화 한 것이다. DST Address/SRC Address 부분에 정확힌 MAC Address가 작성된다.
따라서 55.10은 DST MAC Address 필드에 55.11의 MAC 주소를 입력하고 트래픽을 송신한다.
이러한 내용의 프레임을 수신한 SW1은 어떻게 작동할까?
SW는 2계층까지 밖에 헤더를 역캡슐화(Decapsulation)하지 못하는 장비이다. 따라서 프레임에 작성된 내용만 볼 수 있고 IP 정보를 읽어낼 수 없다. 따라서 ARP 대신 MAC Table이라는 것을 작성한다.
MAC Table은 LAN 상의 MAC 주소와 스위치 자신의 기준에서 해당 MAC이 어느 포트에 연결되어 있는지를 확인해준다. 이러한 MAC Table은 기본 5분 간격으로 갱신되며 이를 Aging Time이라고 한다.
따라서 스위치는 MAC Table을 참조하여 프레임의 DST MAC이 어느 포트에서 왔는지 확인하고 해당 포트로 프레임을 포워딩한다.
스위치에는 Learning, Flooding, Forwarding이라는 절차가 존재하며 이 과정을 통해 프레임을 전달하고 MAC Table을 작성한다.
스위치는 종단장치(PC)에서 발생한 프레임의 SRC MAC을 읽고 Learning한다. MAC Table에 해당 MAC과 전달되는 포트를 저장하는 것이다.
그 후 DST MAC 정보를 보았을 때 MAC Table에 해당 MAC에 대한 정보가 없다면 프레임을 Flooding(Broadcasting)하여 프레임을 전달시킨다. 그렇다면 브로드캐스팅을 통해 프레임을 전달받은 55.11은 다시 프레임을 55.10으로 전달하면서 스위치는 55.11의 MAC이 어느 포트에서 전달되는지 알 수 있다. (Learning 과정)
Frame rewrite?
Frame Rewrite는 LAN -> LAN으로 넘어갈 때 Frame에 작성되는 DST MAC과 SRC MAC을 변경하는 절차를 뜻한다.
Frame rewrite발생 이유
앞서 작성했던 내용을 다시 가져와야 겠다. 우리는 결국 7계층에서 1계층으로 1계층에서 7계층으로 전송하기 때문에 패킷을 전송하는 것이 아닌 프레임을 전송하는 것이다.
우리가 데이터를 전송할 때 IP헤더에는 SRC ADDRESS, DST ADDRESS 값이 들어가고 Frame에는 SRC MAC, DST MAC이 작성되어야 한다.
하지만 내가 송신하려는 목적지의 MAC을 알수는 없다. 따라서 Frame rewrite를 통해 LAN 구간에서 어느 MAC으로 통신을 해야지 대상까지 갈 수 있는지(Next-hop)에 대한 MAC을 작성하는 것이 Frame rewrite이다.
Frame rewirte 작동 방식
SVR1에서 SVR2까지 통신을 한다고 생각하자.
따라서 LAN에서는 DST MAC이 SVR2가 아닌 RT1이다.
RT1에서는 따라서 SRC MAC을 자신으로 DST MAC을 RT2로 바꾸어 전송한다. (여기서 라우팅의 개념이 생기는데 라우터가 라우팅 알고리즘을 통해 NEXT-HOP으로 지정한 라우터의 MAC이 DST MAC에 작성된다.)
이러한 동작이 반복되면서 결국 SVR1의 트래픽이 SVR2까지 도달할 수 있는 것이다.
'네트워크 > 네트워크 일반' 카테고리의 다른 글
NAS (0) | 2023.01.12 |
---|---|
ospf virtual link (0) | 2023.01.11 |
CBAC(context-based access control),Packet Tracer에서 해보는 방법 (0) | 2023.01.08 |
stateful inspection 상태 저장 검사 (0) | 2023.01.08 |
네트워크 보안 프로젝트 기록 (마셜 플랜 - DNS 공격을 이용한 시스템 침투 및 방어) (0) | 2023.01.06 |