본문으로 바로가기
반응형
본 게시글은 'PC모드'에서 보시면 화면이 잘리지 않고 정상적으로 보실 수 있습니다.

VLAN (Virtual LAN)간의 Routing, Inter-VLAN

앞서 VLAN에서 정리했듯이 VLAN을 설정함으로써 브로드캐스트 영역 안의 속도 향상불필요한 브로드캐스팅 방지, 보안 향상등을 가질 수 있으나. 다른 VLAN간으로는 통신이 불가능하다. 그러나 VLAN간의 Routing을 하게 된다면 서로 다른 VLAN간의 통신이 가능하게 된다. 이것을 Inter-VLAN이라고 한다. 위의 Topology 처럼 Router R4를 SW1에 연결하고, Router R4의 Interface f0/0을 논리적으로 분할하여 VLAN을 각각 할당시켜준다. 이처럼 하나의 물리적인 Interface에 여러 개의 VLAN을 소속시키는 것Trunking(트렁킹)이라고 한다.


  • 참고 Topology

기본 설정, 및 IP 설정은 생략.


R4에서 Subinterface를 만들고 VLAN 및 IP 주소를 할당시켜준 다음, SW1의 e2/0 포트에 트렁크를 지정해준다.

Subinterface(서브인터페이스)논리적으로 분할된 각 인터페이스를 말하며, Trunk(트렁크)란 서로 다른 VLAN이 통신하는 통로 이야기한다.
R4(config)#int f0/0.10
R4(config-subif)#encapsulation dot1Q 10 
R4(config-subif)#ip address 1.1.10.254 255.255.255.0
R4(config-subif)#exit
R4(config)#
R4(config)#int f0/0.20
R4(config-subif)#encapsulation dot1q 20
R4(config-subif)#ip address 1.1.20.254 255.255.255.0
R4(config-subif)#exit
R4(config)#

SW1(config)#interface e2/0
SW1(config-if)#switchport trunk encapsulation dot1q
SW1(config-if)#switchport mode trunk
SW1(config-if)#exit
SW1에서 설정할 때 바로 switchport mode trunk를 입력하면 "Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode." 라는 오류가 뜨면서 포트 모드 설정이 거부가 된다. 이유는 Encapsulation 방식이 기본적으로 Auto로 되어있기 때문에 Encapsulation Mode를 지정해주지 않으면 트렁크 포트로 설정 할 수가 없기 때문이다. 고로 ⑴trunk의 인캡슐레이션을 dot1q로 설정해 준 뒤에 ⑵trunk port로 지정해줘야 정상적으로 설정이 된다.

설정 후 각 Router의 Gateway 주소를 Default Routing으로 지정해준다.

R1(config)#ip route 0.0.0.0 0.0.0.0 1.1.10.254
R2(config)#ip route 0.0.0.0 0.0.0.0 1.1.10.254
R3(config)#ip route 0.0.0.0 0.0.0.0 1.1.20.254 // R3는 VLAN 20이므로 20.254

최종 설정이 끝난 후 VLAN 10 소속의 R1에서 VLAN 20 소속의 R2로 Ping을 날리면 정상적으로 날려지는 것을 확인할 수 있다.

R1#ping 1.1.20.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.20.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/52/72 ms


Inter-VLAN간의 Routing 동작 방식

VLAN ID 10인 R1에서 다른 VLAN ID 20인 R4로 Ping을 보낼 때 이뤄지는 절차와 방식을 확인해본다.



1. R1(1.1.10.1)에서 R3(1.1.20.3)로 Ping을 날리면 서로 다른 브로드캐스트 도메인에 소속되어있기 때문에 R1은 GatewayR4(f0/0.10) (1.1.10.254)의 MAC Address를 찾는 ARP Packet을 보낸다.


2. R4(f0/0.10) (1.1.10.254)의 MAC Address를 찾는 ARP Packet을 받은 SW1은 동일 VLAN(VLAN 10)에 소속 된 모든 포트(e1/2, e2/0[각주:1])로 Flooding한다.


3. SW1의 Flooding을 통해서 R4(f0/0.10) (1.1.10.254)의 MAC Address를 찾는 ARP Packet을 받은 R4는 R1에게 응답하여 R1은 R4의 MAC 주소를 알게 된다.


4. R1은 다시 한 번 목적지가 1.1.20.3인 L3 패킷[각주:2]을, 그대신 R4(1.1.10.254)의 목적지 MAC Address가 써져있는 L2 헤더를 붙여서 Ping Request Packet을 보낸다.


5. R4는 R1에서 목적지가 자신의 MAC Address로 되어있는 Ping Request Packet을 수신한 후 붙어있는 L2 헤더를 제거한다. 헤더를 제거한 후 L3 헤더를 확인한 R4는 목적지가 자신이 아닌 1.1.20.3이라는 것을 알게된다.

