{"id":87,"date":"2025-12-17T11:55:46","date_gmt":"2025-12-17T09:55:46","guid":{"rendered":"https:\/\/blog.bk201.eu\/?p=87"},"modified":"2025-12-17T11:57:48","modified_gmt":"2025-12-17T09:57:48","slug":"configurazione-link-monitor-in-ambiente-asimmetrico","status":"publish","type":"post","link":"https:\/\/blog.bk201.eu\/?p=87","title":{"rendered":"Configurazione link-monitor in ambiente asimmetrico."},"content":{"rendered":"\n<p>Immaginiamo due datacenter con un cluster di FortiGate FGCP collegati a due ISP su reti diverse.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"265\" height=\"241\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/Diagramma-senza-titolo.drawio.png\" alt=\"\" class=\"wp-image-88\"\/><\/figure>\n\n\n\n<p>Essendo un cluster FGCP la configurazione \u00e8 sincronizzata tra le unit\u00e0 e durante il failover il FortiGate secondario non sar\u00e0 mai raggiungibile a causa della configurazione sulla rete sbagliata.<br>Normalmente questa configurazione \u00e8 richiesta principalmente in ambienti cloud dove per\u00f2 \u00e8 possibile configurare le eccezioni per evitare la sincronizzazione delle diverse interface e rotte statiche disponibili nelle VM:<br><a href=\"https:\/\/community.fortinet.com\/t5\/FortiGate\/Technical-Tip-How-VDOM-Exceptions-Prevent-Interface-Settings\/ta-p\/243918\" data-type=\"link\" data-id=\"https:\/\/community.fortinet.com\/t5\/FortiGate\/Technical-Tip-How-VDOM-Exceptions-Prevent-Interface-Settings\/ta-p\/243918\">Technical Tip: VDOM Exception<\/a><br><br>Tuttavia questa configurazione non \u00e8 disponibile nei modelli hardware in quanto il clustering protocol non \u00e8 mai stato pensato per essere usato in ambienti assimetrici dove il FortiGate non condivide il broadcast domain tra i due device.<\/p>\n\n\n\n<p>Un potenziale workaround \u00e8 assegnare un ip secondario sull&#8217;interfaccia e usare ip di entrambe le network, dunque creare due rotte default per ogni gateway.<\/p>\n\n\n\n<p>Normalmente con questa configurazione si ottiene la seguente condizione:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"893\" height=\"727\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image.png\" alt=\"\" class=\"wp-image-90\" style=\"aspect-ratio:1.2283758870621513;width:424px;height:auto\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image.png 893w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-300x244.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-768x625.png 768w\" sizes=\"auto, (max-width: 893px) 100vw, 893px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"110\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-1-1024x110.png\" alt=\"\" class=\"wp-image-91\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-1-1024x110.png 1024w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-1-300x32.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-1-768x82.png 768w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-1.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Essendo rotte statiche entrambe verrano installate in kernel ma solo quella con il gateway minore sar\u00e0 utilizzata.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"73\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-2-1024x73.png\" alt=\"\" class=\"wp-image-92\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-2-1024x73.png 1024w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-2-300x21.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-2-768x55.png 768w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-2.png 1081w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"93\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-3-1024x93.png\" alt=\"\" class=\"wp-image-93\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-3-1024x93.png 1024w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-3-300x27.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-3-768x70.png 768w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-3.png 1122w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dunque \u00e8 necessario disabilitare uno delle due rotte nel momento dello swap per funzionare, esempio di un link-monitor configurato:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>config system link-monitor\n    edit \"down10000\"\n        set srcintf \"port2\"\n        set server \"10.0.0.1\"\n        set gateway-ip 10.0.0.1\n        set route \"0.0.0.0\/0\"\n    next\n    edit \"down20000\"\n        set srcintf \"port2\"\n        set server \"20.0.0.1\"\n        set gateway-ip 20.0.0.1\n        set route \"0.0.0.0\/0\"\n    next\nend<\/code><\/pre>\n\n\n\n<p>Due opzioni fondamentali sono:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set gateway-ip\nset route<\/code><\/pre>\n\n\n\n<p>Questa configurazione effettua un ping continuo verso il server e nel caso viene rilevato down la rotta &#8220;0.0.0.0\/0&#8221; con gateway &#8220;20.0.0.1&#8221; viene disabilitata:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"810\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-4.png\" alt=\"\" class=\"wp-image-94\" style=\"aspect-ratio:1.023482871812137;width:599px;height:auto\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-4.png 829w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-4-300x293.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-4-768x750.png 768w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<p>In kernel non \u00e8 pi\u00f9 presente la rotta per con gateway 20.0.0.1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"861\" height=\"22\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-5.png\" alt=\"\" class=\"wp-image-95\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-5.png 861w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-5-300x8.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-5-768x20.png 768w\" sizes=\"auto, (max-width: 861px) 100vw, 861px\" \/><\/figure>\n\n\n\n<p>Subito dopo il failover senza modificare la configurazione il link-monitor \u00e8 cambiato rilevando il peer 10.0.0.1 morto e disabilitando la rotta:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"812\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-6.png\" alt=\"\" class=\"wp-image-96\" style=\"aspect-ratio:1.0037144036318613;width:572px;height:auto\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-6.png 815w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-6-300x300.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-6-150x150.png 150w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-6-768x765.png 768w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"834\" height=\"18\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-7.png\" alt=\"\" class=\"wp-image-98\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-7.png 834w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-7-300x6.png 300w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-7-768x17.png 768w\" sizes=\"auto, (max-width: 834px) 100vw, 834px\" \/><\/figure>\n\n\n\n<p>Traceroute:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"71\" src=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-8.png\" alt=\"\" class=\"wp-image-99\" srcset=\"https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-8.png 755w, https:\/\/blog.bk201.eu\/wp-content\/uploads\/2025\/12\/image-8-300x28.png 300w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/figure>\n\n\n\n<p>Il link-monitor \u00e8 una feature molto potente che permette anche di spegnere le porte fisiche, di default ha molte opzioni invasive abilitate e potrebbe creare disservizi durante una prima configurazione non testata.<\/p>\n\n\n\n<p>Da notare che il link-monitor ha effetto su rotte statiche e PBR ma non ha effetto su SD-WAN policy o interfacce membri di una zona.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Immaginiamo due datacenter con un cluster di FortiGate FGCP collegati a due ISP su reti diverse. Essendo un cluster FGCP la configurazione \u00e8 sincronizzata tra le unit\u00e0 e durante il failover il FortiGate secondario non sar\u00e0 mai raggiungibile a causa della configurazione sulla rete sbagliata.Normalmente questa configurazione \u00e8 richiesta principalmente in ambienti cloud dove per\u00f2 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,1],"tags":[],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-fortigate","category-network"],"_links":{"self":[{"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/posts\/87","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=87"}],"version-history":[{"count":6,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bk201.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}