Các VRF (Virtual Routing Forwarding) là các khổi chức năng được sử dụng để chia một router thành nhiều router ảo khác nhau, mỗi router ảo này sẽ sử dụng một bảng RIB (Routing Information Based) và một bảng FIB (Forwarding Information Based) riêng biệt. Việc chia một router thành nhiều VRF tương tự như việc chia một switch thành nhiều VLAN. Câu lệnh để khai báo một VRF trên một router: R(config)#ip vrf Tên_VRF R(config-vrf)#rd X:Y R(config-vrf)#exit Trong đó: • Tên_VRF: là tên gọi đặt cho VRF được tạo ra. Ví dụ, trong bài lab này, chúng ta tạo ra hai VRF có tên là VRF1 và VRF2 trên hai router (như ví dụ bên dưới). • X:Y: là giá trị có tên gọi là Route Distinguisher (RD) được gán cho VRF. RD là một giá trị 64 bit được gán vào cho mọi route thuộc về VRF tương ứng. Định dạng thường gặp của RD là ASN:NN, trong đó, ASN là giá trị Autonomous System Number và NN là số hiệu VRF bên trong router, hoặc xét trên toàn sơ đồ, là số hiệu VPN bên trong một AS. Một cách đơn giản, ta có thể hiểu giá trị này được dùng để định danh cho VRF trên router và có thể dùng bất kỳ giá trị nào ta muốn khi cấu hình. Giá trị này không bắt buộc phải giống nhau giữa các router mà chỉ có ý nghĩa local trên mỗi router. Sau khi cấu hình các VRF để chia một router thành nhiều router ảo biệt lập với nhau, chúng ta cần phải phân bổ các cổng hiện có trên router vào các router ảo mới tạo này. Điều này tương tự như việc xây dựng xong một router thì cần phải lắp cho router mới này các cổng giao tiếp, và các cổng giao tiếp này được lấy ra từ router gốc cũ. Ta có thể so sánh điều này với việc gán các cổng trên switch vào một VLAN vừa tạo. Câu lệnh để gán một cổng trên router vào một VRF: R(config-if)#ip vrf forwarding Tên_VRF Khi gán một cổng vào một VRF, mọi địa chỉ IP được cấu hình trước đó trên cổng sẽ được gỡ bỏ, ta phải thực hiện cấu hình lại IP cho cổng mới được gán này. Mặc định, trên router luôn tồn tại một VRF tên là “global” và mọi cổng của router ban đầu đều thuộc VRF này. Điều này tương tự như trên switch luôn tồn tại VLAN 1 và ban đầu mọi cổng của switch đều thuộc về VLAN 1. Khi chúng ta thực hiện đấu nối giữa các VRF tương ứng của các router, ta đã thực hiện xây dựng nhiều mạng lớp 3 khác nhau từ một sơ đồ đấu nối lớp 3 duy nhất trước đó. Để nắm được rõ vấn đề, chúng ta sẽ cùng trao đổi thông qua một bài lab ví dụ bên dưới: Sơ đồ Bước 1: Cấu hình ban đầu • Thực hiện đặt địa chỉ IP trên các cổng của các router theo quy hoạch IP được chỉ ra trên hình. • Kiểm tra rằng các địa chỉ kết nối trực tiếp đã đi đến được nhau. Cấu hình Trên R1: R1(config)#interface f0/0 R1(config-if)#no shutdown R1(config-if)#ip address 192.168.12.1 255.255.255.0 R1(config-if)#exit R1(config)#interface f0/1 R1(config-if)#no shutdown R1(config-if)#ip address 192.168.21.1 255.255.255.0 R1(config-if)#exit R1(config)#interface loopback 0 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#exit R1(config)#interface loopback 1 R1(config-if)#ip address 192.168.11.1 255.255.255.0 R1(config-if)#exit Trên R2: R2(config)#interface f0/0 R2(config-if)#no shutdown R2(config-if)#ip address 192.168.12.2 255.255.255.0 R2(config-if)#exit R2(config)#interface f0/1 R2(config-if)#no shutdown R2(config-if)#ip address 192.168.21.2 255.255.255.0 R2(config-if)#exit R2(config)#interface loopback 0 R2(config-if)#ip address 192.168.2.1 255.255.255.0 R2(config-if)#exit R2(config)#interface loopback 1 R2(config-if)#ip address 192.168.22.1 255.255.255.0 R2(config-if)#exit Kiểm tra Ta kiểm tra rằng các địa chỉ kết nối trực tiếp đã đi đến được nhau : R1#ping 192.168.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/41/80 ms R1#ping 192.168.21.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.21.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/43/84 ms Bước 2: Cấu hình VRF trên các Cisco Router • Trên R1 và R2 thực hiện cấu hình một VRF có tên là VRF1. Thực hiện gán các cổng F0/0 và các loopback 0 của hai router này vào VRF1 vừa tạo. • Trên R1 và R2 thực hiện cấu hình một VRF khác có tên là VRF2. Thực hiện gán các cổng F0/1 và các loopback 1 của hai router này vào VRF2 vừa tạo. • Kiểm tra rằng các địa chỉ kết nối trực tiếp đã đi đến được nhau. Cấu hình Trên R1: R1(config)#ip vrf VRF1 R1(config-vrf)#rd 1:1 R1(config-vrf)#exit R1(config)#interface f0/0 R1(config-if)#ip vrf forwarding VRF1 % Interface FastEthernet0/0 IP address 192.168.12.1 removed due to enabling VRF VRF1 R1(config-if)#ip address 192.168.12.1 255.255.255.0 R1(config-if)#exit R1(config)#interface loopback 0 R1(config-if)#ip vrf forwarding VRF1 % Interface Loopback0 IP address 192.168.1.1 removed due to enabling VRF VRF1 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#exit R1(config)#ip vrf VRF2 R1(config-vrf)#rd 2:2 R1(config-vrf)#exit R1(config)#interface f0/1 R1(config-if)#ip vrf forwarding VRF2 % Interface FastEthernet0/1 IP address 192.168.21.1 removed due to enabling VRF VRF2 R1(config-if)#ip address 192.168.21.1 255.255.255.0 R1(config-if)#exit R1(config)#interface loopback 1 R1(config-if)#ip vrf forwarding VRF2 % Interface Loopback1 IP address 192.168.11.1 removed due to enabling VRF VRF2 R1(config-if)#ip address 192.168.11.1 255.255.255.0 R1(config-if)#exit Trên R2: R2(config)#ip vrf VRF1 R2(config-vrf)#rd 1:1 R2(config-vrf)#exit R2(config)#interface f0/0 R2(config-if)#ip vrf forwarding VRF1 % Interface FastEthernet0/0 IP address 192.168.12.2 removed due to enabling VRF VRF1 R2(config-if)#ip address 192.168.12.2 255.255.255.0 R2(config-if)#exit R2(config)#interface loopback 0 R2(config-if)#ip vrf forwarding VRF1 % Interface Loopback0 IP address 192.168.2.1 removed due to enabling VRF VRF1 R2(config-if)#ip address 192.168.2.1 255.255.255.0 R2(config-if)#exit R2(config)#ip vrf VRF2 R2(config-vrf)#rd 2:2 R2(config-vrf)#exit R2(config)#interface f0/1 R2(config-if)#ip vrf forwarding VRF2 % Interface FastEthernet0/1 IP address 192.168.21.2 removed due to enabling VRF VRF2 R2(config-if)#ip address 192.168.21.2 255.255.255.0 R2(config-if)#exit R2(config)#interface loopback 1 R2(config-if)#ip vrf forwarding VRF2 % Interface Loopback1 IP address 192.168.22.1 removed due to enabling VRF VRF2 R2(config-if)#ip address 192.168.22.1 255.255.255.0 R2(config-if)#exit Kiểm tra Ta kiểm tra rằng, trong từng VRF, các địa chỉ đấu nối trực tiếp trên hai router đã đi đến được nhau: R1#ping vrf VRF1 192.168.12.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.12.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 32/44/72 ms R1#ping vrf VRF2 192.168.21.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.21.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 4/45/120 ms Bước 3: Định tuyến trên VRF • Cấu hình định tuyến OSPF trên VRF1 đảm bảo mọi địa chỉ trên VRF1 thấy nhau. • Cấu hình định tuyến EIGRP trên VRF2 đảm bảo mọi địa chỉ trên VRF2 thấy nhau. Cấu hình Trên R1: R1(config)#router ospf 1 vrf VRF1 R1(config-router)#network 192.168.1.1 0.0.0.0 area 0 R1(config-router)#network 192.168.12.1 0.0.0.0 area 0 R1(config-router)#exit R1(config)#router eigrp 100 R1(config-router)#address-family ipv4 vrf VRF2 R1(config-router-af)#autonomous-system 100 R1(config-router-af)#network 192.168.11.0 R1(config-router-af)#network 192.168.21.0 R1(config-router-af)#exit R1(config-router)#exit Trên R2: R2(config)#router ospf 1 vrf VRF1 R2(config-router)#network 192.168.2.1 0.0.0.0 area 0 R2(config-router)#network 192.168.12.2 0.0.0.0 area 0 R2(config-router)#exit R2(config)#router eigrp 100 R2(config-router)#address-family ipv4 vrf VRF2 R2(config-router-af)#autonomous-system 100 R2(config-router-af)#network 192.168.22.0 R2(config-router-af)#network 192.168.21.0 R2(config-router-af)#exit Kiểm tra Ta kiểm tra bảng định tuyến của từng VRF trên các router để xác nhận rằng các giao thức định tuyến đều đã hội tụ. Trên VRF1: R1#show ip route vrf VRF1 ospf Routing Table: VRF1 192.168.2.0/32 is subnetted, 1 subnets O 192.168.2.1 [110/2] via 192.168.12.2, 00:07:43, FastEthernet0/0 R2#show ip route vrf VRF1 ospf Routing Table: VRF1 192.168.1.0/32 is subnetted, 1 subnets O 192.168.1.1 [110/2] via 192.168.12.1, 00:07:57, FastEthernet0/0[/b] Trên VRF2: R1#show ip route vrf VRF2 eigrp D 192.168.22.0/24 [90/156160] via 192.168.21.2, 00:08:13, FastEthernet0/1 R2#show ip route vrf VRF2 eigrp D 192.168.11.0/24 [90/156160] via 192.168.21.1, 00:08:22, FastEthernet0/1 Kiểm tra các địa chỉ loopback trên các VRF đã đi đến được nhau: R1#ping vrf VRF1 192.168.2.1 source 192.168.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds: Packet sent with a source address of 192.168.1.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 28/34/44 ms R1#ping vrf VRF2 192.168.22.1 source 192.168.11.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.22.1, timeout is 2 seconds: Packet sent with a source address of 192.168.11.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/37/64 ms Chi tiết xem tại: Tìm hiểu VRF (Virtual Routing Forwarding) - Cấu hình VRF trên Cisco Router