ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 13주차: Link) switch, VLAN
    교내 강의/컴퓨터 네트워크 2024. 6. 4. 23:23

    Switch:

    스위치는 링크 계층의 디바이스이며 ethernet frame을 저장하고 포워딩하는 역할을 한다.
    (incoming frame의 MAC 주소를 확인하고 outgoing link를 찾아 CSMA/CD를 이용해 내보낸다.)

    호스트는 switch의 존재를 모른다.

    switch는 plug-and-play방식이고 self-learning하기 때문에 따로 정의할 필요는 없다.

    스위치의 각각의 incoming link에는 ethernet protocol이 사용되어 충돌이 발생하지 않고 전이중 통신을 구현할 수 있다.
    (같은 destination으로는 불가능하다)


    Self-learning:

    스위치는 어느 인터페이스를 통해 어느 호스트로 도달할 수 있는지 학습한다.

    예시: A에서 A'로 패킷을 전송하는 경우

    우선 incoming LAN segment로 패킷을 보낸 호스트의 interface를 기록한다. (sender-location pair)

     

    Destination interface의 정보가 switch table에 있는 경우:

    패킷의 전송은 자신에게 보내는 경우와 남에게 보내는 경우가 있다.

    • 자신인 경우: switch는 패킷을 drop한다. 
    • 남인 경우: 맞는 interface로 forwarding한다.

    Destination interface의 정보가 switch table에 없는 경우:

    • 모든 interface로 flood한다. (broadcast)

    A'는 패킷을 받아서 ACK를 보낸다.

    이때 A'의 interface가 switch table에 기록된다.

    더보기

    실습을 해보자~

    A에서 G로 패킷을 보내는 경우 switch table들은 어떻게 기록될까?

    A->G로 갈 때, 각각의 switch에는 G에 대한 정보가 없기 때문에 전부 flood한다.

    S1 S2 S3 S4
    A, 2, TTL A, 1, TTL A, 1, TTL A, 1, TTL

    가는 동안 테이블은 다음과 같이 기록된다.

     

    G는 flood된 패킷을 받고 A에게 ACK를 보낸다.

    각각의 스위치 테이블은 A의 interface를 알고 있기 때문에 Unicast로 패킷을 전송한다.

    S1 S2 S3 S4
    A, 2, TTL A, 1, TTL A, 1, TTL A, 1, TTL
    G, 1, TTL   G, 2, TTL G, 3, TTL

    가는 동안 테이블은 다음과 같이 기록된다.

    S2스위치는 G->A 과정에서 거칠 필요가 없기 때문에 interface가 기록되지 않는다. (Unicast)


    Switch vs Router

    전부 Store-and-Forward 방식으로 Forwarding Table을 가지고 있다.

    • Router: Network Layer) 라우팅 알고리즘으로 table을 계산하고 IP주소를 사용한다.
    • Switch: Link Layer) flooding, self learning으로 table을 기록하고 MAC주소를 기록한다.

    *위 사진에서 각 기기가 패킷의 몇번째 layer까지 뜯어보고 수정하는지 확인하자.

     

    switch는 투명하다:

    host는 switch의 존재를 모르고 switch는 맞는 interface로 forwarding하는 역할만 한다.

    host는 destination Host로 패킷을 보낼 때 next-hop 라우터의 MAC주소를 명시하고,

    라우터를 거치며 frame의 목적지 MAC주소는 계속 바뀐다.


    VLAN(Virtual Local Area Network)

    왜 생겼나?

    앞서 알아보았던 ARP나 DHCP 프로토콜은 브로드캐스트 메시지가 빈번히 발생한다.

    만약 LAN 환경이 커지면 broadcast시 수 많은 컴퓨터에게 불필요한 메시지를 전송하게 되고,

    그에따라 오버헤드가 크게 발생하고, 성능 측면에서 비효율적이고, 보안문제 역시 발생할 수 있다.

    따라서 LAN 환경을 분할하여 여러 개의 브로드캐스트 도메인을 만들고자 하는 필요성이 생겼다.

     

    Port-based VLAN:

    하나의 스위치에서 port번호로 그룹을 나눈다. (독립적인 두개의 switch처럼 기능한다.)

    이런 방식으로 스위치를 나누면 트래픽을 분할 할 수 있어 브로드캐스트 등에 유리하다.

    dynamic membership: VLAN 간에 동적인 포트 할당 이 가능해진다

    *두개의 VLAN은 라우터를 거쳐 패킷을 주고 받는다.

    그리고 각각의 VLAN 상에는 trunk port 라는 특별한 포트가 있는데, 이 포트는 다른 VLAN 간에 오가는 frame을 carry 한다.

    Trunk Port: 여러개의 물리적인 switch간 정의된 VLAN끼리 frame을 주고 받을 수 있게 한다.

        802.1.q 프로토콜을 사용한다.

    type부분에서 0x8100일 경우 VLAN인것을 알 수 있다.

    *이더넷에서 type필드 뒤에 12비트의 VLAN ID 필드가 추가된다

Designed by Tistory.