| Solution | Most of FortiGate's services allow adjusting behaviour for locally originated traffic, like it's described in the following configuration guide: Local out traffic But in some deployments, basic and straightforward configuration can lead to non non-working scenario. Let's take, as an example Syslog service: FGT # get log syslogd setting status : enable server : 10.226.131.62 mode : udp port : 651 facility : local7 source-ip : 10.13.8.67 format : default priority : default interface-select-method: specify interface : port2 FGT # show system interface port1 static 0.0.0.0 0.0.0.0 10.5.136.67 255.255.192.0 up disable physical port2 static 0.0.0.0 0.0.0.0 10.13.8.67 255.255.192.0 up disable physical The configuration above fully corresponds to the administration guide, while the syslog server doesn't receive any traffic. Let's take a closer look at the next debug output: FGT # diagnose debug application syslogd -1 Debug messages will be on for 30 minutes. FGT # diagnose debug enable pid:2081-__handle_msg()-414: Subscriber:2 received package. pubid:0 pkgid:35839 pkg_index:191 pid:2081-__handle_pkg_logs()-356: Subscriber:2 processing package size:1754 logs:2 pickup:2 pid:2081-__subscr_close_cur_pkg()-140: close package size:1754 logs:2 miglog_socket_set_interface()-287: Binded interface index: 4. <2081> __flush_queue()-159: sendmmsg failed to send data FGT # diagnose netlink interface list port2 if=port2 family=00 type=1 index=4 mtu=1500 link=0 master=0 ref=38 state=start present fw_flags=0 flags=up broadcast run multicast Qdisc=pfifo_fast hw_addr=00:6b:72:79:2a:02 broadcast_addr=ff:ff:ff:ff:ff:ff stat: rxp=10447610 txp=161141 rxb=3378864593 txb=19489658 rxe=0 txe=0 rxd=0 txd=0 mc=0 collision=0 @ time=1763021456 The output shows that despite proper interface binding (port2 has interface index 4), syslogd fails to send data. Syslogd statistics show an increasing 'cached' counter for localout traffic, while 'sent' does not change: FGT # diagnose test application syslogd 4 syslog=128, nulldev=0, webtrends=0, localout_ioc=337447, alarms=0 global log dev statistics: syslog 0: sent=0, failed=0, cached=128, dropped=0 localout-ioc statistics in root: sent=0, failed=3, cached=0, dropped=337444 FGT # diagnose test application syslogd 4 syslog=129, nulldev=0, webtrends=0, localout_ioc=337448, alarms=0 global log dev statistics: syslog 0: sent=0, failed=0, cached=129, dropped=0 localout-ioc statistics in root: sent=0, failed=3, cached=0, dropped=337445 To check outgoing traffic or the possible drop reason, enable syslog packet trace: FGT # diagnose debug flow filter daddr 10.226.131.62 FGT # diagnose debug flow filter dport 651 FGT # diagnose debug flow show function-name enable FGT # diagnose debug flow show iprope enable FGT # diagnose debug flow trace start 5 FGT # diagnose debug flow trace start enable FGT # diagnose debug enable miglog_socket_set_interface()-287: Binded interface index: 4. <2081> __flush_queue()-159: sendmmsg failed to send data pid:2081-__handle_msg()-414: Subscriber:2 received package. pubid:0 pkgid:35893 pkg_index:191 pid:2081-__handle_pkg_logs()-356: Subscriber:2 processing package size:913 logs:1 pickup:1 pid:2081-__subscr_close_cur_pkg()-140: close package size:913 logs:1 diagnose test application syslogd 4 syslog=157, nulldev=0, webtrends=0, localout_ioc=337474, alarms=0 global log dev statistics: syslog 0: sent=0, failed=0, cached=157, dropped=0 localout-ioc statistics in root: sent=0, failed=3, cached=0, dropped=337471 pid:2081-__handle_msg()-414: Subscriber:2 received package. pubid:0 pkgid:35894 pkg_index:191 pid:2081-__handle_pkg_logs()-356: Subscriber:2 processing package size:913 logs:1 pickup:1 pid:2081-__subscr_close_cur_pkg()-140: close package size:913 logs:1 miglog_socket_set_interface()-287: Binded interface index: 4. <2081> __flush_queue()-159: sendmmsg failed to send data diagnose test application syslogd 4 syslog=158, nulldev=0, webtrends=0, localout_ioc=337475, alarms=0 global log dev statistics: syslog 0: sent=0, failed=0, cached=158, dropped=0 localout-ioc statistics in root: sent=0, failed=3, cached=0, dropped=337472 pid:2081-__handle_msg()-414: Subscriber:2 received package. pubid:1 pkgid:35170 pkg_index:191 pid:2081-__handle_pkg_logs()-356: Subscriber:2 processing package size:913 logs:1 pickup:1 pid:2081-__subscr_close_cur_pkg()-140: close package size:913 logs:1 miglog_socket_set_interface()-287: Binded interface index: 4. <2081> __flush_queue()-159: sendmmsg failed to send data Or execute packet capture: FGT # diagnose sniffer packet any "host 10.226.131.62" 4 0 l Using Original Sniffing Mode interfaces=[any] filters=[host 10.226.131.62] 0 packets received by filter 0 packets dropped by kernel The output above demonstrates that despite properly running the syslogd daemon and increasing counters, there are no traceable packets generated. The source of the issue is the routing table, which does not include any prefixes pointing towards the server (10.226.131.62): FGT # get router info routing-table all Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area V - BGP VPNv4 * - candidate default Routing table for VRF=0 S* 0.0.0.0/0 [10/0] via 10.5.191.254, port1, [1/0] C 10.5.128.0/18 is directly connected, port1 C 10.13.0.0/18 is directly connected, port2 C 10.74.74.0/24 is directly connected, VL74 S 10.76.76.0/24 [10/0] via IPSec1 tunnel 10.5.136.69, [1/0] C 10.93.7.200/32 is directly connected, lo_mgmt C 10.253.240.0/20 is directly connected, wqt.root Solution: Inject the required prefix into the routing table, either manually or by a routing protocol. Here is the example with static route configuration: FGT # config router static FGT (static) # edit 5 new entry '5' added FGT (5) # FGT (5) # set dst 10.226.131.62 255.255.255.255 FGT (5) # set device port2 FGT (5) # show config router static edit 5 set dst 10.226.131.62 255.255.255.255 set device "port2" next end FGT (5) # end FGT # get router info routing-table all Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area V - BGP VPNv4 * - candidate default Routing table for VRF=0 S* 0.0.0.0/0 [10/0] via 10.5.191.254, port1, [1/0] C 10.5.128.0/18 is directly connected, port1 C 10.13.0.0/18 is directly connected, port2 C 10.74.74.0/24 is directly connected, VL74 S 10.76.76.0/24 [10/0] via IPSec1 tunnel 10.5.136.69, [1/0] C 10.93.7.200/32 is directly connected, lo_mgmt S 10.226.131.62/32 [10/0] is directly connected, port2, [1/0] C 10.253.240.0/20 is directly connected, wqt.root FGT # diagnose sniffer packet any "host 10.226.131.62" 4 0 l Using Original Sniffing Mode interfaces=[any] filters=[host 10.226.131.62] 2025-11-13 00:34:55.691438 port2 out arp who-has 10.226.131.62 tell 10.13.8.67 2025-11-13 00:34:56.740141 port2 out arp who-has 10.226.131.62 tell 10.13.8.67 2025-11-13 00:34:57.780109 port2 out arp who-has 10.226.131.62 tell 10.13.8.67 ^C 3 packets received by filter 0 packets dropped by kernel FGT # diagnose test application syslogd 4 syslog=260, nulldev=0, webtrends=0, localout_ioc=337569, alarms=0 global log dev statistics: syslog 0: sent=260, failed=0, cached=0, dropped=0 localout-ioc statistics in root: sent=0, failed=3, cached=0, dropped=337566 As it shows above, after the prefix was added to the routing table, outgoing traffic appeared in packet captures, and syslogd statistics display the 'cached' counter 0, while 'sent' is increasing. Related articles: Technical Tip: How to specify outgoing interface for local DNS traffic Troubleshooting Tip: Unable to connect to FortiGuard servers |