Nhà máy VxLAN. Phần 3

Xin chào, Habr. Tôi đang hoàn thành một loạt bài viết, dành riêng cho việc ra mắt khóa học "Kỹ sự mạng" bởi OTUS, sử dụng công nghệ VxLAN EVPN để định tuyến trong mạng và sử dụng Tường lửa để hạn chế quyền truy cập giữa các dịch vụ nội bộ

Nhà máy VxLAN. Phần 3

Các phần trước của loạt bài này có thể được tìm thấy tại các liên kết sau:

Hôm nay chúng ta sẽ tiếp tục nghiên cứu logic định tuyến bên trong VxLAN. Trong phần trước, chúng ta đã xem xét định tuyến nội bộ trong một VRF duy nhất. Tuy nhiên, có thể có một số lượng lớn các dịch vụ khách trong mạng và tất cả chúng phải được phân phối vào các VRF khác nhau để phân biệt quyền truy cập giữa chúng. Ngoài việc tách mạng, doanh nghiệp có thể cần kết nối Tường lửa để hạn chế quyền truy cập giữa các dịch vụ này. Đúng, đây không thể gọi là giải pháp tốt nhất, nhưng thực tế hiện đại đòi hỏi những “giải pháp hiện đại”.

Hãy xem xét hai tùy chọn để định tuyến giữa các VRF:

  1. Định tuyến mà không cần rời khỏi kết cấu VxLAN;
  2. Định tuyến trên thiết bị bên ngoài.

Hãy bắt đầu với logic định tuyến giữa các VRF. Có một số lượng VRF nhất định. Để định tuyến giữa các VRF, bạn cần chọn một thiết bị trong mạng sẽ biết về tất cả các VRF (hoặc các phần cần định tuyến giữa các VRF), ví dụ, một thiết bị như vậy có thể là một trong các công tắc Lá (hoặc tất cả cùng một lúc) . Cấu trúc liên kết này sẽ trông như thế này:

Nhà máy VxLAN. Phần 3

Những nhược điểm của cấu trúc liên kết này là gì?

Đúng vậy, mọi Lá đều cần biết về tất cả các VRF (và tất cả thông tin có trong chúng) trên mạng, điều này dẫn đến mất bộ nhớ và tăng tải mạng. Rốt cuộc, thường thì mỗi công tắc Lá không cần biết về mọi thứ trên mạng.

Tuy nhiên, hãy xem xét phương pháp này chi tiết hơn, vì đối với các mạng nhỏ, tùy chọn này khá phù hợp (nếu không có yêu cầu kinh doanh cụ thể)

Tại thời điểm này, bạn có thể có câu hỏi về cách chuyển thông tin từ VRF sang VRF, bởi vì mục đích của công nghệ này chính xác là việc phổ biến thông tin phải được hạn chế.

Và câu trả lời nằm ở các chức năng như xuất, nhập thông tin định tuyến (việc thiết lập công nghệ này đã được xem xét trong 2 các phần của chu kỳ). Hãy để tôi nhắc lại ngắn gọn:

Khi cài đặt VRF ở chế độ AF, bạn phải chỉ định route-target để biết thông tin định tuyến xuất nhập khẩu. Bạn có thể chỉ định nó tự động. Khi đó giá trị sẽ bao gồm ASN BGP và L3 VNI liên kết với VRF. Điều này thuận tiện khi bạn chỉ có một ASN trong nhà máy của mình:

vrf context PROD20
  address-family ipv4 unicast
    route-target export auto      ! В автоматическом режиме экспортируется RT-65001:99000
    route-target import auto

Tuy nhiên, nếu bạn có nhiều ASN và cần chuyển tuyến giữa chúng, thì cấu hình thủ công sẽ là một lựa chọn thuận tiện và có thể mở rộng hơn. route-target. Đề xuất cho thiết lập thủ công là số đầu tiên, hãy sử dụng số thuận tiện cho bạn, ví dụ: 9999.
Giá trị thứ hai nên được đặt bằng VNI cho VRF đó.

Hãy cấu hình nó như sau:

vrf context PROD10
  address-family ipv4 unicast
    route-target export 9999:99000          
    route-target import 9999:99000
    route-target import 9999:77000         ! Пример 1 import из другого VRF
    route-target import 9999:88000         ! Пример 2 import из другого VRF

Nó trông như thế nào trong bảng định tuyến:

Leaf11# sh ip route vrf prod
<.....>
192.168.20.0/24, ubest/mbest: 1/0
    *via 10.255.1.20%default, [200/0], 00:24:45, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN          ! префикс доступен через L3VNI 99000

Hãy xem xét tùy chọn thứ hai để định tuyến giữa các VRF - thông qua thiết bị bên ngoài, ví dụ như Tường lửa.

Có một số tùy chọn để làm việc thông qua thiết bị bên ngoài:

  1. Thiết bị biết VxLAN là gì và chúng ta có thể thêm nó vào một phần vải;
  2. Thiết bị không biết gì về VxLAN.

Chúng tôi sẽ không tập trung vào tùy chọn đầu tiên, vì logic sẽ gần giống như được hiển thị ở trên - chúng tôi đưa tất cả các VRF vào Tường lửa và định cấu hình định tuyến giữa các VRF trên đó.