※ 이처럼 라우터프레임을 수신하면 L2 헤더를 제거하고 새로운 것(패킷)으로 대체한다.

6. R4는 R3(1.1.20.3)의 MAC Address를 알아내기 위해서 VLAN 20으로 R3 ARP Request Packet을 전송한다. 이 때는 R4가 중간 전달자가 되므로 출발지 MAC Address가 R1이 아닌 R4의 MAC 주소가 된다.


6-1. R3의 MAC Address를 찾는 ARP Packet을 받은 SW1은 동일 VLAN(VLAN 20)에 소속 된 모든 포트Flooding한다.


7. SW1의 Flooding을 통해서 R4 장비가 보낸 ARP Request Packet을 받게 된 R3는 자신의 MAC Address를 Gateway인 R4에게 ARP Reply Packet으로 응답하여 R4는 R3의 MAC 주소를 알게 된다.


9. R4는 출발지, 목적지 IP는 유지한 채 출발지 MAC Address를 자신의 R4의 MAC Address로, 목적지는 R3의 MAC Address로 Ping Request Packet을 재조립하여 R3에게 전송한다. (앞의 출발지, 목적지 IP는 바뀌지 않는다.)


10. Ping Request Packet을 받은 R3는 출발지 MAC Address, 자신의 IP Address로 설정된, 목적지는 자신의 MAC Address, R1의 IP Address로 된 Ping Reply Packet을 R4에게 전송한다.


11. R4는 출발지 MAC Address를 자신의 Mac Address로, 목적지 MAC Address는 R1의 MAC Address로 대체하여 Ping Reply Packet을 R1에게 전송한다.

출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.20.3

R1 MAC Add.

FFFF.FFFF.FFFF

R4 ARP



Flooding By VLAN 10


R1 MAC Address Table

R4 MAC Address


출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.20.3

R1 MAC Add.

R4 MAC Add.

Ping Req.



출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.20.3

DELETE

DELETE

Ping Req.



출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

VLAN 20

1.1.10.1

1.1.20.3

R4 MAC Add.

FFFF.FFFF.FFFF

R3 ARP




Flooding By VLAN 20


R4 MAC Address Table

R3 MAC Address



출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.20.3

R3 MAC Add.

R4 MAC Add.

Ping Req.



출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.20.3

1.1.10.1

R3 MAC Add.

R4 MAC Add.

Ping Reply



출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.20.3

1.1.10.1

R4 MAC Add.

R1 MAC Add.

Ping Reply


즉, 앞의 L2 HeaderGateway가 변경(중재 역할)하되 L3 Header는 변경하지 않고 그대로 유지하는 것이다.


같은 VLAN 내부의 Routing 동작 방식

VLAN ID 10인 R1에서 같은 VLAN 10인 R2로 Ping을 보낼 때 이뤄지는 절차방식을 확인해본다.



1. R1(1.1.10.1)에서 R2(1.1.10.2)로 Ping을 날리면 서로 같은 브로드캐스트 도메인에 소속되어있기 때문에 R1은 직접 R2(1.1.10.2)의 MAC Address를 찾는 ARP Packet을 보낸다.


2. R2(1.1.10.2)의 MAC Address를 찾는 ARP Packet을 받은 SW1은 동일 VLAN에 소속 된 포트(e1/2)로 Flooding한다.[각주:3]


3. Flooding된 ARP Request Packet을 받은 R2는 R1에게 응답하여 R1은 R2의 MAC 주소를 알게 된다.


4. R1은 다시 목적지가 R2(1.1.10.2)인 MAC Address가 써져있는 Ping Request Packet을 보낸다.


5. Ping Request Packet을 받은 R2같은 브로드캐스트 도메인에 소속R1에게 바로 Ping Reply Packet을 보낸다.

출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.10.2

R1 MAC Add.

FFFF.FFFF.FFFF

R2 ARP



Flooding By VLAN 10


R1 MAC Address Table

R2 MAC Address


출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.10.1

1.1.10.2

R1 MAC Add.

R2 MAC Add.

Ping Req.


출발지 IP

목적지 IP

출발지 MAC

 목적지 MAC

Inform.

1.1.20.3

1.1.10.1

R4 MAC Add.

R1 MAC Add.

Ping Reply


즉, 동일한 VLAN에 소속되어있는 장비들간의 통신은 트렁킹 라우터를 거치지 않고 두 장비 간 직접 통신이 이루어진다.


  1. 트렁크 포트는 모든 VLAN에 소속되어있다. [본문으로]
  2. PING은 3 Layer Packet이다.. [본문으로]
  3. 1번에서 직접 찾는 패킷을 보냈으므로 Trunking Port가 소속되어있는 R4로는 Packet이 전달되지 않는다. [본문으로]
반응형

댓글을 달아 주세요