Xin chào, Habr. Tôi hiện là người hướng dẫn khóa học Kỹ sư Mạng tại OTUS.
Dự đoán về việc bắt đầu tuyển sinh mới cho khóa học
Có một lượng lớn tài liệu về cách hoạt động của VxLAN EVPN, vì vậy tôi muốn thu thập nhiều nhiệm vụ và phương pháp thực hành khác nhau để giải quyết các vấn đề trong một trung tâm dữ liệu hiện đại.
Trong phần đầu tiên của loạt bài về công nghệ VxLAN EVPN, tôi muốn xem xét cách tổ chức kết nối L2 giữa các máy chủ trên cơ cấu mạng.
Tất cả các ví dụ sẽ được thực hiện trên Cisco Nexus 9000v, được lắp ráp theo cấu trúc liên kết Spine-Leaf. Chúng tôi sẽ không tập trung vào việc thiết lập mạng Underlay trong bài viết này.
- Mạng lưới lót
- BGP ngang hàng cho họ địa chỉ l2vpn evpn
- Thiết lập NVE
- Ức chế-arp
Mạng lưới lót
Cấu trúc liên kết được sử dụng như sau:
Hãy đặt địa chỉ trên tất cả các thiết bị:
Spine-1 - 10.255.1.101
Spine-2 - 10.255.1.102
Leaf-11 - 10.255.1.11
Leaf-12 - 10.255.1.12
Leaf-21 - 10.255.1.21
Host-1 - 192.168.10.10
Host-2 - 192.168.10.20
Hãy kiểm tra xem có kết nối IP giữa tất cả các thiết bị hay không:
Leaf21# sh ip route
<........>
10.255.1.11/32, ubest/mbest: 2/0 ! Leaf-11 доступен чеерз два Spine
*via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
*via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 2/0 ! Leaf-12 доступен чеерз два Spine
*via 10.255.1.101, Eth1/4, [110/81], 00:00:03, ospf-UNDERLAY, intra
*via 10.255.1.102, Eth1/3, [110/81], 00:00:03, ospf-UNDERLAY, intra
10.255.1.21/32, ubest/mbest: 2/0, attached
*via 10.255.1.22, Lo0, [0/0], 00:02:20, local
*via 10.255.1.22, Lo0, [0/0], 00:02:20, direct
10.255.1.101/32, ubest/mbest: 1/0
*via 10.255.1.101, Eth1/4, [110/41], 00:00:06, ospf-UNDERLAY, intra
10.255.1.102/32, ubest/mbest: 1/0
*via 10.255.1.102, Eth1/3, [110/41], 00:00:03, ospf-UNDERLAY, intra
Hãy kiểm tra xem miền VPC đã được tạo chưa và cả hai công tắc đều đã vượt qua quá trình kiểm tra tính nhất quán cũng như cài đặt trên cả hai nút đều giống nhau:
Leaf11# show vpc
vPC domain id : 1
Peer status : peer adjacency formed ok
vPC keep-alive status : peer is alive
Configuration consistency status : success
Per-vlan consistency status : success
Type-2 consistency status : success
vPC role : primary
Number of vPCs configured : 0
Peer Gateway : Disabled
Dual-active excluded VLANs : -
Graceful Consistency Check : Enabled
Auto-recovery status : Disabled
Delay-restore status : Timer is off.(timeout = 30s)
Delay-restore SVI status : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router : Disabled
vPC status
----------------------------------------------------------------------------
Id Port Status Consistency Reason Active vlans
-- ------------ ------ ----------- ------ ---------------
5 Po5 up success success 1
BGP ngang hàng
Cuối cùng, bạn có thể chuyển sang thiết lập mạng Lớp phủ.
Là một phần của bài viết, cần tổ chức một mạng giữa các máy chủ, như thể hiện trong sơ đồ bên dưới:
Để định cấu hình mạng Lớp phủ, bạn cần bật BGP trên các thiết bị chuyển mạch Spine và Leaf có hỗ trợ cho họ l2vpn evpn:
feature bgp
nv overlay evpn
Tiếp theo, bạn cần định cấu hình BGP ngang hàng giữa Lá và Cột sống. Để đơn giản hóa việc thiết lập và tối ưu hóa việc phân phối thông tin định tuyến, chúng tôi định cấu hình Spine làm máy chủ Route-Reflector. Chúng tôi sẽ viết tất cả Lá trong cấu hình bằng cách sử dụng các mẫu để tối ưu hóa thiết lập.
Vì vậy, các cài đặt trên Spine trông như thế này:
router bgp 65001
template peer LEAF
remote-as 65001
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
route-reflector-client
neighbor 10.255.1.11
inherit peer LEAF
neighbor 10.255.1.12
inherit peer LEAF
neighbor 10.255.1.21
inherit peer LEAF
Cách thiết lập trên công tắc Lá trông tương tự:
router bgp 65001
template peer SPINE
remote-as 65001
update-source loopback0
address-family l2vpn evpn
send-community
send-community extended
neighbor 10.255.1.101
inherit peer SPINE
neighbor 10.255.1.102
inherit peer SPINE
Trên Spine, hãy kiểm tra ngang hàng với tất cả các switch của Lá:
Spine1# sh bgp l2vpn evpn summary
<.....>
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.255.1.11 4 65001 7 8 6 0 0 00:01:45 0
10.255.1.12 4 65001 7 7 6 0 0 00:01:16 0
10.255.1.21 4 65001 7 7 6 0 0 00:01:01 0
Như bạn có thể thấy, không có vấn đề gì với BGP. Hãy chuyển sang thiết lập VxLAN. Việc cấu hình thêm sẽ chỉ được thực hiện ở phía Lá của thiết bị chuyển mạch. Spine chỉ đóng vai trò là lõi của mạng và chỉ tham gia truyền tải lưu lượng. Tất cả công việc đóng gói và xác định đường dẫn chỉ xảy ra trên các switch Lá.
Thiết lập NVE
NVE - giao diện mạng ảo
Trước khi bắt đầu thiết lập, hãy giới thiệu một số thuật ngữ:
VTEP - Điểm cuối đường hầm ảo, thiết bị mà đường hầm VxLAN bắt đầu hoặc kết thúc. VTEP không nhất thiết phải là bất kỳ thiết bị mạng nào. Một máy chủ hỗ trợ công nghệ VxLAN cũng có thể hoạt động như một máy chủ. Trong cấu trúc liên kết của chúng tôi, tất cả các thiết bị chuyển mạch Lá đều là VTEP.
VNI - Virtual Network Index - định danh mạng trong VxLAN. Một sự tương tự có thể được rút ra với Vlan. Tuy nhiên, có một số khác biệt. Khi sử dụng vải, các Vlan chỉ trở thành duy nhất trong một bộ chuyển mạch Lá và không được truyền qua mạng. Nhưng mỗi VLAN có thể có một số VNI được liên kết với nó, số này đã được truyền qua mạng. Nó trông như thế nào và cách sử dụng nó sẽ được thảo luận thêm.
Hãy kích hoạt tính năng để công nghệ VxLAN hoạt động và khả năng liên kết số VLAN với số VNI:
feature nv overlay
feature vn-segment-vlan-based
Hãy cấu hình giao diện NVE, chịu trách nhiệm vận hành VxLAN. Giao diện này chịu trách nhiệm đóng gói các khung trong các tiêu đề VxLAN. Bạn có thể rút ra sự tương tự với giao diện Tunnel cho GRE:
interface nve1
no shutdown
host-reachability protocol bgp ! используем BGP для передачи маршрутной информации
source-interface loopback0 ! интерфейс с которого отправляем пакеты loopback0
Trên switch Leaf-21, mọi thứ đều được tạo ra mà không gặp vấn đề gì. Tuy nhiên, nếu chúng ta kiểm tra đầu ra của lệnh show nve peers
, thì nó sẽ trống rỗng. Tại đây bạn cần quay lại cấu hình VPC. Chúng tôi thấy rằng Lá-11 và Lá-12 hoạt động theo cặp và được thống nhất bởi một miền VPC. Điều này cho chúng ta tình huống sau:
Máy chủ-2 gửi một khung tới Lá-21 để nó truyền khung đó qua mạng tới Máy chủ-1. Tuy nhiên, Leaf-21 thấy rằng địa chỉ MAC của Host-1 có thể truy cập được thông qua hai VTEP cùng một lúc. Leaf-21 nên làm gì trong trường hợp này? Rốt cuộc, điều này có nghĩa là một vòng lặp có thể xuất hiện trong mạng.
Để giải quyết tình trạng này, chúng tôi cần Lá-11 và Lá-12 hoạt động như một thiết bị trong nhà máy. Giải pháp khá đơn giản. Trên giao diện Loopback nơi chúng tôi xây dựng đường hầm, hãy thêm địa chỉ phụ. Địa chỉ phụ phải giống nhau trên cả hai VTEP.
interface loopback0
ip add 10.255.1.10/32 secondary
Do đó, từ quan điểm của các VTEP khác, chúng ta có cấu trúc liên kết sau:
Tức là bây giờ đường hầm sẽ được xây dựng giữa địa chỉ IP của Lá-21 và IP ảo giữa hai Lá-11 và Lá-12. Bây giờ sẽ không có vấn đề gì khi học địa chỉ MAC từ hai thiết bị và lưu lượng truy cập có thể chuyển từ VTEP này sang VTEP khác. VTEP nào trong hai VTEP sẽ xử lý lưu lượng được quyết định bằng bảng định tuyến trên Spine:
Spine1# sh ip route
<.....>
10.255.1.10/32, ubest/mbest: 2/0
*via 10.255.1.11, Eth1/1, [110/41], 1d01h, ospf-UNDERLAY, intra
*via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra
10.255.1.11/32, ubest/mbest: 1/0
*via 10.255.1.11, Eth1/1, [110/41], 1d22h, ospf-UNDERLAY, intra
10.255.1.12/32, ubest/mbest: 1/0
*via 10.255.1.12, Eth1/2, [110/41], 1d01h, ospf-UNDERLAY, intra
Như bạn có thể thấy ở trên, địa chỉ 10.255.1.10 có sẵn ngay lập tức thông qua hai bước nhảy tiếp theo.
Ở giai đoạn này, chúng tôi đã xử lý kết nối cơ bản. Hãy chuyển sang thiết lập giao diện NVE:
Hãy kích hoạt ngay Vlan 10 và liên kết nó với VNI 10000 trên mỗi Lá dành cho chủ nhà nhé. Hãy thiết lập đường hầm L2 giữa các máy chủ
vlan 10 ! Включаем VLAN на всех VTEP подключенных к необходимым хостам
vn-segment 10000 ! Ассоциируем VLAN с номер VNI
interface nve1
member vni 10000 ! Добавляем VNI 10000 для работы через интерфейс NVE. для инкапсуляции в VxLAN
ingress-replication protocol bgp ! указываем, что для распространения информации о хосте используем BGP
Bây giờ hãy kiểm tra nve ngang hàng và bảng cho BGP EVPN:
Leaf21# sh nve peers
Interface Peer-IP State LearnType Uptime Router-Mac
--------- --------------- ----- --------- -------- -----------------
nve1 10.255.1.10 Up CP 00:00:41 n/a ! Видим что peer доступен с secondary адреса
Leaf11# sh bgp l2vpn evpn
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000) ! От кого именно пришел этот l2VNI
*>l[3]:[0]:[32]:[10.255.1.10]/88 ! EVPN route-type 3 - показывает нашего соседа, который так же знает об l2VNI10000
10.255.1.10 100 32768 i
*>i[3]:[0]:[32]:[10.255.1.20]/88
10.255.1.20 100 0 i
* i 10.255.1.20 100 0 i
Route Distinguisher: 10.255.1.21:32777
* i[3]:[0]:[32]:[10.255.1.20]/88
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Ở trên, chúng tôi chỉ thấy các tuyến loại 3 của EVPN. Loại tuyến này nói về ngang hàng (Lá), nhưng máy chủ của chúng tôi ở đâu?
Vấn đề là thông tin về máy chủ MAC được truyền qua EVPN loại 2
Để xem máy chủ của chúng tôi, bạn cần định cấu hình loại tuyến đường EVPN 2:
evpn
vni 10000 l2
route-target import auto ! в рамках данной статьи используем автоматический номер для route-target
route-target export auto
Hãy ping từ Host-2 đến Host-1:
Firewall2# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
36 bytes from 192.168.10.2: Destination Host Unreachable
Request 0 timed out
64 bytes from 192.168.10.1: icmp_seq=1 ttl=254 time=215.555 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=254 time=38.756 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=254 time=42.484 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=254 time=40.983 ms
Và bên dưới chúng ta có thể thấy Route-type 2 với địa chỉ MAC của máy chủ xuất hiện trong bảng BGP - 5001.0007.0007 và 5001.0008.0007
Leaf11# 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 ! evpn route-type 2 и mac адрес хоста 1
10.255.1.10 100 32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216 ! evpn route-type 2 и mac адрес хоста 2
* i 10.255.1.20 100 0 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 32768 i
Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
Tiếp theo, bạn có thể xem thông tin chi tiết về Cập nhật, trong đó bạn đã nhận được thông tin về Máy chủ MAC. Dưới đây không phải là tất cả đầu ra lệnh.
Leaf21# sh bgp l2vpn evpn 5001.0007.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.11:32777 ! отправил Update с MAC Host. Не виртуальный адрес VPC, а адрес Leaf
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216,
version 1507
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 labe
led nexthop
AS-Path: NONE, path sourced internal to AS
10.255.1.10 (metric 81) from 10.255.1.102 (10.255.1.102) ! с кем именно строим VxLAN тоннель
Origin IGP, MED not set, localpref 100, weight 0
Received label 10000 ! Номер VNI, который ассоциирован с VLAN, в котором находится Host
Extcommunity: RT:65001:10000 SOO:10.255.1.10:0 ENCAP:8 ! Тут видно, что RT сформировался автоматически на основе номеров AS и VNI
Originator: 10.255.1.11 Cluster list: 10.255.1.102
<........>
Hãy xem các khung hình trông như thế nào khi chúng được chuyển qua nhà máy:
Ngăn chặn-ARP
Tuyệt vời, giờ chúng ta đã có giao tiếp L2 giữa các máy chủ và chúng ta có thể kết thúc ở đó. Tuy nhiên, không phải tất cả đều đơn giản như vậy. Miễn là chúng tôi có ít máy chủ thì sẽ không có vấn đề gì. Nhưng hãy tưởng tượng một tình huống mà chúng ta có hàng trăm, hàng nghìn máy chủ. Chúng ta có thể gặp phải vấn đề gì?
Sự cố này là lưu lượng truy cập BUM(Broadcast, Unicast, Multicast). Trong bài viết này, chúng tôi sẽ xem xét tùy chọn xử lý lưu lượng phát sóng.
Trình tạo phát sóng chính trong mạng Ethernet là chính các máy chủ thông qua giao thức ARP.
Nexus triển khai cơ chế sau để chống lại các yêu cầu ARP -press-arp.
Tính năng này hoạt động như sau:
- Máy chủ-1 gửi yêu cầu APR đến địa chỉ Broadcast của mạng của nó.
- Yêu cầu đến nút chuyển Lá và thay vì chuyển yêu cầu này tới kết cấu tới Máy chủ-2, Lá sẽ tự phản hồi và cho biết IP và MAC được yêu cầu.
Do đó, yêu cầu Phát sóng đã không đến được nhà máy. Nhưng làm sao điều này có thể thực hiện được nếu Lá chỉ biết địa chỉ MAC?
Mọi thứ khá đơn giản, EVPN tuyến loại 2, ngoài địa chỉ MAC, có thể truyền kết hợp MAC/IP. Để thực hiện việc này, bạn cần định cấu hình địa chỉ IP trong Vlan trên Leaf. Câu hỏi đặt ra là tôi nên đặt IP nào? Trên Nexus, có thể tạo một địa chỉ phân tán (giống nhau) trên tất cả các thiết bị chuyển mạch:
feature interface-vlan
fabric forwarding anycast-gateway-mac 0001.0001.0001 ! задаем virtual mac для создания распределенного шлюза между всеми коммутаторами
interface Vlan10
no shutdown
ip address 192.168.10.254/24 ! на всех Leaf задаем одинаковый IP
fabric forwarding mode anycast-gateway ! говорим использовать Virtual mac
Do đó, theo quan điểm của máy chủ, mạng sẽ trông như thế này:
Hãy kiểm tra BGP l2route evpn
Leaf11# 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.21 100 32768 i
*>i[2]:[0]:[0]:[48]:[5001.0008.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.0008.0007]:[32]:[192.168.10.20]/248
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
<......>
Route Distinguisher: 10.255.1.21:32777
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[0]:[0.0.0.0]/216
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.10.20]/248
*>i 10.255.1.20 100 0 i
<......>
Từ đầu ra lệnh, bạn có thể thấy rằng trong EVPN loại tuyến 2, ngoài MAC, giờ đây chúng ta còn thấy địa chỉ IP của máy chủ.
Hãy quay lại cài đặt chế độ triệt tiêu-arp. Cài đặt này được bật cho từng VNI riêng biệt:
interface nve1
member vni 10000
suppress-arp
Sau đó, một số phức tạp phát sinh:
- Để tính năng này hoạt động, cần có dung lượng trong bộ nhớ TCAM. Dưới đây là ví dụ về cài đặt chopress-arp:
hardware access-list tcam region arp-ether 256
Cài đặt này sẽ yêu cầu rộng gấp đôi. Nghĩa là, nếu bạn đặt 256 thì bạn cần giải phóng 512 trong TCAM. Việc thiết lập TCAM nằm ngoài phạm vi của bài viết này, vì việc thiết lập TCAM chỉ phụ thuộc vào nhiệm vụ được giao cho bạn và có thể khác nhau giữa các mạng.
- Việc triển khai chế độ triệt tiêu phải được thực hiện trên tất cả các thiết bị chuyển mạch Lá. Tuy nhiên, sự phức tạp có thể phát sinh khi định cấu hình trên các cặp Lá nằm trong miền VPC. Nếu TCAM bị thay đổi, tính nhất quán giữa các cặp sẽ bị phá vỡ và một nút có thể bị ngừng hoạt động. Ngoài ra, có thể cần phải khởi động lại thiết bị để áp dụng cài đặt thay đổi TCAM.
Do đó, bạn cần cân nhắc cẩn thận liệu trong trường hợp của bạn, liệu có đáng triển khai cài đặt này trong một nhà máy đang hoạt động hay không.
Điều này kết thúc phần đầu tiên của loạt bài. Trong phần tiếp theo, chúng ta sẽ xem xét việc định tuyến thông qua kết cấu VxLAN với việc phân tách các mạng thành các VRF khác nhau.
Và bây giờ tôi mời mọi người
Nguồn: www.habr.com