Hãy xem xét tùy chọn thứ hai, khi Tường lửa của chúng tôi không biết gì về VxLAN (tất nhiên bây giờ, thiết bị có hỗ trợ VxLAN đang xuất hiện. Ví dụ: Checkpoint đã thông báo hỗ trợ trong phiên bản R81. Bạn có thể đọc về nó đâytuy nhiên tất cả mới ở giai đoạn thử nghiệm và chưa có niềm tin vào độ ổn định khi vận hành).

Khi kết nối thiết bị ngoài, ta được sơ đồ sau:

Nhà máy VxLAN. Phần 3

Như bạn có thể thấy trên sơ đồ, một nút cổ chai xuất hiện ở giao diện với Tường lửa. Điều này phải được tính đến trong tương lai khi lập kế hoạch mạng và tối ưu hóa lưu lượng mạng.

Tuy nhiên, chúng ta hãy quay lại vấn đề ban đầu về định tuyến giữa các VRF. Nhờ việc thêm Tường lửa, chúng tôi đi đến kết luận rằng Tường lửa phải biết về tất cả các VRF. Để làm được điều này, tất cả các VRF cũng phải được cấu hình trên các Lá viền và Tường lửa phải được kết nối với từng VRF bằng một liên kết riêng.

Kết quả là, sơ đồ với Tường lửa:

Nhà máy VxLAN. Phần 3

Tức là trên Tường lửa bạn cần cấu hình giao diện cho từng VRF nằm trên mạng. Nhìn chung, logic có vẻ không phức tạp và điều duy nhất tôi không thích ở đây là số lượng giao diện khổng lồ trên Tường lửa, nhưng đã đến lúc nghĩ đến tự động hóa.

Khỏe. Chúng tôi đã kết nối Tường lửa và thêm nó vào tất cả VRF. Nhưng bây giờ làm thế nào chúng ta có thể buộc lưu lượng truy cập từ mỗi Lá đi qua Tường lửa này?

Trên Lá được kết nối với Tường lửa, sẽ không có vấn đề gì phát sinh vì tất cả các tuyến đều cục bộ:

0.0.0.0/0, ubest/mbest: 1/0
    *via 10.254.13.55, [1/0], 6w5d, static       ! маршрут по-умолчанию через Firewall

Tuy nhiên, còn những chiếc Leafs ở xa thì sao? Làm cách nào để chuyển cho họ tuyến đường bên ngoài mặc định?

Đúng vậy, thông qua EVPN loại 5, giống như bất kỳ tiền tố nào khác trên kết cấu VxLAN. Tuy nhiên, điều này không đơn giản như vậy (nếu chúng ta đang nói về Cisco, vì tôi chưa kiểm tra với các nhà cung cấp khác)

Tuyến đường mặc định phải được quảng cáo từ Lá mà Tường lửa được kết nối. Tuy nhiên, để truyền được lộ trình, Lá phải tự mình biết được. Và ở đây có một vấn đề nhất định phát sinh (có lẽ chỉ đối với tôi), tuyến đường phải được đăng ký tĩnh trong VRF nơi bạn muốn quảng cáo tuyến đường như vậy:

vrf context PROD10
    ip route 0.0.0.0/0 10.254.13.55

Tiếp theo, trong cấu hình BGP, đặt tuyến đường này trong AF IPv4:

router bgp 65001
    vrf prod
        address-family ipv4 unicast
            network 0.0.0.0/0

Tuy nhiên, đó không phải là tất cả. Bằng cách này, tuyến đường mặc định sẽ không được đưa vào họ l2vpn evpn. Ngoài ra, bạn cần định cấu hình phân phối lại:

router bgp 65001
    vrf prod
        address-family ipv4 unicast
            network 0.0.0.0/0
            redistribute static route-map COMMON_OUT

Chúng tôi chỉ ra tiền tố nào sẽ được đưa vào BGP thông qua phân phối lại

route-map COMMON_OUT permit 10
  match ip address prefix-list COMMON_OUT

ip prefix-list COMMON_OUT seq 10 permit 0.0.0.0/0

Bây giờ tiền tố 0.0.0.0/0 rơi vào tuyến EVPN loại 5 và được truyền đến phần còn lại của Lá:

0.0.0.0/0, ubest/mbest: 1/0
    *via 10.255.1.5%default, [200/0], 5w6d, bgp-65001, internal, tag 65001, segid: 99000 tunnelid: 0xaff0105 encap: VXLAN
    ! 10.255.1.5 - Виртуальный адрес Leaf(так как Leaf выступают в качестве VPС пары), к которому подключен Firewall

Trong bảng BGP, chúng ta cũng có thể quan sát kết quả loại tuyến 5 với tuyến mặc định qua 10.255.1.5:

* i[5]:[0]:[0]:[0]:[0.0.0.0]/224
                      10.255.1.5                        100          0 i
*>i                   10.255.1.5                        100          0 i

Điều này kết thúc loạt bài viết dành cho EVPN. Trong tương lai, tôi sẽ cố gắng xem xét hoạt động của VxLAN kết hợp với Multicast, vì phương pháp này được coi là có khả năng mở rộng cao hơn (hiện tại là một tuyên bố gây tranh cãi)

Nếu bạn vẫn còn thắc mắc/đề xuất về chủ đề này, hãy xem xét bất kỳ chức năng nào của EVPN - hãy viết, chúng tôi sẽ xem xét thêm.

Nhà máy VxLAN. Phần 3

Nguồn: www.habr.com

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