Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Skydive is een open source, real-time netwerktopologie en protocolanalysator. Het is bedoeld om een ​​alomvattende manier te bieden om te begrijpen wat er gebeurt in een netwerkinfrastructuur.

Om je te interesseren, geef ik je een paar screenshots over Skydive. Hieronder zal een bericht verschijnen over een introductie tot Skydive.

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Na "Inleiding tot skydive.network» op Habré.

Skydive geeft de netwerktopologie weer door netwerkgebeurtenissen van Skydive-agenten te ontvangen. Heeft u zich ooit afgevraagd hoe u netwerkcomponenten kunt toevoegen of weergeven in een topologiediagram die zich buiten het Skydive-agentnetwerk of niet-netwerkobjecten zoals TOR, gegevensopslag, enz. bevinden. U hoeft zich daar geen zorgen meer over te maken dankzij de Node rule API.

Sinds versie 0.20 biedt Skydive een Node rule API die kan worden gebruikt om nieuwe knooppunten en randen te creëren en om de metagegevens van bestaande knooppunten bij te werken. De knooppuntregel-API is verdeeld in twee API's: de knooppuntregel-API en de edge-regel-API. De Node Rule API wordt gebruikt om een ​​nieuw knooppunt te maken en de metagegevens van een bestaand knooppunt bij te werken. De edge rule API wordt gebruikt om een ​​grens tussen twee knooppunten te creëren, d.w.z. verbindt twee knooppunten.

In deze blog zullen we twee use cases zien, waarvan er één een netwerkcomponent is die geen deel uitmaakt van het skydive-netwerk. De tweede optie is een niet-netwerkcomponent. Daarvoor zullen we enkele basismanieren bekijken om de Topology Rules API te gebruiken.

Een Skydive-knooppunt maken

Om een ​​knooppunt te maken, moet u een unieke knooppuntnaam en een geldig knooppunttype opgeven. U kunt ook enkele extra opties opgeven.

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

Metagegevens van Skydive-knooppunten bijwerken

Om de metagegevens van een bestaand knooppunt bij te werken, moet u een Gremlin-query opgeven om de knooppunten te selecteren waarop u de metagegevens wilt bijwerken. Op uw verzoek kunt u de metagegevens van een of meer knooppunten bijwerken met behulp van één knooppuntregel.

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

Een Skydive-rand creëren

Om een ​​rand te maken, moet u de bron- en bestemmingsknooppunten en het linktype van de rand specificeren; om een ​​onderliggend knooppunt te maken, moet de waarde van het linktype eigendom zijn; op dezelfde manier moet, om een ​​linktypelaag2 te maken, de waarde van het linktype zijn laag2. U kunt meer dan één koppeling tussen twee knooppunten maken, maar het type koppeling 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 gebruikscasus

In dit geval zullen we bekijken hoe we een niet-netwerkapparaat in de skydive-topologie kunnen weergeven. Laten we bedenken dat we een datawarehouse hebben dat moet worden weergegeven in een skydive-topologiediagram met enkele nuttige metagegevens.

We hoeven alleen maar een knooppuntregel te maken om het apparaat aan de topologie toe te voegen. We kunnen metagegevens van het apparaat toevoegen als onderdeel van de opdracht Create, of later een of meer regelopdrachten voor het bijwerken van knooppunten maken.

Voer de volgende hostregelopdracht uit om een ​​opslagapparaat aan het topologiediagram 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 opdracht uit onder de randregel om het gemaakte knooppunt te koppelen aan het hostknooppunt.

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

Na de bovenstaande opdrachten kun je het apparaat nu zichtbaar zien in het skydive-topologiediagram met de gegeven metagegevens, zoals weergegeven in de onderstaande afbeelding.

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Tweede gebruiksscenario

In dit geval zullen we zien hoe u een netwerkapparaat kunt toevoegen dat geen deel uitmaakt van het skydive-netwerk. Laten we naar dit voorbeeld kijken. We hebben twee skydive-agents die op twee verschillende hosts draaien. Om deze twee hosts met elkaar te verbinden hebben we een TOR-switch nodig. Ook al kunnen we dit bereiken door structuurknooppunten en koppelingen in een configuratiebestand te definiëren, laten we eens kijken hoe we hetzelfde kunnen doen met behulp van de Topology Rules API.

Zonder een TOR-schakelaar verschijnen de twee agenten als twee verschillende knooppunten zonder enige koppeling, zoals weergegeven in de onderstaande afbeelding.

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Voer nu de volgende Host Rules-opdrachten 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 u kunt zien, zijn de TOR-switch en poorten gemaakt en toegevoegd aan de skydive-topologie, en de topologie zal er nu uitzien als de onderstaande afbeelding.

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Voer nu de volgende Edge Rule-opdrachten uit om een ​​verbinding tot stand te brengen tussen de TOR-switch, poort 1 en de openbare 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 opdrachten uit om een ​​koppeling te maken tussen TOR-switchpoort 2 en de openbare 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 eigendoms- en laag2-koppelingen gemaakt tussen de TOR-switch en de poort, evenals laag2-koppelingen tussen agenten en poorten. Nu zal de uiteindelijke topologie er uitzien als de onderstaande afbeelding.

Handmatig een knooppunt aan de Skydive-topologie toevoegen via de Skydive-client

Nu zijn de twee hosts/agenten correct verbonden en kunt u de verbinding testen of een kortste padregistratie tussen de twee hosts maken.

PS-link naar origineel bericht

We zijn op zoek naar mensen die berichten kunnen schrijven over andere Skydive-functies.
Telegram-chat via skydive.network.

Bron: www.habr.com

Voeg een reactie