L2 Switch

    

L2는 Mac 주소로 Switching한다.

    

    

$ipconfig /all

s1

나의 Mac 주소

    

    

어떤 PC가 한대에 LAN Cable이 꼽혔다고 생각해보면 이 LAN Cable이 L2 Access Switch와 연결된다. 또 다른 PC도 이 L2 Access Switch에 연결될 수도 있는데 그럼 이 PC 2대가 지들끼리 통신이 가능하다. (보통 안그러지.)

    

이 L2 Access Switch에서 또다른 선이 나와서 또다른 Switch로 넘어간다. 이 Switch는 L2 Distribution이라고 한다. L2 Distribution는 Switch를 위한 Swtich이다. 이 L2 Distribution Swtich에 다른 Swtich가 연결될 수 있다. 그리고 이 연결된 Swtich에 똑같이 PC 여러대가 연결될 수도 있을 것이다. 그럼 가장 처음의 Switch에서 Distribution Switch을 통해 다른 PC와 연결할 수 있을 것이다.

    

결국 L2 Access와 L2 Distribution의 가장 큰 차이는 무엇을 위한 Switch로 생각할 수 있다.

    

앞선 포스팅에서 Network 자체와 Network를 이용하는 이용주체를 구별했었는데 이용주체를 EndPoint라고 했었다. PC같은 Endpoint들이 Network를 처음만날때 가장 먼저 만나는 Switch가 L2 Access이다. 반면 L2 Distribution의 경우 PC와 바로 연결될 수도 있지만, 보통 L2 Access를 위한 Switch이다.

    

L2 Access의 경우 방 하나정도라고 하면 L2 Distribution은 건물 한 층이다. 이 L2 Distribution에서 Gateway, Router로 가고 Internet에 연결된다. Router(L3)는 건물로 생각하면 이해가 쉽다.

    

    

그리고 추가적인 용어로 트래픽이 Access Switch에서 더 넓은 세계인 Distribution으로 나갈때 타고가는 연결선을 UpLink라고 부른다. 네트워크를 공부하다보면 Link-up도 있고 Link-down이 있는데 의미가 전혀다르다. UpLink는 상위계층으로 연결되는 연결라인을 말하고 Link-up은 LAN Cable이 연결되면 들어오는 녹색불, 즉 연결되었다는 의미고 Link-down은 연결이 끊겼다는 의미이다. (서로 헷갈리지말것)

    

그리고 L2 수준에서는 MAC주소가 우선임을 되새기며 들어가보자.

    

s2

위 사진은 포트가 8개 있는 8Port 스위치허브이다.

이런 포트마다 MAC을 저장하게 되어있다. 그러니까 스위치 전원을 키면 스위치허브는 학습모드(learning mode)로 들어간다.

    

학습모드란 L2스위치가 있고 LAN Cable로 A,B,C가 Port로 연결되어있다고하면 A,B,C가 통신을 하며 L2 Ethernet Frame이 왔다간다한다. 이는 L2가 Switcing을 하는것으로 A, B, C가 통신할 때 L2가 읽게 된다. 이때 처음에 A가 B와 통신한다고 하면 A의 port#1에 어떤 컴퓨터가 있음을 알고 MAC 주소를 기억하게 된다. 이후 port#1을 지나서 port#2, C가 있다면 port#3으로 통신하게 된다. 이를 학습모드라고 한다.

    

만약 C가 A한테 정보를 보내려고 한다고치자, C에서 L2에 정보를 보내면 스위치허브가 port#1로 보낼지 port#2로 보낼지 Switing을 해야하는데 그때 port#1번에 A가 있다는 것을 이미 학습해서 알고있으니 port#2에 보내지않고 port#1에 바로 보내게된다.

    

    

Port 단자마다 MAC주소를 얼마나 저장할 수 있는지가 L2 Swtich의 하드웨어성능을 결정하는 스펙이 된다. 참고로 n개를 저장가능할 때 n개로 말하지 않고 주로 용량으로 말한다.

    

    

    

ARP 작동원리

ARP는 IP주소로 MAC주소를 알아내는 Protocol이다.

s3

위와 같이 네트워크가 구성되어있다고 해보자. 이 PC들은 www.naver.com에 접속하려고 한다.

    

자 그럼, PC#3의 전원을 껐다가 이제막 다시켰다고 가정해보자. Internet을 나가서 네이버에 도착하기 위해서는 당연히 L2 Frame이 게이트웨이까지 가야한다. 문제는 PC#3이 이제막 전원이 켜졌기 때문에 자신에게 게이트웨이로 설정되어있는 192.168.0.1라는 IP주소는 알지만 MAC주소를 모른다.

    

그럼 PC#3이 네트워크 전체에다가 “너네중에 IP주소가 192.168.0.1인게 있어?” 라는 QueryBroadcast방식으로 날린다. IP주소가 192.168.0.1이 아니면 응답을 당연히 하지않고 192.168.0.1인 게이트웨이는 응답을 해주는데 이땐 Unicast방식으로 “내가 192.168.0.1인데 내 MAC주소는 이거야!” 라고 날려준다.

    

그러니까 전원을 껏다키고 MAC주소를 모를때는 ARP 쿼리가 Request로 나가고 그에따른 Reply가 오게되며 MAC주소를 알게된다. 이때 중요한건 한번이라도 Request를 보내서 알아내면 Reply를 Memory에 저장 즉, 캐싱을 하게된다. 따라서 ARP Cache, 이걸 뒤져보면 어떤 컴퓨터에 어떤 MAC주소에 뭐가 어딨구나 등등을 알 수있다.

    

찾아볼 용어 : ARP spoofing