Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Skydive is een open-source netwerk- en protocoltopologie-analyzer in realtime. Het is ontworpen om een uitgebreide manier te bieden om te begrijpen wat er gebeurt in de netwerkinfrastructuur.

Om je interesse te wekken, zal ik een paar schermafbeeldingen over Skydive geven. Hieronder komt een blogpost over de inleiding tot Skydive.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Post "Inleiding tot skydive.network" op Habr.

Skydive toont de netwerkstructuur door netwerkgebeurtenissen van Skydive-agenten te ontvangen. Heb je je ooit afgevraagd hoe je netwerkcomponenten die zich buiten het agentennetwerk van Skydive bevinden of niet-netwerkobjecten zoals TOR, datastorage, enz. aan de topologiediagram kunt toevoegen of weergeven? Maak je daar geen zorgen meer over, dankzij de Node rule API.

Met versie 0.20 biedt Skydive de Node rule API, die kan worden gebruikt om nieuwe knooppunten en randen te creƫren en om de metadata van bestaande knooppunten bij te werken. De Node rule API is verdeeld in twee API-interfaces: de knooppuntregel-API en de randregel-API. De knooppuntregel-API wordt gebruikt om een nieuw knooppunt te maken en de metadata van een bestaand knooppunt bij te werken. De randregel-API wordt gebruikt om een verbinding tussen twee knooppunten te creƫren, d.w.z. om twee knooppunten met elkaar te verbinden.

In deze blog bekijken we twee use cases, waarvan er ƩƩn een netwerkcomponent is die geen deel uitmaakt van het skydive-netwerk. De tweede is een niet-netwerkcomponent. Voorafgaand aan dit gaan we enkele belangrijke gebruiksmogelijkheden van de topologieregels API bekijken.

Knooppunt maken in Skydive

Om een knooppunt te maken, moet je een unieke naam voor het knooppunt opgeven en een geldig knooppunttype. Je kunt ook enkele aanvullende parameters verstrekken.

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

Metadata van Knopen in Skydive Bijwerken

Om de metadata van een bestaand knooppunt bij te werken, moet je een gremlin-query opgeven om de knooppunten te selecteren waarvan je de metadata wilt bijwerken. Afhankelijk van je query kun je de metadata van een of meerdere knooppunten bijwerken met behulp van de regel voor ƩƩn knooppunt.

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

Het maken van een Skydive-rand

Om een rand te maken, moeten de bronnen- en bestemmingsknopen en het type verbinding worden opgegeven; voor het maken van een dochterknoop moet de waarde van het type verbinding 'ownership' zijn, en voor het maken van een verbinding van het type layer2 moet het type verbinding 'layer2' zijn. U kunt meer dan ƩƩn verbinding tussen twee knopen maken, maar het type verbinding moet verschillend zijn.

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

Eerste gebruiksvariant

In dit geval bekijken we hoe we een niet-netwerkapparaat in de Skydive-topologie kunnen weergeven. Laten we aannemen dat we een opslagapparaat hebben dat moet worden weergegeven in het topologisch diagram van Skydive met enkele nuttige metadata.

We hoeven alleen maar een knooppuntregel te maken om het apparaat aan de topologie toe te voegen. We kunnen de metadata van het apparaat als onderdeel van de create-opdracht toevoegen of later ƩƩn of meerdere update node rules maken.

Voer de onderstaande knooppuntregelopdracht uit om het opslagapparaat aan het topologisch schema toe te voegen.

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"

Voer de onderstaande randregelopdracht uit om de gemaakte knoop te koppelen aan de hostknoop.

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

Na de bovenstaande opdrachten kunt u nu het apparaat zien dat zichtbaar is in het topologisch schema van Skydive met de opgegeven metadata, zoals hieronder afgebeeld.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Tweede gebruiksvariant

In dit geval zullen we zien hoe we een netwerkapparaat toevoegen dat geen onderdeel is van het skydive-netwerk. Laten we dit voorbeeld bekijken. We hebben twee skydive-agents die op twee verschillende hosts werken, en om deze twee hosts met elkaar te verbinden, hebben we een TOR-switch nodig. Zelfs als we dit kunnen bereiken door de knooppunten en verwijzingen in het configuratiebestand te definiƫren, laten we eens kijken hoe we hetzelfde kunnen doen met de API-regels van de topologie.

Zonder de TOR-switch zullen de twee agents eruitzien als twee verschillende knooppunten zonder enige verwijzingen, zoals hieronder weergegeven.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Voer nu de volgende Node Rule-commando's uit om de TOR-switch en poorten te maken.

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"

Zoals je kunt zien, zijn de TOR-switch en poorten aangemaakt en toegevoegd aan de skydive-topologie, en nu ziet de topologie eruit zoals hieronder weergegeven.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Voer nu de onderstaande Edge Rule-commando's uit om een verbinding te maken tussen de TOR-switch, poort 1 en de publieke interface van host 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"

Voer de volgende commando's uit om een verbinding te maken tussen de TOR-switch, poort 2 en de publieke interface van host 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"

Nu worden de ownership- en layer2-verbindingen tussen de TOR-switch en de poorten gemaakt, evenals de layer2-verbindingen tussen de agents en de poorten. De eindtopologie ziet er nu uit zoals hieronder weergegeven.

Een node handmatig toevoegen aan de Skydive-topologie via de Skydive-client.

Nu zijn de twee hosts / agents correct verbonden, en je kunt de verbinding controleren of een kortste pad tussen de twee hosts maken.

P.S. Link naar het origineel van de post

Er wordt gezocht naar mensen die posts kunnen schrijven over andere mogelijkheden van Skydive.
Telegram-chat over skydive.network.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster