Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Skydive là một công cụ phân tích giao thức và cấu trúc liên kết mạng thời gian thực, mã nguồn mở. Nó nhằm mục đích cung cấp một cách toàn diện để hiểu những gì đang xảy ra trong cơ sở hạ tầng mạng.

Để bạn quan tâm, tôi sẽ cung cấp cho bạn một vài ảnh chụp màn hình về Skydive. Bên dưới sẽ có bài viết giới thiệu về Skydive.

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Bưu kiện "Giới thiệu về skydive.network» trên Habré.

Skydive hiển thị cấu trúc liên kết mạng bằng cách nhận các sự kiện mạng từ các đại lý Skydive. Bạn đã bao giờ tự hỏi làm thế nào để thêm hoặc hiển thị trong sơ đồ cấu trúc liên kết các thành phần mạng nằm ngoài mạng tác nhân Skydive hoặc các đối tượng không thuộc mạng như TOR, lưu trữ dữ liệu, v.v. Không cần phải lo lắng về điều đó nữa nhờ API quy tắc Node.

Kể từ phiên bản 0.20, Skydive cung cấp API quy tắc nút có thể được sử dụng để tạo các nút và cạnh mới cũng như cập nhật siêu dữ liệu của các nút hiện có. API quy tắc nút được chia thành hai API: API quy tắc nút và API quy tắc cạnh. API quy tắc nút được sử dụng để tạo nút mới và cập nhật siêu dữ liệu của nút hiện có. API quy tắc cạnh được sử dụng để tạo ranh giới giữa hai nút, tức là. kết nối hai nút.

Trong blog này, chúng ta sẽ thấy hai trường hợp sử dụng, một trong số đó là thành phần mạng không thuộc mạng nhảy dù. Tùy chọn thứ hai là một thành phần không có mạng. Trước đó, chúng ta sẽ xem xét một số cách cơ bản để sử dụng API Quy tắc cấu trúc liên kết.

Tạo nút nhảy dù

Để tạo nút, bạn phải cung cấp tên nút duy nhất và loại nút hợp lệ. Bạn cũng có thể cung cấp một số tùy chọn bổ sung.

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

Cập nhật siêu dữ liệu nút Skydive

Để cập nhật siêu dữ liệu của nút hiện có, bạn phải cung cấp truy vấn gremlin để chọn nút mà bạn muốn cập nhật siêu dữ liệu. Theo yêu cầu của bạn, bạn có thể cập nhật siêu dữ liệu của một hoặc nhiều nút bằng cách sử dụng một quy tắc nút duy nhất.

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

Tạo một Skydive Edge

Để tạo một cạnh, bạn phải chỉ định các nút nguồn và đích cũng như loại liên kết của cạnh; để tạo nút con, giá trị loại liên kết phải là quyền sở hữu; tương tự, để tạo loại liên kết layer2, giá trị loại liên kết phải là lớp2. Bạn có thể tạo nhiều liên kết giữa hai nút, nhưng loại liên kết phải khác nhau.

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

Trường hợp sử dụng đầu tiên

Trong trường hợp này, chúng ta sẽ xem cách hiển thị một thiết bị không có mạng trong cấu trúc liên kết nhảy dù. Hãy xem xét rằng chúng ta có một kho dữ liệu cần được hiển thị trong sơ đồ cấu trúc liên kết nhảy dù với một số siêu dữ liệu hữu ích.

Chúng ta chỉ cần tạo quy tắc nút để thêm thiết bị vào cấu trúc liên kết. Chúng tôi có thể thêm siêu dữ liệu thiết bị như một phần của lệnh tạo hoặc sau đó tạo một hoặc nhiều lệnh quy tắc nút cập nhật.

Chạy lệnh quy tắc máy chủ sau để thêm thiết bị lưu trữ vào sơ đồ cấu trúc liên kết.

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

Chạy lệnh bên dưới quy tắc cạnh để liên kết nút đã tạo với nút máy chủ.

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

Sau các lệnh trên, giờ đây bạn có thể thấy thiết bị hiển thị trong sơ đồ cấu trúc liên kết nhảy dù với siêu dữ liệu đã cho như trong hình bên dưới.

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Trường hợp sử dụng thứ hai

Trong trường hợp này, chúng ta sẽ xem cách thêm một thiết bị mạng không thuộc mạng nhảy dù. Hãy xem ví dụ này. Chúng tôi có hai tác nhân nhảy dù chạy trên hai máy chủ khác nhau, để kết nối hai máy chủ này, chúng tôi cần có bộ chuyển mạch TOR. Mặc dù chúng ta có thể đạt được điều này bằng cách xác định các nút cấu trúc và liên kết trong tệp cấu hình, hãy xem cách chúng ta có thể thực hiện tương tự bằng cách sử dụng API Quy tắc cấu trúc liên kết.

Nếu không có công tắc TOR, hai tác nhân sẽ xuất hiện dưới dạng hai nút khác nhau mà không có bất kỳ liên kết nào, như trong hình bên dưới.

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Bây giờ hãy chạy các lệnh Quy tắc máy chủ sau để tạo bộ chuyển mạch và cổng TOR.

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

Như bạn có thể thấy, công tắc TOR và các cổng đã được tạo và thêm vào cấu trúc liên kết nhảy dù và cấu trúc liên kết bây giờ sẽ trông giống như hình ảnh bên dưới.

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Bây giờ hãy chạy các lệnh Edge Rule sau để tạo kết nối giữa bộ chuyển mạch TOR, cổng 1 và giao diện chung của máy chủ 1.

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

Chạy các lệnh sau để tạo liên kết giữa cổng chuyển mạch TOR 2 và giao diện chung của máy chủ 2

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

Quyền sở hữu và liên kết lớp 2 hiện được tạo giữa bộ chuyển mạch TOR và cổng, cũng như liên kết lớp 2 giữa các tác nhân và cổng. Bây giờ cấu trúc liên kết cuối cùng sẽ trông giống như hình ảnh bên dưới.

Thêm nút vào cấu trúc liên kết Skydive theo cách thủ công thông qua ứng dụng khách Skydive

Bây giờ hai máy chủ/tác nhân đã được kết nối chính xác và bạn có thể kiểm tra kết nối hoặc tạo bản chụp đường dẫn ngắn nhất giữa hai máy chủ.

PS Liên kết tới bài gốc

Chúng tôi đang tìm kiếm những người có thể viết bài về các tính năng Skydive khác.
Trò chuyện điện tín thông qua skydive.network.

Nguồn: www.habr.com

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