Initial commit with submodule PaperMod
This commit is contained in:
16
.gitignore
vendored
Normal file
16
.gitignore
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Generated files by hugo
|
||||
/public/
|
||||
/resources/_gen/
|
||||
/assets/jsconfig.json
|
||||
hugo_stats.json
|
||||
|
||||
# Executable may be added to repository
|
||||
hugo.exe
|
||||
hugo.darwin
|
||||
hugo.linux
|
||||
|
||||
# Temporary lock file while building
|
||||
/.hugo_build.lock
|
||||
|
||||
# MacOs files
|
||||
.DS_Store
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "themes/PaperMod"]
|
||||
path = themes/PaperMod
|
||||
url = https://github.com/adityatelange/hugo-PaperMod.git
|
||||
5
archetypes/default.md
Normal file
5
archetypes/default.md
Normal file
@@ -0,0 +1,5 @@
|
||||
+++
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
date = {{ .Date }}
|
||||
draft = true
|
||||
+++
|
||||
47
assets/Draw/VXLAN/.$Couches Matérielles.drawio.bkp
Normal file
47
assets/Draw/VXLAN/.$Couches Matérielles.drawio.bkp
Normal file
@@ -0,0 +1,47 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
|
||||
<diagram name="Page-1" id="gYvVXaUcspGOavdM-spI">
|
||||
<mxGraphModel dx="1603" dy="1214" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="TGfS5-F01eIU8KXbd5bW-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="160" width="380" height="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=1;dashed=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" source="4hq1pMXHRnUBchX5YdJF-1" target="4hq1pMXHRnUBchX5YdJF-6" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-11" value="<font color="#808080">Routeur</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4hq1pMXHRnUBchX5YdJF-9" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.1515" y="6" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-1" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Réseaux</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="310" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;dashed=1;" parent="1" source="4hq1pMXHRnUBchX5YdJF-3" target="4hq1pMXHRnUBchX5YdJF-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-10" value="<font color="#808080">Switch</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4hq1pMXHRnUBchX5YdJF-8" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.226" y="2" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-3" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Liaison</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="360" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-4" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Physique</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;gradientColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="410" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-5" value="<font color="#808080">Couches Hautes</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="190" width="120" height="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-6" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="480" y="250" width="57.4" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-7" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/switch.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="473.7" y="345" width="70" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
58
assets/Draw/VXLAN/.$Transports.drawio.bkp
Normal file
58
assets/Draw/VXLAN/.$Transports.drawio.bkp
Normal file
@@ -0,0 +1,58 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
|
||||
<diagram name="Page-1" id="M-J2hQaEqkAF_H8mkpg_">
|
||||
<mxGraphModel dx="641" dy="486" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-16" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="320" width="370" height="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-2" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="340" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-4" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" vertex="1" parent="1">
|
||||
<mxGeometry x="390" y="432" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-5" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="432" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-7" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;" vertex="1" parent="1">
|
||||
<mxGeometry x="412.84999999999997" y="530" width="28.1" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-8" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;" vertex="1" parent="1">
|
||||
<mxGeometry x="172.84999999999997" y="530" width="28.1" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-9" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/tunnel.svg;" vertex="1" parent="1">
|
||||
<mxGeometry x="235.35" y="523.38" width="143.1" height="28.62" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-10" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashed=1;" edge="1" parent="1" source="qI8_qAPlaHJ_v-PPU4QN-5" target="qI8_qAPlaHJ_v-PPU4QN-2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="632" as="sourcePoint" />
|
||||
<mxPoint x="470" y="582" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-11" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashed=1;" edge="1" parent="1" source="qI8_qAPlaHJ_v-PPU4QN-4" target="qI8_qAPlaHJ_v-PPU4QN-2">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="223" y="455" as="sourcePoint" />
|
||||
<mxPoint x="291" y="427" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-12" value="" style="shape=mxgraph.signs.transportation.truck_1;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;rotation=24;shadow=0;gradientColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="356" y="411" width="34" height="19" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-14" value="" style="shape=mxgraph.signs.transportation.truck_1;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;rotation=338;shadow=0;gradientColor=none;direction=east;flipV=0;flipH=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="223.8" y="411" width="34" height="19" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-15" value="" style="shape=mxgraph.signs.transportation.train_3;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;" vertex="1" parent="1">
|
||||
<mxGeometry x="286.9" y="501.38" width="40" height="22" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-19" value="" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.user;" vertex="1" parent="1">
|
||||
<mxGeometry x="176.65" y="565" width="20.5" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-20" value="" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.user;" vertex="1" parent="1">
|
||||
<mxGeometry x="416.65" y="565" width="20.5" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
47
assets/Draw/VXLAN/Couches Matérielles.drawio
Normal file
47
assets/Draw/VXLAN/Couches Matérielles.drawio
Normal file
@@ -0,0 +1,47 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
|
||||
<diagram name="Page-1" id="gYvVXaUcspGOavdM-spI">
|
||||
<mxGraphModel dx="1603" dy="1214" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="TGfS5-F01eIU8KXbd5bW-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="200" y="160" width="380" height="330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=1;dashed=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" source="4hq1pMXHRnUBchX5YdJF-1" target="4hq1pMXHRnUBchX5YdJF-6" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-11" value="<font color="#808080">Router</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4hq1pMXHRnUBchX5YdJF-9" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.1515" y="6" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-1" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Network</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="310" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;dashed=1;" parent="1" source="4hq1pMXHRnUBchX5YdJF-3" target="4hq1pMXHRnUBchX5YdJF-7" edge="1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-10" value="<font color="#808080">Switch</font>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="4hq1pMXHRnUBchX5YdJF-8" vertex="1" connectable="0">
|
||||
<mxGeometry x="-0.226" y="2" relative="1" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-3" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Data Link</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="360" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-4" value="<font color="#808080" face="-apple-system, system-ui, Segoe UI Variable, Segoe UI, system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji">Physical</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;gradientColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="410" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-5" value="<font color="#808080">Host Layers</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" parent="1" vertex="1">
|
||||
<mxGeometry x="240" y="190" width="120" height="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-6" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="480" y="250" width="57.4" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4hq1pMXHRnUBchX5YdJF-7" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/switch.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="473.7" y="345" width="70" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
58
assets/Draw/VXLAN/Transports.drawio
Normal file
58
assets/Draw/VXLAN/Transports.drawio
Normal file
@@ -0,0 +1,58 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8">
|
||||
<diagram name="Page-1" id="M-J2hQaEqkAF_H8mkpg_">
|
||||
<mxGraphModel dx="1603" dy="1214" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-16" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="120" y="320" width="370" height="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-2" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="270" y="340" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-4" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="390" y="432" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-5" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/shadowed_router.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="150" y="432" width="73.8" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-7" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;" parent="1" vertex="1">
|
||||
<mxGeometry x="412.84999999999997" y="530" width="28.1" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-8" value="" style="fontColor=#0066CC;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.pc;" parent="1" vertex="1">
|
||||
<mxGeometry x="172.84999999999997" y="530" width="28.1" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-9" value="" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/tunnel.svg;" parent="1" vertex="1">
|
||||
<mxGeometry x="235.35" y="523.38" width="143.1" height="28.62" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-10" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashed=1;" parent="1" source="qI8_qAPlaHJ_v-PPU4QN-5" target="qI8_qAPlaHJ_v-PPU4QN-2" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="632" as="sourcePoint" />
|
||||
<mxPoint x="470" y="582" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-11" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=0;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;dashed=1;" parent="1" source="qI8_qAPlaHJ_v-PPU4QN-4" target="qI8_qAPlaHJ_v-PPU4QN-2" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="223" y="455" as="sourcePoint" />
|
||||
<mxPoint x="291" y="427" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-12" value="" style="shape=mxgraph.signs.transportation.truck_1;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;rotation=24;shadow=0;gradientColor=none;" parent="1" vertex="1">
|
||||
<mxGeometry x="356" y="411" width="34" height="19" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-14" value="" style="shape=mxgraph.signs.transportation.truck_1;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;rotation=338;shadow=0;gradientColor=none;direction=east;flipV=0;flipH=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="223.8" y="411" width="34" height="19" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-15" value="" style="shape=mxgraph.signs.transportation.train_3;html=1;pointerEvents=1;fillColor=#dae8fc;strokeColor=#6c8ebf;verticalLabelPosition=bottom;verticalAlign=top;align=center;" parent="1" vertex="1">
|
||||
<mxGeometry x="286.9" y="501.38" width="40" height="22" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-19" value="" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.user;" parent="1" vertex="1">
|
||||
<mxGeometry x="176.65" y="565" width="20.5" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="qI8_qAPlaHJ_v-PPU4QN-20" value="" style="verticalLabelPosition=bottom;html=1;verticalAlign=top;align=center;strokeColor=none;fillColor=#00BEF2;shape=mxgraph.azure.user;" parent="1" vertex="1">
|
||||
<mxGeometry x="416.65" y="565" width="20.5" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
6
content/en/archives.md
Normal file
6
content/en/archives.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "Archive"
|
||||
layout: "archives"
|
||||
url: "/archives/"
|
||||
summary: archives
|
||||
---
|
||||
38
content/en/posts/Documentation/NetOps.md
Normal file
38
content/en/posts/Documentation/NetOps.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "NetOps"
|
||||
date: 2024-08-01T15:19:38+02:00
|
||||
draft: false
|
||||
categories: "Documentations"
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
weight: 1
|
||||
---
|
||||
|
||||
## Job and Missions of a NetDevOps 🖥️🛠️📡
|
||||
|
||||
NetDevOps is a relatively new job in the IT industry. It combines the skills of developers and network operations to provide agile and robust network infrastructure, and improve the quality of the user experience. In this article, we will explore the missions and skills of a NetDevOps.
|
||||
|
||||
NetDevOps, or Network Development Operations, is a concept that is based on the integration of the DevOps culture into the management and maintenance of computer networks. It involves applying DevOps practices to network management, such as automation, collaboration, and continuous improvement.
|
||||
|
||||
## Missions 🎯
|
||||
|
||||
The missions of a NetDevOps are multiple and varied. Here are some of them:
|
||||
|
||||
1. Development and deployment of network infrastructures 🏗️: The NetDevOps develops scalable and flexible network infrastructures. They work closely with development and operations teams to implement solutions that meet the needs of the business. The NetDevOps is also responsible for configuring and deploying network equipment.
|
||||
2. Automation of network tasks 🤖: Automation is a key element of the NetDevOps job. They use automation tools to simplify and speed up repetitive tasks such as configuration, updating, monitoring, and maintenance of the network.
|
||||
3. Network security management 🔒: Security is a major concern for businesses. NetDevOps works collaboratively with security teams to implement solutions that protect the network from cyberattacks. They also establish security protocols to ensure the confidentiality and integrity of data.
|
||||
4. Monitor network performance 🕵️: The NetDevOps continuously monitors network performance to identify any potential issues and take necessary actions to resolve them. They analyze performance data to optimize network performance.
|
||||
|
||||
## Skills 🤹
|
||||
|
||||
The skills of a NetDevOps are varied and include:
|
||||
|
||||
1. In-depth knowledge of network technologies 📚: The NetDevOps must have an in-depth knowledge of network technologies such as routing protocols, VLANs, VPNs, firewalls, etc.
|
||||
2. Development skills 🧑💻: The NetDevOps must have development skills to create scripts and automate network tasks.
|
||||
3. Project management skills 📅: The NetDevOps must have project management skills to manage network infrastructure development and deployment projects.
|
||||
4. Communication skills 🗣️: The NetDevOps must have good communication skills to collaborate with development and operations teams, as well as stakeholders in the business.
|
||||
|
||||
## Conclusion 📝
|
||||
|
||||
In conclusion, the NetDevOps job is essential to providing an agile and robust network infrastructure that meets the needs of the business. NetDevOps must have an in-depth knowledge of network technologies, development skills, project management skills, and communication skills to succeed in this field. 🌟
|
||||
168
content/en/posts/Documentation/VXLAN/index.md
Normal file
168
content/en/posts/Documentation/VXLAN/index.md
Normal file
@@ -0,0 +1,168 @@
|
||||
---
|
||||
title: "VXLAN for Beginners"
|
||||
date: 2024-08-02T20:00:00+02:00
|
||||
draft: false
|
||||
categories: "Documentations"
|
||||
tags:
|
||||
- Network
|
||||
- VXLAN
|
||||
- Architecture
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
cover:
|
||||
image: "/img/cover_vxlan_dummies.webp"
|
||||
caption: "Building the Future of Networking: Exploring VLANs and VXLANs Across Scalable Digital Landscapes"
|
||||
---
|
||||
|
||||
## Understanding VLAN and VXLAN: Simplified for Non-Techies
|
||||
|
||||
In today’s fast-paced tech world, understanding networking concepts can feel intimidating, especially if you're not an expert.
|
||||
Let's break down two important networking concepts: **VLAN** and **VXLAN**, using simple analogies and clear explanations.
|
||||
We’ll also discuss their limitations, real-world use cases, and some technical details for the curious ones.
|
||||
|
||||
Let’s dive in! 🚀
|
||||
|
||||
---
|
||||
|
||||
## What is a VLAN? 🏢
|
||||
|
||||
A **VLAN (Virtual Local Area Network)** is like organizing a large office building with multiple departments: Marketing, Sales, HR, and IT. To maintain order, each department gets its own floor. This way, Marketing stays on its floor, Sales on theirs, and so on.
|
||||
|
||||
A **VLAN** works similarly for computer networks. It divides a large physical network into smaller, isolated networks. Each VLAN is like a separate floor for a department, allowing devices within the same VLAN to communicate easily while keeping traffic isolated from other VLANs.
|
||||
|
||||
### Key Points About VLANs ✅
|
||||
|
||||
- **Separation:** Keeps different groups (like departments) apart.
|
||||
- **Efficiency:** Reduces unnecessary traffic and potential network issues.
|
||||
- **Security:** Enhances security by isolating groups.
|
||||
|
||||
### VLAN Limitations ⚠️
|
||||
|
||||
- **ID Limit:** Historically, a VLAN is identified by 12 bits, allowing up to 4094 VLANs (from 1 to 4094). For large enterprises or data centers, this might be insufficient.
|
||||
- **Local Isolation:** VLANs are designed for local use (a single site or connected switches). Expanding this concept across multiple sites requires advanced solutions.
|
||||
|
||||
---
|
||||
|
||||
## What is VXLAN? 🌆
|
||||
|
||||
**VXLAN (Virtual Extensible LAN)** takes things further. Imagine your business grows and spreads across multiple buildings in the city. You still want departments to feel like they’re on their own floors, even if they’re in different locations. To achieve this, you create a virtual system that connects all the floors across buildings, so Marketing on the 3rd floor of one building remains virtually connected to Marketing on the 3rd floor of another.
|
||||
|
||||
**VXLAN** does this for networks. It extends VLANs across multiple physical locations using a technique called **tunneling**. This way, devices in the same VLAN can communicate as if they’re on the same local network, even when geographically separated.
|
||||
|
||||
### Key Points About VXLAN ⭐
|
||||
|
||||
- **Scalability:** Extends networks to different locations and exceeds the 4094 VLAN limit.
|
||||
- **Flexibility:** Enables larger and more dynamic network designs.
|
||||
- **Connectivity:** Ensures smooth communication across dispersed networks.
|
||||
|
||||
---
|
||||
|
||||
## Technical Dive into VXLAN 🔍
|
||||
|
||||
**VXLAN** was developed to overcome the limitations of traditional VLANs (scalability, geographic scope). It uses a VXLAN Network Identifier (**VNI**) of 24 bits to identify up to **16 million** logical segments, far surpassing the 4094 VLAN limit.
|
||||
|
||||
In virtualized environments, MAC address tables in data centers can become very large, while physical switches have limited capacity. VXLAN addresses this challenge by using **MAC-in-UDP encapsulation**, transporting Ethernet frames (Layer 2) over an IP network (Layer 3).
|
||||
|
||||
### How It Works 🤔
|
||||
|
||||
The goal of **VXLAN** is to **extend Layer 2** over a Layer 3 (IP) network. It’s like “tricking” Layer 3 into thinking the user or virtual machine is still on the same local network (Layer 2).
|
||||
|
||||
> **Simply put:** Ethernet frames (Layer 2) are encapsulated inside a UDP packet (Layer 4), which is then transported over IP (Layer 3).
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
> ✏️ **The "Hardware" Layers**
|
||||
>
|
||||
> - **Layer 2 (Data Link):** Typically managed by switches.
|
||||
> - **Layer 3 (Network):** Typically managed by routers.
|
||||
|
||||
By encapsulating Layer 2 within Layer 3, you benefit from IP routing’s flexibility and scalability while maintaining the isolation and simplicity of Layer 2 for applications and virtual machines.
|
||||
|
||||
---
|
||||
|
||||
### Analogy: Container Transport 🚚 🚂
|
||||
|
||||
- **Lower Layers (trucks):** Transport data (containers) from point A to point B.
|
||||
- **VXLAN (train):** Loads these trucks (Ethernet packets) onto a train (VXLAN tunnel) to travel longer distances across Layer 3.
|
||||
- **Railways (IP network):** Are already “converged” and determine the best route for the trains (VXLAN tunnels).
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Real-World Use Cases 🏭
|
||||
|
||||
- **Multi-Data Center:** Connect geographically dispersed data centers while maintaining the feel of a single Layer 2 network.
|
||||
- **Hybrid Cloud:** Extend a corporate network to a public or private cloud without reconfiguring the entire IP plan.
|
||||
- **Virtual Machine Migration:** Enable VM mobility between distant sites without losing Layer 2 connectivity.
|
||||
- **Massive Virtualization:** In highly dense environments (e.g., hundreds of thousands of virtual machines), the 24-bit VNI is essential.
|
||||
|
||||
---
|
||||
|
||||
## VXLAN Control: BGP EVPN and Other Protocols 🤝
|
||||
|
||||
In modern deployments, especially in data centers, VXLAN isn’t configured manually. It’s often paired with a **control plane** using the **BGP EVPN (Ethernet VPN)** protocol.
|
||||
|
||||
- **BGP EVPN:** Exchanges MAC and IP table information between devices, enabling automation and scalability.
|
||||
- **Other Technologies:** Historically, other overlay protocols (e.g., NVGRE, STT) existed, but VXLAN has become the de facto standard.
|
||||
|
||||
---
|
||||
|
||||
## Performance Considerations ⚙️
|
||||
|
||||
- **Encapsulation Overhead:** VXLAN adds extra headers (8 bytes + UDP/IP header). This can impact the **Maximum Transmission Unit (MTU)**, and it’s common to configure **Jumbo MTU** (usually 9000 bytes) to avoid packet fragmentation.
|
||||
- **IP Network Resilience:** The reliability of VXLAN tunnels depends on the quality of the underlying IP network (routes, congestion, etc.).
|
||||
|
||||
---
|
||||
|
||||
## Example Configuration (For the Curious) 💡
|
||||
|
||||
Here’s a **simplified example** of VXLAN configuration on Cisco NX-OS (syntax varies by vendor):
|
||||
|
||||
```plaintext
|
||||
interface nve1
|
||||
no shutdown
|
||||
source-interface loopback1
|
||||
member vni 5001
|
||||
ingress-replication protocol static
|
||||
mcast-group 239.1.1.1
|
||||
```
|
||||
|
||||
- **interface nve1:** Creates an “NVE” (Network Virtualization Endpoint) interface for VXLAN encapsulation.
|
||||
- **source-interface loopback1:** The IP address of the loopback1 interface is used to establish tunnels.
|
||||
- **member vni 5001:** Associates a VNI (VXLAN Network Identifier) with the overlay network.
|
||||
|
||||
*Note:* In more complex environments, a control plane (e.g., BGP EVPN) is also configured.
|
||||
|
||||
---
|
||||
|
||||
## Summary 🎯
|
||||
|
||||
- **VLAN**
|
||||
Like having separate floors for different departments in a building, keeping activities isolated. 🏢
|
||||
- **Main Limitation:** 4094 VLANs maximum, often limited to a single site.
|
||||
|
||||
- **VXLAN**
|
||||
Like connecting these separate floors across multiple buildings while keeping the illusion they’re in the same building. 🌆
|
||||
- **Key Advantages:** Massive address capacity (16 million segments), Layer 2 over Layer 3 extension, flexibility for virtualization and multi-site connectivity.
|
||||
|
||||
VXLAN addresses the need for large-scale isolation, surpasses MAC address table limits on switches, and enables flexible service deployment. Combined with an efficient control plane (BGP EVPN), it simplifies the management of modern overlay networks.
|
||||
|
||||
---
|
||||
|
||||
### Conclusion 🏁
|
||||
|
||||
In short, if you need **basic segmentation** for your local network, a **VLAN** is sufficient. But when connecting multiple sites, creating a highly virtualized network, or exceeding the traditional VLAN limit, **VXLAN** becomes essential.
|
||||
|
||||
Whether you’re a **network lab enthusiast**, a NetOps engineer, or simply curious about the infrastructure magic that allows your data to travel seamlessly across distances, understanding these concepts will give you a better appreciation for the illusion of being "at home" on the same local network!
|
||||
|
||||
---
|
||||
|
||||
> **Want to Go Further?**
|
||||
>
|
||||
> - Explore **BGP EVPN** for VXLAN control plane management.
|
||||
> - Learn about **Jumbo MTU configuration** to optimize performance.
|
||||
> - Compare VXLAN with other protocols (NVGRE, GENEVE) to understand design choices.
|
||||
BIN
content/en/posts/Documentation/VXLAN/media_layers.png
Normal file
BIN
content/en/posts/Documentation/VXLAN/media_layers.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
content/en/posts/Documentation/VXLAN/transports.png
Normal file
BIN
content/en/posts/Documentation/VXLAN/transports.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
71
content/en/posts/NetLab/index.md
Normal file
71
content/en/posts/NetLab/index.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: "Introduction to NetLabs"
|
||||
date: 2024-08-25T15:19:00+02:00
|
||||
draft: false
|
||||
categories: "NetLab"
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
weight: 1
|
||||
---
|
||||
## Introduction
|
||||
|
||||
📡 In a world where computer networks play an increasingly significant role in our daily lives, understanding the principles and logic that drive them becomes more and more essential.
|
||||
|
||||
Virtual Network Labs (commonly referred to as "NetLab" or "Virtual Network Lab") are an ideal approach for teaching these concepts, allowing us to simulate complex network environments and experiment without risks.
|
||||
|
||||
I would like to share with you how my "NetLabs" work, which will be regularly linked to documentary articles (in the category: **documentation**). They will allow us to practice, observe, or understand the operation of concepts explained theoretically beforehand.
|
||||
|
||||
In the context of NetLabs, they will primarily be deployed via the ContainerLab tool. For more complex architectures, we will use GNS3.
|
||||
|
||||
## What is ContainerLab? 🛠️
|
||||
|
||||
ContainerLab is a powerful open-source tool that enables the creation of complete virtual network labs. By using it, one can simulate a multitude of complex network architectures, with equipment such as routers, switches, servers, and other network devices.
|
||||
|
||||
This platform offers great flexibility in designing exercises, allowing the exploration of various topics such as learning network protocols, security, or configuring equipment. Users can thus focus on analysis and problem-solving without worrying about the underlying technical details.
|
||||
|
||||
The installation of ContainerLab will not be presented here, but all information is available on the official website [here](https://containerlab.dev/install/).
|
||||
|
||||
## What is GNS3? 💻
|
||||
|
||||
GNS3, or Graphical Network Simulator-3, is an open-source software primarily used for the **simulation** and **emulation** of computer networks. It allows network engineers, students, and professionals to design, test, and troubleshoot complex networks in a virtual environment before deploying them in the real world. GNS3 is particularly appreciated for its ability to integrate various network hardware and software, such as Cisco routers and switches, as well as virtual machines to create realistic network topologies.
|
||||
|
||||
As previously mentioned, the installation of GNS3 will not be discussed here. For more information, the documentation is available [here](https://docs.gns3.com/docs/).
|
||||
|
||||
## GNS3 vs ContainerLab ⚔️
|
||||
|
||||
GNS3 and ContainerLab are two powerful tools for network simulation and emulation, but they differ in their approach, features, and primary use cases. Here is a quick comparison between the two:
|
||||
|
||||
### GNS3
|
||||
|
||||
**Advantages:**
|
||||
|
||||
1. **Intuitive Graphical Interface:** GNS3 offers a user-friendly graphical interface that allows users to drag and drop components to create network topologies.
|
||||
2. **Multivendor Support:** It supports a wide range of network hardware and software, including Cisco routers and switches, as well as virtual machines.
|
||||
3. **Flexibility:** GNS3 can be used on Windows, macOS, and Linux, and it integrates well with other tools like Wireshark for traffic analysis.
|
||||
4. **Active Community:** A large community of users and developers provides extensive support and a wealth of online resources.
|
||||
|
||||
**Disadvantages:**
|
||||
|
||||
1. **System Resources:** GNS3 can be resource-intensive, especially when emulating complex devices or large topologies.
|
||||
2. **Configuration Complexity:** The initial setup can be complex, particularly for new users.
|
||||
|
||||
### ContainerLab
|
||||
|
||||
**Advantages:**
|
||||
|
||||
1. **Lightweight and Performance:** ContainerLab uses containers to emulate network devices, making it more lightweight and performant than solutions based on virtual machines.
|
||||
2. **Automation and DevOps:** It integrates well with DevOps and automation tools like Ansible, facilitating automated deployment and network management.
|
||||
3. **Simplified Configuration:** Topologies are defined via YAML files, making the configuration simpler and scriptable.
|
||||
4. **Support for Modern Technologies:** It supports modern technologies like Docker and Kubernetes, offering greater flexibility for cloud-native environments.
|
||||
|
||||
**Disadvantages:**
|
||||
|
||||
1. **Less Multivendor Support:** Although ContainerLab supports several types of network containers, it may not have the same level of multivendor support as GNS3.
|
||||
2. **Learning Curve:** For those unfamiliar with containerization concepts, the learning curve can be steeper.
|
||||
|
||||
## Conclusion 📊
|
||||
|
||||
**GNS3** is ideal for those looking for an intuitive graphical interface and broad support for network devices, particularly useful for students and traditional network engineers. **ContainerLab**, on the other hand, is more suited to modern environments and DevOps practices, offering a lightweight and scriptable solution for network simulation.
|
||||
|
||||
The choice between GNS3 and ContainerLab thus primarily depends on the specific needs of the user in terms of flexibility, performance, and integration with other tools and technologies.
|
||||
6
content/fr/archives.md
Normal file
6
content/fr/archives.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "Archive"
|
||||
layout: "archives"
|
||||
url: "archives"
|
||||
summary: archives
|
||||
---
|
||||
38
content/fr/posts/Documentation/NetOps.md
Normal file
38
content/fr/posts/Documentation/NetOps.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: "NetOps"
|
||||
date: 2024-08-01T15:19:38+02:00
|
||||
draft: false
|
||||
categories: "Documentations"
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
weight: 1
|
||||
---
|
||||
|
||||
## Travail et missions d'un NetDevOps 🖥️🛠️📡
|
||||
|
||||
Le métier de NetDevOps est relativement nouveau dans l'industrie informatique. Il combine les compétences des développeurs et des opérations réseau pour fournir une infrastructure réseau agile et robuste, et améliorer la qualité de l'expérience utilisateur. Dans cet article, nous allons explorer les missions et les compétences d'un NetDevOps.
|
||||
|
||||
NetDevOps, ou Network Development Operations, est un concept basé sur l'intégration de la culture DevOps dans la gestion et la maintenance des réseaux informatiques. Il s'agit d'appliquer les pratiques DevOps à la gestion des réseaux, telles que l'automatisation, la collaboration et l'amélioration continue.
|
||||
|
||||
## Missions 🎯
|
||||
|
||||
Les missions d'un NetDevOps sont multiples et variées. En voici quelques-unes :
|
||||
|
||||
1. Développement et déploiement d'infrastructures réseau 🏗️ : Le NetDevOps développe des infrastructures réseau évolutives et flexibles. Il travaille en étroite collaboration avec les équipes de développement et d'opérations pour mettre en œuvre des solutions répondant aux besoins de l'entreprise. Le NetDevOps est également responsable de la configuration et du déploiement des équipements réseau.
|
||||
2. Automatisation des tâches réseau 🤖 : L'automatisation est un élément clé du travail de NetDevOps. Il utilise des outils d'automatisation pour simplifier et accélérer les tâches répétitives telles que la configuration, la mise à jour, la surveillance et la maintenance du réseau.
|
||||
3. Gestion de la sécurité réseau 🔒 : La sécurité est une préoccupation majeure pour les entreprises. Le NetDevOps travaille en collaboration avec les équipes de sécurité pour mettre en œuvre des solutions protégeant le réseau contre les cyberattaques. Il établit également des protocoles de sécurité pour garantir la confidentialité et l'intégrité des données.
|
||||
4. Surveillance des performances réseau 🕵️ : Le NetDevOps surveille en continu les performances du réseau pour identifier d'éventuels problèmes et prendre les mesures nécessaires pour les résoudre. Il analyse les données de performance pour optimiser les performances du réseau.
|
||||
|
||||
## Compétences 🤹
|
||||
|
||||
Les compétences d'un NetDevOps sont variées et comprennent :
|
||||
|
||||
1. Connaissance approfondie des technologies réseau 📚 : Le NetDevOps doit avoir une connaissance approfondie des technologies réseau telles que les protocoles de routage, les VLAN, les VPN, les pare-feu, etc.
|
||||
2. Compétences en développement 🧑💻 : Le NetDevOps doit avoir des compétences en développement pour créer des scripts et automatiser les tâches réseau.
|
||||
3. Compétences en gestion de projet 📅 : Le NetDevOps doit avoir des compétences en gestion de projet pour gérer les projets de développement et de déploiement d'infrastructures réseau.
|
||||
4. Compétences en communication 🗣️ : Le NetDevOps doit avoir de bonnes compétences en communication pour collaborer avec les équipes de développement et d'opérations, ainsi qu'avec les parties prenantes de l'entreprise.
|
||||
|
||||
## Conclusion 📝
|
||||
|
||||
En conclusion, le métier de NetDevOps est essentiel pour fournir une infrastructure réseau agile et robuste répondant aux besoins de l'entreprise. Le NetDevOps doit avoir une connaissance approfondie des technologies réseau, des compétences en développement, des compétences en gestion de projet et des compétences en communication pour réussir dans ce domaine. 🌟
|
||||
BIN
content/fr/posts/Documentation/VXLAN/couches_materielles.png
Normal file
BIN
content/fr/posts/Documentation/VXLAN/couches_materielles.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
168
content/fr/posts/Documentation/VXLAN/index.md
Normal file
168
content/fr/posts/Documentation/VXLAN/index.md
Normal file
@@ -0,0 +1,168 @@
|
||||
---
|
||||
title: "VXLAN Pour les débutants"
|
||||
date: 2024-08-01T20:00:00+02:00
|
||||
draft: false
|
||||
categories: "Documentations"
|
||||
tags:
|
||||
- Network
|
||||
- VXLAN
|
||||
- Architecture
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
cover:
|
||||
image: "/img/cover_vxlan_dummies.webp"
|
||||
caption: "Building the Future of Networking: Exploring VLANs and VXLANs Across Scalable Digital Landscapes"
|
||||
---
|
||||
|
||||
## Comprendre VLAN et VXLAN : Simplifié pour les non-techniciens
|
||||
|
||||
Dans le monde rapide de la technologie, comprendre les concepts de réseau peut être intimidant, surtout si vous n'êtes pas un expert en la matière.
|
||||
Aujourd'hui, nous allons décomposer deux concepts de réseau importants : **VLAN** et **VXLAN**, en utilisant des analogies simples et des explications claires.
|
||||
Nous aborderons également leurs limites, leurs cas d’usage concrets, ainsi que quelques notions techniques pour les plus curieux.
|
||||
|
||||
Allons-y ! 🚀
|
||||
|
||||
---
|
||||
|
||||
## Qu'est-ce qu'un VLAN ? 🏢
|
||||
|
||||
**VLAN (Virtual Local Area Network)**, ou Réseau Local Virtuel, c'est comme organiser un grand immeuble de bureaux avec plusieurs départements : Marketing, Ventes, RH, et Informatique. Pour maintenir l'ordre, chaque département obtient son propre étage. De cette manière, les personnes du Marketing restent à leur étage, celles des Ventes au leur, et ainsi de suite.
|
||||
|
||||
Un **VLAN** fonctionne de manière similaire pour les réseaux informatiques. Il divise un grand réseau physique en réseaux plus petits et isolés. Chaque VLAN est comme un étage séparé pour un département, permettant aux dispositifs au sein du même VLAN de communiquer facilement, tout en gardant le trafic séparé des autres VLAN.
|
||||
|
||||
### Points clés sur le VLAN ✅
|
||||
|
||||
- **Séparation :** Garde les différents groupes (comme les départements) séparés.
|
||||
- **Efficacité :** Réduit le trafic inutile et les potentiels problèmes de réseau.
|
||||
- **Sécurité :** Limite l'accès et renforce la sécurité en isolant les groupes.
|
||||
|
||||
### Limites du VLAN ⚠️
|
||||
|
||||
- **Limite d’ID :** Historiquement, un VLAN est identifié sur 12 bits, permettant jusqu’à 4094 VLANs (de 1 à 4094). Pour une grande entreprise ou un datacenter, cela peut s’avérer insuffisant.
|
||||
- **Isolation locale :** Les VLANs sont plutôt conçus pour un usage local (un même site ou un ensemble de switches connectés localement). Dès qu’on veut étendre ce concept à plusieurs sites, on a besoin de solutions plus avancées.
|
||||
|
||||
---
|
||||
|
||||
## Qu'est-ce que le VXLAN ? 🌆
|
||||
|
||||
**VXLAN (Virtual Extensible LAN)** va plus loin. Imaginez que votre entreprise grandisse et s'étende à plusieurs immeubles à travers la ville. Vous voulez toujours que les départements se sentent comme s'ils étaient sur leurs propres étages, même s'ils sont maintenant répartis dans différents endroits. Pour ce faire, vous créez un système virtuel qui connecte tous les étages à travers les bâtiments, de sorte que le Marketing au 3e étage d'un bâtiment soit toujours virtuellement connecté au Marketing du 3e étage d'un autre bâtiment.
|
||||
|
||||
Le **VXLAN** fait cela pour les réseaux. Il étend les VLANs à travers plusieurs emplacements physiques en utilisant une technique appelée **tunneling**. Ainsi, les dispositifs dans le même VLAN peuvent communiquer comme s'ils étaient sur le même réseau local, même s'ils sont éloignés géographiquement.
|
||||
|
||||
### Points clés sur le VXLAN ⭐
|
||||
|
||||
- **Évolutivité :** Étend les réseaux à différents emplacements, et dépasse la limite de 4094 VLANs.
|
||||
- **Flexibilité :** Permet des conceptions de réseau plus grandes et dynamiques.
|
||||
- **Connectivité :** Assure une communication fluide à travers des réseaux dispersés.
|
||||
|
||||
---
|
||||
|
||||
## Plongée technique dans le VXLAN 🔍
|
||||
|
||||
Le **VXLAN** a été développé pour répondre aux limites des VLANs traditionnels (scalabilité, étendue géographique). Il utilise un identifiant de réseau VXLAN (**VNI**) de 24 bits pour identifier jusqu'à **16 millions** de segments logiques, surpassant ainsi largement la limite de 4094 VLANs.
|
||||
|
||||
En raison de la virtualisation, les tables d'adresses MAC dans les datacenters peuvent devenir très grandes, tandis que les switches physiques ont des capacités limitées. Le VXLAN répond à ce défi en utilisant l’encapsulation **MAC-in-UDP**, permettant de transporter des trames Ethernet (couche 2) à travers un réseau IP (couche 3).
|
||||
|
||||
### Comment ça marche ? 🤔
|
||||
|
||||
L’objectif du **VXLAN** est de **prolonger la couche 2** à travers un réseau de couche 3 (IP). Cela revient à « tromper » la couche 3 pour faire croire à l’utilisateur ou à la machine virtuelle qu’il est toujours dans le même réseau local (couche 2).
|
||||
|
||||
> **En clair :** On encapsule les trames Ethernet (couche 2) dans un paquet UDP (couche 4), lui-même transporté par IP (couche 3).
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
> ✏️ **Les couches “matérielles”**
|
||||
>
|
||||
> - La couche **Liaison (2)** est communément gérée par des switches.
|
||||
> - La couche **Réseau (3)** est communément gérée par des routeurs.
|
||||
|
||||
En encapsulant la couche 2 dans la couche 3, on profite des avantages du routage IP (souplesse, scalabilité) tout en conservant l’isolation et la simplicité de la couche 2 pour les applications et machines virtuelles.
|
||||
|
||||
---
|
||||
|
||||
### Exemple d’analogie : Transport de conteneurs 🚚 🚂
|
||||
|
||||
- **Les couches basses (camions) :** Transportent des données (conteneurs) du point A au point B.
|
||||
- **Le VXLAN (train) :** Il charge ces camions (paquets Ethernet) sur un train (tunnel VXLAN) pour parcourir des distances plus longues à travers la couche 3.
|
||||
- **Les voies ferrées (réseau IP) :** Sont déjà “convergées” et calculent le meilleur itinéraire pour acheminer les trains (tunnels VXLAN).
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Cas d'usage concrets 🏭
|
||||
|
||||
- **Multi-datacenter :** Pour connecter plusieurs centres de données géographiquement dispersés, tout en gardant la sensation d’un réseau unique au niveau 2.
|
||||
- **Cloud hybride :** Étendre un réseau d’entreprise vers un fournisseur de cloud public ou privé sans reconfigurer tout le plan d’adressage.
|
||||
- **Migration de machines virtuelles :** Permettre la migration (VM Mobility) entre sites distants sans perdre la connectivité de couche 2.
|
||||
- **Virtualisation massive :** Dans les environnements très denses (par ex. des centaines de milliers de machines virtuelles), l’identifiant VNI de 24 bits est indispensable.
|
||||
|
||||
---
|
||||
|
||||
## Contrôle du VXLAN : BGP EVPN et autres protocoles 🤝
|
||||
|
||||
Dans les déploiements modernes, surtout en datacenter, le VXLAN n’est pas simplement configuré de manière statique. Il est souvent associé à un **contrôle de plan** via le protocole **BGP EVPN (Ethernet VPN)**.
|
||||
|
||||
- **BGP EVPN :** Permet d’échanger les informations de tables MAC et IP entre les équipements, facilitant l’automatisation et l’évolutivité.
|
||||
- **Autres technologies :** Historiquement, on pouvait croiser d’autres protocoles d’overlay (NVGRE, STT), mais VXLAN s’est imposé comme standard de fait.
|
||||
|
||||
---
|
||||
|
||||
## Considérations de performance ⚙️
|
||||
|
||||
- **Surcharge d’encapsulation :** Le VXLAN ajoute un en-tête supplémentaire (8 octets + en-tête UDP/IP). Cela peut impacter la **taille maximale de trame (MTU)** et il faut souvent configurer un **Jumbo MTU** (généralement 9000 octets) pour éviter la fragmentation des paquets.
|
||||
- **Résilience du réseau IP :** La fiabilité du tunnel VXLAN dépend de la qualité du réseau IP sous-jacent (routes, congestion, etc.).
|
||||
|
||||
---
|
||||
|
||||
## Exemple de configuration (pour les plus curieux) 💡
|
||||
|
||||
Voici un **extrait simplifié** d’une configuration VXLAN sur un équipement Cisco NX-OS (les syntaxes varient selon les constructeurs) :
|
||||
|
||||
```plaintext
|
||||
interface nve1
|
||||
no shutdown
|
||||
source-interface loopback1
|
||||
member vni 5001
|
||||
ingress-replication protocol static
|
||||
mcast-group 239.1.1.1
|
||||
```
|
||||
|
||||
- **interface nve1 :** On crée une interface “NVE” (Network Virtualization Endpoint) pour gérer l'encapsulation VXLAN.
|
||||
- **source-interface loopback1 :** L’adresse IP de l’interface loopback1 sera utilisée pour établir les tunnels.
|
||||
- **member vni 5001 :** On associe un VNI (VXLAN Network Identifier) à notre overlay réseau.
|
||||
|
||||
*Note :* Dans les environnements plus complexes, on configure également le plan de contrôle (par ex. BGP EVPN).
|
||||
|
||||
---
|
||||
|
||||
## En résumé 🎯
|
||||
|
||||
- **VLAN**
|
||||
C’est comme avoir des étages séparés pour différents départements dans un bâtiment, en gardant leurs activités isolées. 🏢
|
||||
\- **Limite majeure** : 4094 VLANs maximum et une portée souvent limitée à un même site.
|
||||
|
||||
- **VXLAN**
|
||||
C’est comme connecter ces étages séparés à travers plusieurs bâtiments, tout en gardant l’illusion qu’ils se trouvent dans un même immeuble. 🌆
|
||||
\- **Avantages clés** : Énorme capacité d’adressage (16 millions de segments), extension L2 sur L3, flexibilité pour la virtualisation et le multi-site.
|
||||
|
||||
Le **VXLAN** répond aux besoins d'isolation à grande échelle, dépasse les limitations des tables d'adresses MAC des commutateurs et permet un déploiement flexible des services. De plus, associé à un plan de contrôle efficace (BGP EVPN), il simplifie grandement la gestion des réseaux modernes en **overlay**.
|
||||
|
||||
---
|
||||
|
||||
### Conclusion 🏁
|
||||
|
||||
En bref, si vous recherchez une **segmentation de base** pour votre réseau local, un **VLAN** est largement suffisant. Mais dès lors que vous voulez relier plusieurs sites, créer un réseau hautement virtualisé, ou dépasser la limite traditionnelle de 4094 VLANs, le **VXLAN** devient incontournable.
|
||||
|
||||
Que vous soyez un passionné de **Lab réseau**, un ingénieur NetOps, ou tout simplement curieux des dessous de l’infrastructure informatique, comprendre ces deux notions vous aidera à mieux appréhender la magie qui se déroule lorsque vos données circulent de plus en plus loin, tout en conservant l’illusion d’être “chez soi” sur le même réseau local !
|
||||
|
||||
---
|
||||
|
||||
> **Envie d’aller plus loin ?**
|
||||
>
|
||||
> - Regardez du côté du **BGP EVPN** pour le plan de contrôle du VXLAN.
|
||||
> - Explorez la **configuration Jumbo MTU** pour optimiser vos performances.
|
||||
> - Comparez VXLAN avec d’autres protocoles (NVGRE, GENEVE) pour comprendre les choix de design réseau.
|
||||
BIN
content/fr/posts/Documentation/VXLAN/transports.png
Normal file
BIN
content/fr/posts/Documentation/VXLAN/transports.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
73
content/fr/posts/NetLab/index.md
Normal file
73
content/fr/posts/NetLab/index.md
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: "Présentation des NetLabs"
|
||||
date: 2024-08-25T15:19:00+02:00
|
||||
draft: false
|
||||
categories: "NetLab"
|
||||
UseHugoToc: true
|
||||
TocOpen: false
|
||||
showToc: true
|
||||
weight: 1
|
||||
|
||||
---
|
||||
|
||||
## Introduction
|
||||
|
||||
📡 Dans un monde où les réseaux informatiques jouent un rôle croissant dans notre vie quotidienne, la compréhension des principes et de la logique qui les animent devient de plus en plus essentielle.
|
||||
|
||||
Les laboratoires réseau virtuels (en anglais "NetLab" ou "Virtual Network Lab") constituent une approche idéale pour enseigner ces concepts, nous permettant de simuler des environnements réseaux complexes et d'expérimenter sans risques.
|
||||
|
||||
Je souhaite partager avec vous le fonctionnement de mes "NetLabs", qui seront régulièrement liés à des articles documentaires (dans la catégorie : **documentation**). Ils nous permettront de pratiquer, de constater ou bien de comprendre le fonctionnement de concepts expliqués théoriquement avant.
|
||||
|
||||
Dans le cadre des NetLab, ceux-ci seront principalement déployés via l'outil ContainerLab. Pour les architectures plus complexes, nous utiliserons GNS3.
|
||||
|
||||
## Qu'est-ce que ContainerLab ? 🛠️
|
||||
|
||||
ContainerLab est un outil open-source puissant qui permet la création de laboratoires réseau virtuels complets. Grâce à son utilisation, on peut simuler une multitude d'architectures réseaux complexes, avec des équipements tels que les routeurs, commutateurs, serveurs et autres appareils réseau.
|
||||
|
||||
Cette plateforme offre une grande flexibilité dans la conception des exercices, permettant l'abordage de différents sujets tels que l'apprentissage de protocoles réseau, de sécurité ou encore de configurations d'équipements. Les utilisateurs peuvent ainsi se concentrer sur l'analyse et la résolution de problèmes sans s'inquiéter des détails techniques sous-jacents.
|
||||
|
||||
L'installation de ContainerLab ne sera pas présentée ici, mais toutes les informations sont présentes sur le site officiel [ici](https://containerlab.dev/install/).
|
||||
|
||||
## Qu'est-ce que GNS3 ? 💻
|
||||
|
||||
GNS3, ou Graphical Network Simulator-3, est un logiciel open-source utilisé principalement pour la **simulation** et l'**émulation** de réseaux informatiques. Il permet aux ingénieurs réseaux, aux étudiants et aux professionnels de concevoir, tester et dépanner des réseaux complexes dans un environnement virtuel avant de les déployer dans le monde réel. GNS3 est particulièrement apprécié pour sa capacité à intégrer divers matériels et logiciels réseau, tels que les routeurs et commutateurs Cisco, ainsi que des machines virtuelles pour créer des topologies réseau réalistes.
|
||||
|
||||
Comme précédemment, l'installation de GNS3 ne sera pas évoquée, pour plus d'information, la documentation est présente [ici](https://docs.gns3.com/docs/).
|
||||
|
||||
## GNS3 vs ContainerLab ⚔️
|
||||
|
||||
GNS3 et ContainerLab sont deux outils puissants pour la simulation et l'émulation de réseaux, mais ils diffèrent dans leur approche, leurs fonctionnalités et leurs cas d'utilisation principaux. Voici un rapide comparatif entre les deux :
|
||||
|
||||
### GNS3
|
||||
|
||||
**Avantages :**
|
||||
|
||||
1. **Interface Graphique Intuitive :** GNS3 offre une interface graphique conviviale permet aux utilisateurs de glisser-déposer des composants pour créer des topologies réseau.
|
||||
2. **Support Multivendor :** Il supporte une large gamme de matériels et logiciels réseau, y compris les routeurs et commutateurs Cisco, ainsi que des machines virtuelles.
|
||||
3. **Flexibilité :** GNS3 peut être utilisé sur Windows, macOS et Linux, et il intègre bien d'autres outils comme Wireshark pour l'analyse de trafic.
|
||||
4. **Communauté Active :** Une grande communauté d'utilisateurs et de développeurs offre un vaste support et une multitude de ressources en ligne.
|
||||
|
||||
**Inconvénients :**
|
||||
|
||||
1. **Ressources Systèmes :** GNS3 peut être gourmand en ressources, surtout lorsqu'il émule des dispositifs complexes ou de grandes topologies.
|
||||
2. **Complexité de Configuration :** La configuration initiale peut être complexe, surtout pour les nouveaux utilisateurs.
|
||||
|
||||
### ContainerLab
|
||||
|
||||
**Avantages :**
|
||||
|
||||
1. **Légèreté et Performance :** ContainerLab utilise des conteneurs pour émuler les dispositifs réseau, ce qui le rend plus léger et performant que les solutions basées sur des machines virtuelles.
|
||||
2. **Automatisation et DevOps :** Il s'intègre bien avec les outils DevOps et d'automatisation comme Ansible, facilitant ainsi le déploiement automatisé et la gestion de réseaux.
|
||||
3. **Configuration Simplifiée :** Les topologies sont définies via des fichiers YAML, rendant la configuration plus simple et scriptable.
|
||||
4. **Support de Technologies Modernes :** Il supporte des technologies modernes comme Docker et Kubernetes, offrant ainsi une plus grande flexibilité pour les environnements cloud-native.
|
||||
|
||||
**Inconvénients :**
|
||||
|
||||
1. **Moins de Support Multivendor :** Bien que ContainerLab supporte plusieurs types de conteneurs réseau, il peut ne pas avoir le même niveau de support multivendor que GNS3.
|
||||
2. **Courbe d'Apprentissage :** Pour ceux qui ne sont pas familiers avec les concepts de conteneurisation, la courbe d'apprentissage peut être plus raide.
|
||||
|
||||
## Conclusion 📊
|
||||
|
||||
**GNS3** est idéal pour ceux qui recherchent une interface graphique intuitive et un large support de dispositifs réseau, particulièrement utile pour les étudiants et les ingénieurs réseau traditionnels. **ContainerLab**, en revanche, est plus adapté aux environnements modernes et aux pratiques DevOps, offrant une solution légère et scriptable pour la simulation de réseaux.
|
||||
|
||||
Le choix entre GNS3 et ContainerLab dépend donc principalement des besoins spécifiques de l'utilisateur en termes de flexibilité, performance, et intégration avec d'autres outils et technologies.
|
||||
79
hugo.yaml
Normal file
79
hugo.yaml
Normal file
@@ -0,0 +1,79 @@
|
||||
baseURL: https://blog.netunix.tech/
|
||||
title: 🧑💻 NetUnix
|
||||
pagination.pagerSize: 5
|
||||
theme: PaperMod
|
||||
|
||||
params:
|
||||
ShowReadingTime: true
|
||||
ShowPostNavLinks: true
|
||||
ShowBreadCrumbs: true
|
||||
|
||||
socialIcons:
|
||||
- name: github
|
||||
url: "https://github.com/damienarnodo"
|
||||
- name: linkedin
|
||||
url: "https://www.linkedin.com/in/darnodo/"
|
||||
|
||||
languages:
|
||||
en:
|
||||
languageName: English
|
||||
contentDir: 'content/en'
|
||||
params:
|
||||
profileMode:
|
||||
enabled: true
|
||||
title: "NetUnix"
|
||||
subtitle: "Welcome to this blog, where we talk about NetOps, networks and systems..."
|
||||
imageUrl: "https://www.svgrepo.com/show/395137/network.svg"
|
||||
imageTitle: "Network logo"
|
||||
imageWidth: 120
|
||||
imageHeight: 120
|
||||
buttons:
|
||||
- name: Documentation
|
||||
url: "categories/documentations/"
|
||||
- name: NetLab
|
||||
url: "categories/NetLab/"
|
||||
|
||||
menu:
|
||||
main:
|
||||
- name: Categories
|
||||
url: /categories/
|
||||
weight: 10
|
||||
- name: Tags
|
||||
url: /tags/
|
||||
weight: 20
|
||||
- name: Archives
|
||||
url: archives/
|
||||
weight: 30
|
||||
|
||||
fr:
|
||||
languageName: Français
|
||||
contentDir: 'content/fr'
|
||||
params:
|
||||
profileMode:
|
||||
enabled: true
|
||||
title: "NetUnix"
|
||||
subtitle: "Bienvenue sur ce blog, où nous parlons de NetOps, de réseaux et de systèmes..."
|
||||
imageUrl: "https://www.svgrepo.com/show/395137/network.svg"
|
||||
imageTitle: "Network logo"
|
||||
imageWidth: 120
|
||||
imageHeight: 120
|
||||
buttons:
|
||||
- name: Documentations
|
||||
url: "categories/documentations/"
|
||||
- name: NetLab
|
||||
url: "categories/NetLab/"
|
||||
|
||||
menu:
|
||||
main:
|
||||
- name: Catégories
|
||||
url: /categories/
|
||||
weight: 10
|
||||
- name: Tags
|
||||
url: /tags/
|
||||
weight: 20
|
||||
- name: Archives
|
||||
url: archives
|
||||
weight: 30
|
||||
|
||||
|
||||
|
||||
139
layouts/partials/footer.html
Normal file
139
layouts/partials/footer.html
Normal file
@@ -0,0 +1,139 @@
|
||||
{{- if not (.Param "hideFooter") }}
|
||||
<footer class="footer">
|
||||
{{- if not site.Params.footer.hideCopyright }}
|
||||
{{- if site.Copyright }}
|
||||
<span>{{ site.Copyright | markdownify }}</span>
|
||||
{{- else }}
|
||||
<span>© {{ now.Year }} <a href="{{ "" | absLangURL }}">{{ site.Title }}</a></span>
|
||||
{{- end }}
|
||||
{{- print " · "}}
|
||||
{{- end }}
|
||||
|
||||
{{- with site.Params.footer.text }}
|
||||
{{ . | markdownify }}
|
||||
{{- print " · "}}
|
||||
{{- end }}
|
||||
|
||||
</footer>
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
|
||||
{{- partial "extend_footer.html" . }}
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
{{- if (not site.Params.disableScrollToTop) }}
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{- if (not site.Params.disableThemeToggle) }}
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{- if (and (eq .Kind "page") (ne .Layout "archives") (ne .Layout "search") (.Param "ShowCodeCopyButtons")) }}
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = '{{- i18n "code_copied" | default "copied!" }}';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = '{{- i18n "code_copy" | default "copy" }}';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
// td containing LineNos
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
// table containing LineNos and code
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
// code blocks not having highlight as parent class
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{{- end }}
|
||||
BIN
static/img/cover_vxlan_dummies.webp
Normal file
BIN
static/img/cover_vxlan_dummies.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 655 KiB |
1
themes/PaperMod
Submodule
1
themes/PaperMod
Submodule
Submodule themes/PaperMod added at 9f1f414be8
Reference in New Issue
Block a user