통신 장비 - 03. 네트워크 계층 Router

2021. 8. 21. 16:15

Intro

오늘은 드디어 Router에 대해 알아본다!

네트워크 계층

네트워크 계층은 송신측에서 수신측까지 패킷을 안전하게 전달하기 위한 계층이다.

논리적 주소인 IP를 보고 최종 목적지로 패킷을 포워딩 하게 된다.

장비로는 라우터, L3 스위치가 있으며, 프로토콜로는 IP, ARP, ICMP 등이 있다.

라우터 (Router)

라우터는 OSI 7계층의 네트워크 계층(Layer 3)에서 동작하는 장비로, 디바이스의 IP 정보를 인식하여 트래픽을 제어한다.

라우터에는 네트워크 대역으로 Routing Table이 생성되는데, 해당 네트워크에서 오는 트래픽을 어떻게 포워딩할지를 정의한다.

라우터를 사용해서 서로 다른 두 서브넷 사이에 패킷을 라우팅 하는 과정을 살펴본다.

라우터는 서로 다른 네트워크 사이에 통신이 가능하도록 한다. 다음과 같이 라우터를 기준으로 두개의 네트워크가 설정되었다.

라우터는 IP를 가지고 해당 네트워크 대역에서 오는 패킷을 포워딩한다. 따라서 라우터의 인터페이스에 연결된 네트워크의 gateway ip를 부여하는 작업이 선행되어야 한다.

Route 설정은 다음과 같이 진행했다.

Router>en

Router#show ip interface 
GigabitEthernet0/0 is administratively down, line protocol is down (disabled)
  Internet protocol processing disabled
GigabitEthernet0/1 is administratively down, line protocol is down (disabled)
  Internet protocol processing disabled
  
Router(config)#interface gigabitEthernet 0/0
Router(config-if)#no shutdown 
Router(config-if)#ip address 10.1.1.254 255.255.255.0
Router(config-if)#exit

Router(config)#interface gigabitEthernet 0/1
Router(config-if)#no shutdown
Router(config-if)#ip address 10.1.2.254 255.255.255.0
Router(config-if)#exit
  1. 처음에 물리 회선을 연결하면 인터페이스가 down 상태이다. no shutdown으로 이를 up 시킨다.

  2. 라우터의 인터페이스에 그 네트워크의 gateway ip를 등록한다. 단말 디바이스에 default gateway로는 네트워크에 따라서 각각 10.1.1.254와 10.1.2.254가 설정되어 있다. 이는 해당 네트워크 대역 안에서 목적지가 인식되지 않는 패킷이면 기본적으로 default gateway로 보내라는 뜻이다.

    C:\>ipconfig
    
    FastEthernet0 Connection:(default port)
    
       Connection-specific DNS Suffix..: 
       Link-local IPv6 Address.........: FE80::20B:BEFF:FEA9:3AA2
       IPv6 Address....................: ::
       IPv4 Address....................: 10.1.1.11
       Subnet Mask.....................: 255.255.255.0
       Default Gateway.................: ::
                                         10.1.1.254​
  3. show ip route 명령을 이용하면 인터페이스별로 등록한 ip와 대역이 확인된다. 지금은 라우터에 두개의 인터페이스 밖에 없기 때문에 딱히 정적 라우팅을 설정할 필요 없다.

    Router#show ip route
    Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
           D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
           N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
           E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
           i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
           * - candidate default, U - per-user static route, o - ODR
           P - periodic downloaded static route
    
    Gateway of last resort is not set
    
         10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
    C       10.1.1.0/24 is directly connected, GigabitEthernet0/0
    L       10.1.1.254/32 is directly connected, GigabitEthernet0/0
    C       10.1.2.0/24 is directly connected, GigabitEthernet0/1
    L       10.1.2.254/32 is directly connected, GigabitEthernet0/1​

위와 같이 설정하고, Server에서 PC3로 ping을 보냈다. 즉 10.1.1.12 -> 10.1.2.11으로 라우터를 거쳐서 패킷이 라우팅 될 것이다.

  1. 처음에 10.1.1.0/24 대역에서 ARP로 동일 네트워크에 broadcast를 보낸다. Server에서 다른 대역으로 ping을 보내면, Layer3에서는 목적지가 출발지와 동일 대역이 아님을 확인하고, L2에서 나가는 frame의 dest ip를 Server의 default gateway로 설정된다.

  2. ARP는 10.1.1.0/24에서 broadcast되며, 이중에서 dest IP를 만족하는 router의 gigabitEthernet0/0 인터페이스 mac을 switch에 기록하게 된다. 그리고 Server에 default gateway에 대한 mac 주소가 전달된다.

  3. 이제 Server는 자신이 보낼 라우터 인터페이스의 MAC을 알게 되었으니 두번째 요청부터는 ARP 없이 바로 ICMP를 보낼 수 있다. SRC ADDR(PC1) :0001.C930.7247 / DEST ADDR(router gw) :0000.0C58.9101

  4. 다시 보내진 ping은 스위치를 거쳐서 곧장 router로 찾아 들어간다. 이때 L3에서 CEF 테이블이라는거에서 실제 목적지 IP를 찾는다. 간단하게 생각하면 L2 dest MAC은 라우터의 인터페이스이나, L3 dest IP는 본래 목적지인 PC3이다.

    switch0 -> router
  5. 이렇게 라우터를 통해서 10.1.2.0/24로 넘어간 패킷은 이전과 동일한 원리로 PC2의 ICMP echo reply를 보낸다. PC3에서 나갈때 L3의 dest ip가 자신의 대역대가 아님을 감지하고 L2에서 자신의 default gw인 router의 인터페이스 MAC을 dest로 설정한다. 즉, L2 dest MAC은 라우터의 인터페이스이고, L3 dest IP는 본래 목적지인 Server이다.

  6. 라우터를 거친 패킷은 Server로 잘 반환되고, ping이 성공적으로 들어온다.

이번 실습을 통해서 L3에서 dest IP를 가지고 패킷을 어디로 보낼지 결정하는걸 볼 수 있었다.

정리하자면 출발지와 다른 네트워크로 트래픽을 보낼때, Layer 3 계층에서 라우팅 테이블을 참조하여 패킷을 포워딩한다.

만약 라우팅 테이블에 도착지 대역에 대한 정보가 없으면 라우터는 해당 패킷을 drop 시킬 것이다.

참고 문서

https://www.udemy.com/course/complete-networking-fundamentals-course-ccna-start/ 강의 일부

Last updated