Trong mạng, Router sẽ dùng để phân chia miền quảng bá và các Switch (ơ lớp 2) hoạt động trong một miền quảng bá duy nhất. Tuy nhiên, Switch có thể sử dụng VLAN để phân chia miền quảng bá thành nhiều VLAN khác nhau. Theo đó, VLAN là một miền quảng bá. Tức là các thiết bị như máy tính thuộc một VLAN riêng biệt chỉ có thể giao tiếp với nhau mà không thể giao tiếp với các thiết bị khác.
Lúc này, nếu muốn liên lạc giữa các thiết bị giữa các VLAN khác nhau, ta sẽ cần quá trình định tuyến giữa các VLAN và quá trình này được gọi là Inter VLAN Routing hoặc viết tắt là IVR. Để định tuyến giữa các VLAN, ta cần thông qua một bộ định tuyến hoặc Switch Layer 3. Hiện nay có 3 cách để thực hiện quá trình định tuyến giữa các VLAN gồm:
- Định tuyến VLAN truyền thống.
- Định tuyến VLAN theo cách Router-On-A-Stick (Sử dụng 1 cổng trên Router)
- Định tuyến VLAN dựa vào Switch Layer 3.
Sau đây, chúng ta sẽ đi tìm hiểu chi tiết từng cách để thực hiện Inter-VLAN Routing:
Định tuyến VLAN theo cách truyền thống
Theo cách này, ta sẽ sử dụng một Router và kết nối với Switch qua nhiều cổng. Mỗi cổng cấu hình cho một VLAN cụ thể. Các cổng trên Router sẽ được thiết lập là các cổng mặc định cho các VLAN tương ứng được cấu hình trên Switch.
Khi một thiết bị từ VLAN này kết nối với VLAN khác, gói tin chuyển từ thiết bị đến cổng truy cập kết nối với Router tương ứng VLAN mà thiết bị kết nối. Router nhận được gói tin, nó kiểm tra địa chỉ IP đích của gói tin và chuyển tiếp đến mạng đích bằng cổng truy cập tương ứng của VLAN đích.
Switch nhận được gói tin sẽ chuyến tiếp khung tới thiết bị đích vì Router đã đổi thông tin VLAN từ VLAN nguồn sang VLAN đích.
Cách này rất đơn giản nhưng yêu cầu Router phải có số cổng bằng với số lượng VLAN cấu hình trên Switch. Do đó, nếu Switch có 10 VLAN thì Router cũng cần 10 cổng để thực hiện kết nối định tuyến dữ liệu. Do đó, cách này thường không được sử dụng.
Ví dụ minh họa:
Trong sơ đồ trên ta có các thông tin như sau:
- Ta có 2 máy chủ A và B, 1 bộ chuyển mạch và 1 Router.
- Ta có 2 mạng gồm VLAN 10 và VLAN 20.
Theo cách truyền thống, ta sẽ sử dụng 2 kết nối giữa Router và Switch để đặt định tuyến cho từng VLAN một. Các thông số chi tiết về giao diện và địa chỉ IP theo trên hình.
Khi đó nếu máy chủ A muốn gửi tin nhắn đến máy chủ B, quá trình định tuyến sẽ diễn ra như sau:
- Máy chủ A kiểm tra địa chỉ IP của gói tin xem có nằm trong VLAN 10 (VLAN của máy chủ A). Nếu không, gói tin chuyển tiếp đến cổng mặc định trên Router (cổng Fa0/0).
- Máy chủ A gửi yêu cầu ARP đến Swithc để tìm địa chỉ MAC của giao diện Fa0/0 trên Router. Đợi Router trả lời, máy chủ A gửi khung đến Router dưới dạng tin nhắn Unicast.
- Máy chủ A kiểm tra xem địa chỉ IP đích có nằm trong VLAN của nó hay không; nếu không, lưu lượng sẽ được chuyển tiếp đến cổng mặc định của nó trên giao diện Fa0/0 trên bộ định tuyến.
- Khi Router nhận được Frame nó xác định địa chỉ IP và cổng tương ứng từ bảng định tuyến.
- Sau đó, Router gửi yêu cầu ARP đến giao diện được kết nối với VLAN đích (VLAN 20), tương ứng Fa0/1 trên Router.
- Switch nhận được yêu cầu ARP nó chuyển tiếp đến các cổng và ghi nhận địa chỉ máy chủ B bằng địa chỉ MAC của nó.
- Sau đó, Router nhận được thông tin về máy chủ B và chuyển tiếp gói tin đến máy chủ B trên VLAN 20 dưới dạng tin nhắn Unicast qua bộ chuyển mạch.
Hướng dẫn cấu hình
Dưới đây là cấu hình chi tiết cho ví dụ trên:
– Đầu tiên ta sẽ cần phải tạo các VLAN 10 và 20 trên Switch:
Switch# conf t
Switch(config)# vlan 10
Switch(config-vlan)# name quan-tri
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name kinh-doanh
Switch(config-vlan)# exit
– Tiếp theo, ta sẽ cần gán VLAN tương ứng cho các cổng Switch:
Switch# conf t
Switch(config)# interface fa0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)# exit
Switch(config)# interface fa0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)# exit
– Cuối cùng, ta cần định cấu hình địa chỉ IP trên Router:
Router# conf t
Router(config)# interface fa0/0
Router(config-if)#ip address 192.168.10.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)# interface fa0/1
Router(config-if)# ip address 192.168.20.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)# exit
Router# copy running-config startup-config
Định tuyến VLAN theo cách Router-On-A-Stick
Theo cách này, một router được kết nối với switch thông qua một cổng và cổng này được cấu hình để hoạt động như một cổng trunk, có khả năng truyền thông tin của nhiều VLAN qua cùng một kết nối.
Phần mềm Router sẽ cho phép cấu hình nhiều cổng ảo trên cùng một cổng vật lý, mỗi cổng phụ ảo được kết nối để liên kết với một VLAN trên Switch và được cấu hình địa chỉ IP riêng. Bảng giao thức 802.1Q, lưu lượng qua cổng Trunk trên Router sẽ được gắn thẻ TAG để cho phép truyền lưu lượng từ nhiều VLAN trên cùng 1 cổng kết nối vật lý.
Phương pháp này khắc phục được hạn chế của phương pháp định tuyến VLAN truyền thống và cũng là phương pháp được sử dụng chủ yếu hiện nay để định tuyến VLAN qua Router.
Ví dụ minh họa
Trong sơ đồ trên ta có một mạng gồm:
- 2 máy chủ A và B, 1 Router và 1 Switch
- Ta có 2 VLAN 10 và 20, trong đó: máy chủ A thuộc VLAN 10 và máy chủ B thuộc VLAN 20.
Các thông tin về địa chỉ IP được thể hiện chi tiết qua sơ đồ mạng.
Theo cách Router-on-a-stick, ta sẽ cấu hình một đường Trunk giữa Router và Switch, trên Router ta sẽ tiến hành cấu hình 2 giao diện phụ ảo tương ứng với VLAN 10 và 20 để định tuyến giữ liệu. Theo đó, nếu Máy chủ A gửi tin tới máy chủ B thì quá trình sẽ diễn ra như sau:
- Máy chủ A gửi tin nhắn dưới dạng Unicast tới Switch.
- Switch gắn thẻ TAG VLAN 10 và truyền tiếp theo đường tTrunk tới Router.
- Router nhận lưu lượng với thẻ TAG VLAN 10 và định tuyến đến VLAN 20 bằng giao diện con đã cấu hình tương ứng.
- Gói tin sẽ được gắn thẻ TAG VLAN 20 và gửi từ giao diện phụ tương ứng tới Switch.
- Switch nhận gói tin và loại bỏ thẻ TAG và tiếp tục chuyển đến máy chủ B qua cổng Fa0/3.
Hướng dẫn cấu hình
Để thực hiện ví dụ trên ta cần phải cấu hình như sau:
– Tạo VLAN 10 và 20 trên Switch:
Switch# conf t
Switch(config)# vlan 10
Switch(config-vlan)# name Marketing
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name kinh-doanh
Switch(config-vlan)# exit
– Gán VLAN vào các cổng tương ứng và tạo đường trunk trên Switch:
Switch#conf t
Switch(config)# interface fa0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config)# interface fa0/3
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config)# interface fa0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)# exit
– Cấu hình địa chỉ IP trên Router:
Router# conf t
Router(config)# interface fa0/1.10
Router(config-subif)# encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.10.1 255.255.255.0
Router(config)# interface fa0/1.20
Router(config-subif)# encapsulation dot1Q 20
Router(config-subif)# ip address 192.168.20.1 255.255.255.0
Router(config)# interface fa0/1
Router(config-if)# no shutdown
Định tuyến VLAN bằng Switch Layer 3
Theo cách này, ta sử dụng một loại Switch đặc biệt gọi là Multiplayer Switch hoặc Switch Layer 3 để thực hiện định tuyến VLAN mà không cần sử dụng Router chuyên dụng. Switch Layer 3 là loại bộ chuyển mạch kết hợp tính năng định tuyến của router và hoạt động cả 2 tầng 2 và 3 của mô hình OSI. Nó có thể sử dụng các giao thức định tuyến như RIP, OSPF để thực hiện định tuyến giữa các VLAN và mạng con.
Switch L3 sẽ sử dụng các giao diện logic ảo hay còn được gọi là SVI để liên kết cho mỗi VLAN. Một SVI sẽ định tuyến kết nối với 1 VLAN. Nó cũng được cấu hình với địa chỉ IP tương ứng với các VLAN trên Switch. Các SVI đảm bảo chuyển tiếp thông tin giữa các VLAN mà ko cần Router hay liên kết Trunk phức tạp.
Ví dụ minh họa
Giờ ta sẽ đi vào một ví dụ cụ thể với sơ đồ mạng như sau:
- 2 máy chủ A và B, 1 Switch L2 và 1 Switch L3 và 1 Firewall.
- Ta có 2 VLAN 10 và 20, trong đó A thuộc VLAN 10 và B thuộc VLAN 20.
Các thông số chi tiết về địa chỉ IP, mạng được biểu thị qua sơ đồ. Bây giờ, để định tuyến ta sẽ sử dụng 1 kết nối trunk giữa Switch L2 và L3. Ta tạo các SVI để gán với VLAN cụ thể. Ví dụ như máy chủ A muốn gửi tin đến máy chủ B thì quá trình diễn ra như sau:
- A gửi gói tin dưới dạng Unicast đến Switch L2.
- Switch L2 nhận được gói tin và gắn thẻ TAG VLAN 10 rồi chuyển tiếp tới Switch L3 qua đường liên kết Trunk.
- Switch L3 nhận được gói tin và loại bỏ thẻ TAG rồi chuyển tiếp sang giao diện SVI tương ứng với VLAN 10.
- Switch L3 tiếp tục định tuyến lưu lượng đến SVI tương ứng của VLAN 20 và gắn thẻ TAG VLAN 20 gửi tới Switch L2.
- Switch L2 loại bỏ thẻ TAG và chuyển tiếp đến máy chủ B qua cổng Fa0/3.
Hướng dẫn cấu hình
Để cấu hình cho ví dụ trên ta sẽ cần phải thực hiện các công việc sau:
– Tạo VLAN 10 và 20 trên Switch L2:
L2-Switch# conf t
L2-Switch(config)# vlan 10
L2-Switch(config-vlan)# name Ke-toan
L2-Switch(config-vlan)# vlan 20
L2-Switch(config-vlan)# name Tai-chinh
L2-Switch(config-vlan)# exit
– Gán VLAN vào các cổng và tạo cổng Trunk trên Switch L2:
L2-Switch# conf t
L2-Switch(config)# interface fa0/2
L2-Switch(config-if)#switchport mode access
L2-Switch(config-if)#switchport access vlan 10
L2-Switch(config)# interface fa0/3
L2-Switch(config-if)#switchport mode access
L2-Switch(config-if)#switchport access vlan 20
L2-Switch(config)# interface fa0/1
L2-Switch(config-if)# switchport trunk encapsulation dot1q
L2-Switch(config-if)# switchport mode trunk
– Tạo danh sách VLAN 10 và 20 trên Switch L3 và kích hoạt định tuyến L3:
L3-Switch#conf t
L3-Switch(config) # ip routing
L3-Switch(config)#vlan 10
L3-Switch(config-vlan)# name Ke-toan
L3-Switch(config-vlan)# vlan 20
L3-Switch(config-vlan)# name Tai-chinh
L3-Switch(config)# interface fa0/1
L3-Switch(config-if)# switchport trunk encapsulation dot1q
L3-Switch(config-if)#switchport mode trunk
L3-Switch(config-if)# exit
– Cấu hình giao diện SVI:
L3-Switch# conf t
L3-Switch(config)# interface vlan10
L3-Switch(config-if)# ip address 192.168.10.1 255.255.255.0
L3-Switch(config-if)# no shut
L3-Switch(config)# interface vlan20
L3-Switch(config-if)# ip address 192.168.20.1 255.255.255.0
L3-Switch(config-if)# no shut
L3-Switch(config-if)# exit
– Cấu hình cổng định tuyến kết nối với tường lửa:
L3-Switch# conf t
L3-Switch(config)# interface fa0/0
L3-Switch(config-if)# description to Internet Firewa
L3-Switch(config-if)# no switchport
L3-Switch(config-if)# ip address 192.0.0.1 255.255.255.252
L3-Switch(config)# ip route 0.0.0.0 0.0.0.0 192.0.0.2
L3-Switch(config-if)# exit
Mong rằng qua bài viết này, bạn đã có cái nhìn chi tiết và đầy đủ nhất về việc định tuyến giữa các VLAN. Nếu có câu hỏi thắc mắc, hãy để lại ở phần bình luận để mình giải đáp chi tiết nhất!
Thông Tin Về Tác Giả
Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!