Nhà máy VxLAN. Phần 1

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 "Kỹ sự mạng", Tôi đã chuẩn bị một loạt bài viết về công nghệ VxLAN EVPN.

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.

Nhà máy VxLAN. Phần 1

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.

  1. Mạng lưới lót
  2. BGP ngang hàng cho họ địa chỉ l2vpn evpn
  3. Thiết lập NVE
  4. Ức chế-arp

Mạng lưới lót

Cấu trúc liên kết được sử dụng như sau:

Nhà máy VxLAN. Phần 1

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à máy VxLAN. Phần 1

Để đị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:

Nhà máy VxLAN. Phần 1

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:

Nhà máy VxLAN. Phần 1

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:

  1. Máy chủ-1 gửi yêu cầu APR đến địa chỉ Broadcast của mạng của nó.
  2. 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:

Nhà máy VxLAN. Phần 1

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 hội thảo trên web miễn phí, trong đó tôi sẽ kể chi tiết cho bạn về khóa học. 20 người tham gia đầu tiên đăng ký hội thảo trực tuyến này sẽ nhận được Chứng nhận giảm giá qua email trong vòng 1-2 ngày sau khi phát sóng.

Nguồn: www.habr.com

Thêm một lời nhận xét