Mermaid Support für das Blog
Mermaid ist eine Javascript basiertes diagram und Chart Lib, bei der man mit einfachen text bausteinen, Diagramme Schreiben kann.
Beispiele
~~~mermaid
graph TB
A --> B
B --> C
~~~
~~~mermaid
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
~~~
~~~mermaid
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
~~~
~~~mermaid
gitGraph
commit
commit
branch two
commit
checkout main
commit
branch three
checkout three
commit
commit
checkout main
commit
commit
branch one
checkout one
commit
checkout two
commit
checkout main
merge two
checkout one
merge two
merge three
commit
commit
checkout main
merge one
~~~
~~~mermaid
sequenceDiagram
title: FancySequenceDiagramaccDescription Test a description
participant Alice
participant Bob
participant John as John<br />Second Line
rect rgb(20, 20, 100)
rect rgb(0, 5, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: John thinks a long<br />long time, so long<br />that the text does<br />not fit on a row.
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John - we're still waiting to know<br />how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John<br />finally snaps out of it.
end
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
~~~
Second Line rect rgb(20, 20, 100) rect rgb(0, 5, 200) Alice ->> Bob: Hello Bob, how are you? Bob-->>John: How about you John? end Bob--x Alice: I am good thanks! Bob-x John: I am good thanks! Note right of John: John thinks a long
long time, so long
that the text does
not fit on a row. Bob-->Alice: Checking with John... Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit. Bob-x John: Hey John - we're still waiting to know
how you're doing Note over John:nowrap: John's trying hard not to break his train of thought. Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take?? Note over John: After a few more moments, John
finally snaps out of it. end alt either this Alice->>+John: Yes John-->>-Alice: OK else or this Alice->>John: No else or this will happen Alice->John: Maybe end par this happens in parallel Alice -->> Bob: Parallel message 1 and Alice -->> John: Parallel message 2 end
Oder in einfacher
~~~mermaid
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
~~~
~~~mermaid
pie
"Dogs" : 42.96
"Cats" : 50.05
"Rats" : 10.01
~~~
Links
Eine Verabschiedung von 2 netten Kollegen, mit Grillen in Waren
Netzwerk Spielerein
Check UDP connection mit netcat und tcpdump
Auf dem Zielhost kann man z.b. mit tcpdump gucken ob Packete rein kommten.
tcpdump -n port 10011 -vv
und von einem anderen Host kamm man diesen port z.b. mit netcat anpingen.
nc -vz -u 192.168.100.100 10011
Benutzte netcat als Sender und Empfänger über UDP
Mit -l kann man netcat auch lauschen lassen (Receiver)
nc -luk 192.168.100.100 20000
und mit -uv einen connect herstellen von einem anderen cleint und etwas zum Host senden (Sender).
nc -uv 192.168.100.100 20000
hello host!<ENTER>
Das sollte auf dem Empfänger ein hello host! augeben
SPF Record erstellen und prüfen
SPF (Sender Policy Framework) ist ein recht einfaches verfahren, um missbrauch der eigenen E-Mails ein wenig zu schützen. Mit dem SPF Domain Rekord gibt man an, aus welschen Netz, E-Mails der eigenen Domain versendet werden dürfen.
SPF Record abfragen
Der einfachste weg ist wohl mit host oder dig einen einfache DNS abfrage zu machen, das geht z.b. mit
host -t TXT gmx.de|grep -i spf
dig heise.de TXT|grep -i spf
dig gmx.de TXT|grep -i spf
dig gmx.net TXT|grep -i spf
nslookup -q=TXT gmx.net|grep -i spf
Bedeutung der felder
Feld | Bedeutung |
---|---|
v | Version des Records, v=spf1 z.B. |
ip4 | IPv4 Adresse oder Adress-rang, z.B. ip4:1.2.3.0/24 |
ip6 | IPv6 Adresse oder Adress-rang, z.B. ip6:2a02:2e0:3fe:1001::/64 |
a | ein A- oder AAAA-Record der befragten (oder explizit angegebenen) Domäne die IP-Adresse des Senders enthält |
mx | ein MX-Record der befragten (oder explizit angegebenen) Domäne die IP-Adresse des Senders enthält |
-all | Alle anderen hier nicht aufgeführten Sender sind nicht autorisiert und sollen abgewiesen werden. |
~all | Softfail, nicht autorisierte Sender, der Empfänger soll diesen Fehlschlag aber großzügig behandeln. |
?all | Neutral, die Direktive definiert Sender, über deren Legitimität nichts ausgesagt werden soll; der Sender muss so behandelt werden, als wenn kein Qualifikator angegeben wäre. |
include | eine zusätzliche SPF-Anfrage zur im Include-Statement angegebenen Domain die IP-Adresse des Senders enthält z.B. include:_spfdiv.heise.de |
redirect | Der SPF-Record einer anderen Domain soll eingeholt und ausgewertet werden z.B. redirect=gmx.net |
Beispiel
Aus den Test Abfragen sollte sich der restliche Aufbau von selber erklären.
Im Grunde ist es immer „Version, Regelwerk der eigenen Infrastruktur, Rest mit all“
Beispiel: v=spf1 mx:mx.domain.com a:domain.com ip4:1.2.3.0/24 ~all
Links
Wie Testet man die MTU Größe
Wie oft hat man das Problem, das man in einem Netzwerk, unerklärliche Netzwerk Abbrüche hat. Oft ist der Grund einfach eine falsche MTU Größe, die dazu führt, dass zwar Kommunikation möglich ist aber man bei größeren datenabhängigen auf einmal nichts mehr geht.
Grundlagen
Die MTU (Maximum Transmission Unit) Größe, definiert die Effektiv nutzbare Daten und ist mit jeder zusätzlichen Netzwerkschicht bzw. unterschiedlichen Protokollen anders. Dazu gehören z.b. IPv4 vs. IPv6, UDP vs. TCP oder Ethernet vs. Internet oder VPN. Mit jedem zusätzlichen Feature kommen ein paar Bytes zu Header dazu der die nutzbare Daten-gösse verringert. In einem Lokalen Netz hat man meist eine MTU von 1500 und Richtung Internet so um die 1472.
Eine zu kleine Größe führt dazu, das die Daten in zu viele Pakete aufgesplittet werden, man so mehr Header Daten senden muss und so einen schlechteren Durchsatz hat. Wohingegen zu große Blöcke zu Netzwerkproblemen führen.
Testen
Mit Ping kann man die MTU werte testen. Ping benutzt ICMP als Protokoll was eine Header Größe von 28 Bytes hat mit IPv4 (IPv4=20 bytes + ICMP=8 bytes = 28).
ping -D -c 2 -s 1472 8.8.8.8
sollte sowas wie das ergeben
PING 8.8.8.8 (8.8.8.8): 1472 data bytes
36 bytes from x.1x.1xx.1xx: frag needed and DF set (MTU 1492)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 05dc 0000 0 0000 3e 01 646f 192.1xx.1x.2xx 8.8.8.8
Jetzt Sagte uns Ping, das Packet müste Fragmentiert werden.
Wenn man die Blockgröße viel zu groß hat sieht es dann so aus.
ping -D -c 2 -s 1473 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 1473 data bytes
ping: sendto: Message too long
ping: sendto: Message too long
Also Testen wir es nochmal mit den vorgeschlagenen 1492. 1492-28 = 1464
ping -D -c 2 -s 1464 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 1464 data bytes
76 bytes from 8.8.8.8: icmp_seq=0 ttl=115 time=19.860 ms
Das heißt also, wir können eine MTU von 1492 verwenden in dieser Verbindung.
Windows
Unter Windows sind die Argumente ein wenig anders aber es geht dort genau so.
# windows powershell
ping -f -n 2 -l 1464 8.8.8.8
Ping wird ausgeführt für 8.8.8.8 mit 1464 Bytes Daten:
Antwort von 8.8.8.8: Bytes=68 (gesendet 1464) Zeit=19ms TTL=115