<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://michealgarner.co.uk/</loc></url><url><loc>https://michealgarner.co.uk/about/</loc></url><url><loc>https://michealgarner.co.uk/blog/</loc></url><url><loc>https://michealgarner.co.uk/blog/a-day-in-the-life-of-a-packet-on-a-50g-fortigate-part-1-ingress-np7-and-the-fast/</loc></url><url><loc>https://michealgarner.co.uk/blog/a-day-in-the-life-of-a-packet-on-a-50g-fortigate-part-2-stateful-inspection-sess/</loc></url><url><loc>https://michealgarner.co.uk/blog/a-day-in-the-life-of-a-packet-on-a-50g-fortigate-part-3-routing-policy-routes-an/</loc></url><url><loc>https://michealgarner.co.uk/blog/a-day-in-the-life-of-a-packet-on-a-50g-fortigate-part-4-firewall-policy-nat-and-/</loc></url><url><loc>https://michealgarner.co.uk/blog/a-day-in-the-life-of-a-packet-on-a-50g-fortigate-part-5-egress-npu-offload-and-t/</loc></url><url><loc>https://michealgarner.co.uk/blog/adding-vendor-route-table-parsers-to-route-compare-and-why-the-work-lives-on-a-b/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-1-why-i-gave-claude-write-access-to-my-site/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-2-the-minimum-viable-mcp-server/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-3-designing-tools-for-an-llm/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-4-safety-rails/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-5-prompt-driven-authoring-in-practice/</loc></url><url><loc>https://michealgarner.co.uk/blog/ai-part-6-connector-quirks-and-what-id-do-differently/</loc></url><url><loc>https://michealgarner.co.uk/blog/arista-vmware-sd-wan-deep-dive-part-1-components-gateways-and-the-three-planes/</loc></url><url><loc>https://michealgarner.co.uk/blog/arista-vmware-sd-wan-deep-dive-part-2-routing-overlay-underlay-bgp-and-the-gatew/</loc></url><url><loc>https://michealgarner.co.uk/blog/arista-vmware-sd-wan-deep-dive-part-3-the-data-plane-vcmp-dmpo-and-per-flow-stee/</loc></url><url><loc>https://michealgarner.co.uk/blog/arista-vmware-sd-wan-deep-dive-part-4-topology-walkthroughs-mpls-only-meets-inte/</loc></url><url><loc>https://michealgarner.co.uk/blog/arista-vmware-sd-wan-deep-dive-part-5-best-practice-failure-modes-and-a-design-c/</loc></url><url><loc>https://michealgarner.co.uk/blog/bgp-route-dampening-part-1-the-flapping-problem-exponential-decay-and-cisco-conf/</loc></url><url><loc>https://michealgarner.co.uk/blog/bgp-route-dampening-part-2-rfc-7454-bfd-and-where-dampening-still-belongs/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-fortimanager-lab-on-proxmox-part-1-lab-goals-compute-sizing-and-proxm/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-fortimanager-lab-on-proxmox-part-2-obtaining-the-image-qcow2-conversi/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-fortimanager-lab-on-proxmox-part-3-proxmox-networking-linux-bridges-v/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-fortimanager-lab-on-proxmox-part-4-a-lab-edge-fortigate-vm-in-front-o/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-fortimanager-lab-on-proxmox-part-5-registering-managed-fortigates-ado/</loc></url><url><loc>https://michealgarner.co.uk/blog/building-a-polished-cli-tool-with-click-and-rich-packaging-network-automation-fo/</loc></url><url><loc>https://michealgarner.co.uk/blog/comparing-route-tables-between-two-sources-a-small-python-tool-for-audits-and-mi/</loc></url><url><loc>https://michealgarner.co.uk/blog/configuring-radius-admin-auth-on-fortigate-sd-wan-rbac-and-three-user-profiles-p/</loc></url><url><loc>https://michealgarner.co.uk/blog/designing-an-arista-sd-wan-spoke-with-enhanced-ha-dual-dia-and-ospf/</loc></url><url><loc>https://michealgarner.co.uk/blog/diffing-fortigate-configs-the-way-an-admin-reads-them-fgt-config-diff/</loc></url><url><loc>https://michealgarner.co.uk/blog/finding-the-hop-thats-eating-your-packets-pmtud-sweeper/</loc></url><url><loc>https://michealgarner.co.uk/blog/fortinet-sd-wan-jinja-orchestrator-part-1-the-two-template-engines/</loc></url><url><loc>https://michealgarner.co.uk/blog/fortinet-sd-wan-jinja-orchestrator-part-2-anatomy-and-patterns/</loc></url><url><loc>https://michealgarner.co.uk/blog/fortinet-sd-wan-jinja-orchestrator-part-3-psk-to-cert-with-fmg-as-ca/</loc></url><url><loc>https://michealgarner.co.uk/blog/fortios-766-sd-wan-vrf1-transport-and-loopback-design/</loc></url><url><loc>https://michealgarner.co.uk/blog/generating-a-constant-stream-of-web-traffic-with-python/</loc></url><url><loc>https://michealgarner.co.uk/blog/how-i-use-claude-to-help-run-this-blog-and-why-you-should-try-it/</loc></url><url><loc>https://michealgarner.co.uk/blog/iptables-to-nftables-migrating-production-firewalls-without-downtime/</loc></url><url><loc>https://michealgarner.co.uk/blog/linux-networking-from-the-ground-up-network-namespaces-veth-pairs-and-building-a/</loc></url><url><loc>https://michealgarner.co.uk/blog/mp-bgp-and-vrfs-on-fortigate-sd-wan/</loc></url><url><loc>https://michealgarner.co.uk/blog/napalm-vs-netmiko-vendor-agnostic-config-vs-raw-cli-and-when-you-want-both/</loc></url><url><loc>https://michealgarner.co.uk/blog/netmiko-in-practice-from-a-show-command-script-to-a-repeatable-audit-tool/</loc></url><url><loc>https://michealgarner.co.uk/blog/network-emulation-with-netem-simulating-latency-loss-jitter-and-bandwidth-constr/</loc></url><url><loc>https://michealgarner.co.uk/blog/nornir-for-network-engineers-running-automation-across-an-inventory-at-scale/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-exam-syllabus-study-roadmap-part-1-of-10/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-2-initial-configuration-the-security-fabric/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-3-firewall-policies-nat/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-4-authentication-fsso-certificates/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-5-logging-monitoring-diagnostics/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-6-security-profiles-web-app-control-av-ips-dos/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-7-ssl-vpn/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-8-ipsec-vpn/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-9-routing-sd-wan/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse4-part-10-high-availability/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-exam-syllabus-study-roadmap-part-1-of-10/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-2-initial-configuration-and-system-settings/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-3-high-availability/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-4-administrative-domains-adoms/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-5-device-registration-and-provisioning/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-6-device-level-configuration-and-templates/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-7-policy-and-objects/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-8-workflow-workspace-mode-and-revision-control/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-9-diagnostics-and-troubleshooting/</loc></url><url><loc>https://michealgarner.co.uk/blog/nse5-part-10-advanced-features-and-integrations/</loc></url><url><loc>https://michealgarner.co.uk/blog/parsing-show-command-output-textfsm-genie-and-ttp-for-structured-data/</loc></url><url><loc>https://michealgarner.co.uk/blog/radius-vs-tacacs-on-fortigate-sd-wan-choosing-the-right-aaa-backend-part-1-of-2/</loc></url><url><loc>https://michealgarner.co.uk/blog/resilient-dns-at-home-building-an-ha-pi-hole-pair-on-raspberry-pi/</loc></url><url><loc>https://michealgarner.co.uk/blog/route-leaking-between-vrfs-on-cisco-ios-from-bgp-first-principles-to-advanced-ma/</loc></url><url><loc>https://michealgarner.co.uk/blog/route-leaking-between-vrfs-on-fortigate-why-its-trickier-than-you-think/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-1-gmdss-sea-areas-and-why-the-src-exists/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-2-vhf-channels-frequencies-and-propagation/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-3-the-vhf-set-controls-antennas-and-power/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-4-dsc-and-mmsi-how-the-radio-calls-other-radios/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-5-distress-dsc-alerts-mayday-and-mayday-relay/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-6-urgency-safety-and-routine-voice-procedure/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-7-epirbs-sarts-and-navtex/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-8-protecting-distress-frequencies-false-alerts-testing-and-guard-ba/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-9-regulations-licences-watchkeeping-and-who-makes-the-rules/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-10-how-to-pass-the-src-exam-structure-timing-and-day-of/</loc></url><url><loc>https://michealgarner.co.uk/blog/rya-src-part-11-practice-exam-50-questions-paper-a-and-paper-b/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-1-design-and-assumptions/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-2-bgp-on-loopback/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-3-dc-to-dce-routing-static-ospf-and-bgp/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-4-bfd-and-convergence-tuning/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-5-performance-slas-and-service-steering/</loc></url><url><loc>https://michealgarner.co.uk/blog/sdwan-resilience-part-6-building-it-right-full-dci-and-dual-active-advpn/</loc></url><url><loc>https://michealgarner.co.uk/blog/spectre-meltdown-checker-auditing-cpu-vulnerability-mitigations-on-linux/</loc></url><url><loc>https://michealgarner.co.uk/blog/ssh-hardening-beyond-the-basics-certificate-authorities-bastion-patterns-and-ses/</loc></url><url><loc>https://michealgarner.co.uk/blog/tcpdump-deep-dive-bpf-filters-capture-rotation-and-cross-mapping-to-fortigates-d/</loc></url><url><loc>https://michealgarner.co.uk/blog/the-ultimate-fortios-cli-reference-for-the-nse-4-exam-part-1-system-health-routi/</loc></url><url><loc>https://michealgarner.co.uk/blog/the-ultimate-fortios-cli-reference-for-the-nse-4-exam-part-2-session-table-packe/</loc></url><url><loc>https://michealgarner.co.uk/blog/the-ultimate-fortios-cli-reference-for-the-nse-4-exam-part-3-vpn-ha/</loc></url><url><loc>https://michealgarner.co.uk/blog/velocloud-sd-wan-and-partner-gateways-part-1-mpls-only-site-architecture/</loc></url><url><loc>https://michealgarner.co.uk/blog/velocloud-sd-wan-and-partner-gateways-part-2-onboarding-an-mpls-only-edge/</loc></url><url><loc>https://michealgarner.co.uk/blog/velocloud-sd-wan-and-partner-gateways-part-3-taming-the-default-route-at-the-nni/</loc></url><url><loc>https://michealgarner.co.uk/blog/who-sent-that-rst-forensic-classification-of-tcp-resets-with-rst-forensics/</loc></url><url><loc>https://michealgarner.co.uk/contact/</loc></url><url><loc>https://michealgarner.co.uk/contact/error/</loc></url><url><loc>https://michealgarner.co.uk/contact/success/</loc></url><url><loc>https://michealgarner.co.uk/cv/</loc></url><url><loc>https://michealgarner.co.uk/guides/</loc></url><url><loc>https://michealgarner.co.uk/guides/ai/</loc></url><url><loc>https://michealgarner.co.uk/guides/cisco/</loc></url><url><loc>https://michealgarner.co.uk/guides/fortinet/</loc></url><url><loc>https://michealgarner.co.uk/guides/fortinet/nse4/</loc></url><url><loc>https://michealgarner.co.uk/guides/fortinet/nse5/</loc></url><url><loc>https://michealgarner.co.uk/guides/fortinet/troubleshooting/</loc></url><url><loc>https://michealgarner.co.uk/guides/linux/</loc></url><url><loc>https://michealgarner.co.uk/guides/personal/</loc></url><url><loc>https://michealgarner.co.uk/guides/python/</loc></url><url><loc>https://michealgarner.co.uk/guides/velocloud/</loc></url></urlset>