Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Skydive to open source, analizator topologii sieci i protokołów w czasie rzeczywistym. Ma na celu zapewnienie kompleksowego sposobu zrozumienia tego, co dzieje się w infrastrukturze sieciowej.

Aby Cię zainteresować, dam ci kilka zrzutów ekranu dotyczących Skydive. Poniżej pojawi się post z wprowadzeniem do Skydive.

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Post "Wprowadzenie do skydive.network» na Habré.

Skydive wyświetla topologię sieci poprzez odbieranie zdarzeń sieciowych od agentów Skydive. Czy zastanawiałeś się kiedyś jak dodać lub wyświetlić na schemacie topologii komponenty sieci znajdujące się poza siecią agenta Skydive lub obiekty niesieciowe takie jak TOR, przechowywanie danych itp. Nie musisz się już tym martwić dzięki API reguły Node.

Od wersji 0.20 Skydive udostępnia API reguł węzłów, którego można używać do tworzenia nowych węzłów i krawędzi oraz do aktualizowania metadanych istniejących węzłów. Interfejs API reguł węzła jest podzielony na dwa interfejsy API: interfejs API reguł węzła i interfejs API reguł brzegowych. Interfejs API reguły węzła służy do tworzenia nowego węzła i aktualizowania metadanych istniejącego węzła. API reguł brzegowych służy do tworzenia granicy pomiędzy dwoma węzłami, tj. łączy dwa węzły.

Na tym blogu zobaczymy dwa przypadki użycia, z których jeden dotyczy komponentu sieciowego, który nie jest częścią sieci spadochronowej. Druga opcja to komponent inny niż sieciowy. Wcześniej przyjrzymy się kilku podstawowym sposobom korzystania z interfejsu API reguł topologii.

Tworzenie węzła spadochronowego

Aby utworzyć węzeł, musisz podać unikalną nazwę węzła i prawidłowy typ węzła. Możesz także podać dodatkowe opcje.

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": ""
}

Zaktualizuj metadane węzłów Skydive

Aby zaktualizować metadane istniejącego węzła, musisz podać zapytanie gremlin, aby wybrać węzły, w których chcesz zaktualizować metadane. Zgodnie z Twoją prośbą możesz zaktualizować metadane jednego lub większej liczby węzłów za pomocą reguły pojedynczego węzła.

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')"
}

Tworzenie krawędzi spadochronowej

Aby utworzyć krawędź, należy określić węzły źródłowe i docelowe oraz typ połączenia krawędzi; aby utworzyć węzeł podrzędny, wartością typu łącza musi być własność; podobnie, aby utworzyć warstwę typu łącza 2, wartość typu łącza musi wynosić warstwa 2. Można utworzyć więcej niż jedno połączenie pomiędzy dwoma węzłami, ale typ połączenia musi być inny.

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"
  }
}

Pierwszy przypadek użycia

W tym przypadku przyjrzymy się, jak wyświetlić urządzenie niesieciowe w topologii skoku spadochronowego. Rozważmy, że mamy hurtownię danych, którą należy wyświetlić na diagramie topologii skoku spadochronowego z pewnymi przydatnymi metadanymi.

Musimy tylko utworzyć regułę węzła, aby dodać urządzenie do topologii. Możemy dodać metadane urządzenia w ramach polecenia tworzenia lub później utworzyć jedno lub więcej poleceń reguły węzła aktualizacji.

Uruchom następujące polecenie reguły hosta, aby dodać urządzenie pamięci masowej do diagramu topologii.

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"

Uruchom polecenie poniżej reguły brzegowej, aby powiązać utworzony węzeł z węzłem hosta.

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

Po wykonaniu powyższych poleceń możesz teraz zobaczyć urządzenie widoczne na schemacie topologii spadochroniarstwa z podanymi metadanymi, jak pokazano na obrazku poniżej.

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Drugi przypadek użycia

W tym przypadku zobaczymy, jak dodać urządzenie sieciowe, które nie jest częścią sieci spadochronowej. Spójrzmy na ten przykład. Mamy dwóch agentów Skydive działających na dwóch różnych hostach, aby połączyć te dwa hosty, potrzebujemy przełącznika TOR. Chociaż możemy to osiągnąć, definiując węzły struktury i łącza w pliku konfiguracyjnym, zobaczmy, jak możemy zrobić to samo za pomocą interfejsu API reguł topologii.

Bez przełącznika TOR obaj agenci będą wyglądać jak dwa różne węzły bez żadnych łączy, jak pokazano na obrazku poniżej.

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Teraz uruchom następujące polecenia reguł hosta, aby utworzyć przełącznik i porty 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"

Jak widać, przełącznik TOR i porty zostały utworzone i dodane do topologii skoków spadochronowych, a topologia będzie teraz wyglądać jak na obrazku poniżej.

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Teraz uruchom następujące polecenia Edge Rule, aby utworzyć połączenie między przełącznikiem TOR, portem 1 i publicznym interfejsem hosta 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"

Uruchom następujące polecenia, aby utworzyć łącze między portem 2 przełącznika TOR a publicznym interfejsem hosta 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"

Tworzone są teraz powiązania własności i warstwy 2 pomiędzy przełącznikiem TOR a portem, a także powiązania warstwy 2 pomiędzy agentami i portami. Teraz ostateczna topologia będzie wyglądać jak na obrazku poniżej.

Ręczne dodanie węzła do topologii Skydive poprzez klienta Skydive

Teraz dwa hosty/agenty są prawidłowo połączone i możesz przetestować połączenie lub utworzyć przechwytywanie najkrótszej ścieżki między dwoma hostami.

PS Link do oryginalny post

Poszukujemy osób, które mogłyby pisać posty na temat innych funkcji Skydive.
Czat telegramowy poprzez skydive.network.

Źródło: www.habr.com

Dodaj komentarz