Này Habr. Mình tiếp tục series bài viết về công nghệ VxLAN EVPN nhé được viết riêng cho sự ra mắt của khóa học
Trong phần trước, chúng tôi đã đạt được một miền quảng bá được xây dựng trên kết cấu mạng trên Nexus 9000v. Tuy nhiên, đây không phải là toàn bộ các nhiệm vụ cần được giải quyết trong khuôn khổ của mạng trung tâm dữ liệu. Và hôm nay chúng ta sẽ xem xét nhiệm vụ sau - định tuyến giữa các mạng hoặc giữa các VNI.
Hãy để tôi nhắc bạn rằng cấu trúc liên kết Cột sống-Lá được sử dụng:
Để bắt đầu, chúng tôi sẽ phân tích cách định tuyến xảy ra và nó có những tính năng gì.
Để dễ hiểu, hãy đơn giản hóa sơ đồ logic và thêm một VNI 20000 khác cho Host-2. Kết quả là:
Làm thế nào, trong trường hợp này, bạn có thể chuyển lưu lượng truy cập từ Máy chủ này sang Máy chủ khác?
Có hai lựa chọn:
- Giữ thông tin về tất cả các VNI trên tất cả các thiết bị chuyển mạch Lá, sau đó tất cả việc định tuyến sẽ diễn ra trên Lá đầu tiên trong mạng;
- Chuyên dụng - L3 VNI
Cách thứ nhất đơn giản và thuận tiện. Vì bạn chỉ cần khởi động tất cả các VNI trên tất cả các công tắc Lá. Tuy nhiên, việc chạy vài trăm hay hàng nghìn VNI trên toàn bộ Leaf dường như không còn là một nhiệm vụ dễ dàng. Do đó, trong công việc nó được sử dụng khá hiếm.
Chúng tôi sẽ phân tích phương pháp 2, thú vị hơn và phức tạp hơn một chút, nhưng mang lại sự linh hoạt hơn trong việc thiết lập nhà máy.
Hãy thêm "PROD" vào cấu trúc liên kết VRF. Hãy thêm giao diện vlan 10 vào cặp Leaf-11/12 và giao diện VLAN 20 trên Leaf-21. VLAN 20 gắn với VNI 20000
vrf context PROD
rd auto ! Route Distinguisher не принципиален и можем использовать сформированный автоматически
address-family ipv4 unicast
route-target both auto ! указываем Route-target с которым будут импортироваться и экспортироваться префиксы в/из VRF
vlan 20
vn-segment 20000
interface nve 1
member vni 20000
ingress-replication protocol bgp
interface Vlan10
no shutdown
vrf member PROD
ip address 192.168.20.1/24
fabric forwarding mode anycast-gateway
Để sử dụng L3VNI, bạn cần tạo một VLAN mới, kết hợp nó với VNI mới. VNI mới phải giống nhau trên tất cả các Lá quan tâm đến thông tin VLAN 10 và 20.
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Создаем L3 VNI
vrf context PROD
vni 99000 ! Привязываем L3 VNI к определенному VRF
Kết quả là, sơ đồ sẽ trông như thế này:
Vẫn còn phải hoàn thiện một chút - thêm một giao diện nữa - giao diện vlan 99 trong VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf
Do đó, logic chuyển khung từ Máy chủ-1 sang Máy chủ-2 như sau:
- Một khung được gửi bởi Host-1 đến một Lá trong VLAN 10, được liên kết với VNI 10000;
- Lá kiểm tra xem địa chỉ đích ở đâu và tìm nó thông qua L3 VNI trên công tắc Lá thứ hai;
- Ngay sau khi tuyến đường đến địa chỉ đích được tìm thấy, Lá gói khung vào một tiêu đề với L3VNI 99000 cần thiết - và gửi nó tới Lá thứ hai;
- Công tắc lá thứ hai nhận dữ liệu từ L3VNI 99000. Nhận khung gốc và chuyển nó đến L2VNI 20000 được yêu cầu rồi đến VLAN 20.
Kết quả của công việc này là L3VNI loại bỏ nhu cầu lưu giữ thông tin về tất cả các VNI trên mạng trên tất cả các thiết bị chuyển mạch Lá.
Kết quả là khi chúng ta gửi lưu lượng từ Host-1 đến Host-2 thì packet được đóng gói bên trong VxLAN với VNI - 99000 mới:
Vẫn còn phải xem cách mà Leaf-1 tìm hiểu chính xác về địa chỉ MAC từ một VNI khác. Điều này cũng xảy ra với sự trợ giúp của EVPN route-type 2 (MAC/IP).
Sau đây là quá trình truyền một route về một tiền tố nằm trong một VNI khác:
Tức là các địa chỉ nhận được từ VNI 20000 có hai RT.
Hãy để tôi nhắc bạn rằng các tuyến đường nhận được từ Cập nhật rơi vào bảng BGP với mục tiêu Tuyến đường được chỉ định trong cài đặt VRF (quá trình này hơi phức tạp hơn, nhưng chúng tôi sẽ không đi sâu vào bài viết này).
Bản thân RT được hình thành theo công thức: AS:VNI (nếu sử dụng chế độ tự động).
Một ví dụ về sự hình thành RT ở chế độ tự động và thủ công:
vrf context PROD
address-family ipv4 unicast
route-target import auto - автоматический режим работы
route-target export 65001:20000 - ручной режим формирования RT
Kết quả là, bạn có thể thấy ở trên rằng các tiền tố từ một VNI khác có hai giá trị RT.
Một trong số đó là 65001:99000 là L3 VNI bổ sung. Vì VNI này giống nhau trên tất cả các Lá và tuân theo các quy tắc nhập của chúng tôi trong cài đặt VRF, tiền tố sẽ được đưa vào bảng BGP, có thể nhìn thấy từ đầu ra:
sh bgp l2vpn evpn
<.....>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
10.255.1.10 100 32768 i
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
10.255.1.10 100 32768 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 32768 i
Route Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272 ! Префикс полученный из VNI 20000
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Nếu xem xét kỹ hơn bản cập nhật đã nhận, chúng ta có thể thấy rằng tiền tố này có hai RT:
Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, version 5164
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not i
n HW
Path type: internal, path is valid, not best reason: Neighbor Address, no labeled nexthop
AS-Path: NONE, path sourced internal to AS
10.255.1.20 (metric 81) from 10.255.1.102 (10.255.1.102)
Origin IGP, MED not set, localpref 100, weight 0
Received label 20000 99000 ! Два label для работы VxLAN
Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8 ! Два значения Route-target, на основе, которых добавили данный префикс
Router MAC:5001.0005.0007
Originator: 10.255.1.21 Cluster list: 10.255.1.102
<......>
Trong bảng định tuyến trên Leaf-1, bạn cũng có thể thấy tiền tố 192.168.20.20/32:
Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attached
*via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Адрес Host-2
*via 10.255.1.20%default, [200/0], 01:20:20, bgp-65001, internal, tag 65001 ! Доступный через Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Через VNI 99000
Lưu ý thiếu tiền tố chính 192.168.20.0/24 trong bảng định tuyến?
Đúng vậy, anh ấy không có ở đó. Nghĩa là, các Lá từ xa chỉ nhận thông tin về các máy chủ trên mạng của bạn. Và đây là hành vi đúng. Ở trên, trong tất cả các bản cập nhật, bạn có thể thấy thông tin đó đi kèm với nội dung của MAC / IP. Không có tiền tố để nói về.
Đây là giao thức Host Mobility Manager (HMM), giao thức này lấp đầy bảng ARP từ đó bảng BGP được lấp đầy thêm (chúng tôi sẽ bỏ qua quy trình này trong khuôn khổ bài viết này). Dựa trên thông tin nhận được từ HMM, các EVPN loại tuyến 2 được hình thành (được truyền bởi MAC/IP).
Tuy nhiên, nếu cần truyền thông tin về tiền tố thì sao?
Đối với loại thông tin này, có loại tuyến đường EVPN 5 - nó cho phép bạn gửi tiền tố qua họ địa chỉ l2vpn evpn (loại tuyến đường này tại thời điểm viết bài này chỉ có trong phiên bản nháp
Để chuyển tiền tố, cần phải thêm tiền tố trong quy trình BGP cho VRF, sẽ được quảng cáo:
router bgp 65001
vrf PROD
address-family ipv4 unicast
redistribute direct route-map VNI20000 ! В данном случае анонсируем префиксы подключение непосредственно к Leaf в VNI 20000
route-map VNI20000 permit 10
match ip address prefix-list VNI20000_OUT ! Указываем какой использовать prefix-list
ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24 ! Указываем какие сети будут попадать в EVPN route-type 5
Do đó, Cập nhật sẽ là:
Hãy nhìn vào bảng BGP. Ngoài tuyến đường EVPN loại 2,3, loại 5 tuyến đường đã xuất hiện có chứa thông tin về số mạng:
<......>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:3
* i[5]:[0]:[0]:[24]:[192.168.10.0]/224
10.255.1.10 0 100 0 ?
*>i 10.255.1.10 0 100 0 ?
Route Distinguisher: 10.255.1.11:32777
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
* i[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
Route Distinguisher: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224 ! EVPN route-type 5 с номером префикса
10.255.1.10 0 100 0 ?
* i
<.......>
Tiền tố cũng xuất hiện trong bảng định tuyến:
Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 00:14:32, bgp-65001, internal, tag 65001 ! Удаленный префикс, доступный через Leaf1/2(адрес Next-hop = virtual IP между парой VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Префикс доступен через L3VNI 99000
192.168.10.10/32, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 02:33:40, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN
192.168.20.0/24, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attached
*via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm
Điều này kết thúc phần thứ hai của loạt bài viết về VxLAN EVPN. Trong phần tiếp theo, chúng ta sẽ xem xét các tùy chọn khác nhau để định tuyến giữa các VRF.
Nguồn: www.habr.com