Troubleshooting 522
Troubleshooting 522
VERSION 5.2.2
FORTINET DOCUMENTLIBRARY
http://docs.fortinet.com
FORTINETVIDEOGUIDE
http://video.fortinet.com
FORTINETBLOG
https://blog.fortinet.com
CUSTOMERSERVICE&SUPPORT
https://support.fortinet.com
FORTIGATECOOKBOOK
http://cookbook.fortinet.com
FORTINETTRAININGSERVICES
http://www.fortinet.com/training
FORTIGUARDCENTER
http://www.fortiguard.com
ENDUSER LICENSE AGREEMENT
http://www.fortinet.com/doc/legal/EULA.pdf
FEEDBACK
Email: [email protected]
January-05-15
FortiOS Handbook - Troubleshooting
TABLEOFCONTENTS
Change Log
Introduction
Before you begin
How this guide is organized
Life of a Packet
Stateful inspection
Connections over connectionless
What is a session?
Differences between connections and sessions
Flow inspection
Proxy inspection
Comparison of inspection layers
FortiOS functions and security layers
Packet flow
Packet inspection (Ingress)
Interface
DoS sensor
IP integrity header checking
IPsec
Destination NAT (DNAT)
Routing
Policy lookup
Session tracking
User authentication
Management traffic
SSL VPN traffic
ICAP traffic
Session helpers
Flow-based inspection engine
Proxy-based inspection engine
IPsec
Source NAT (SNAT)
Routing
Egress
7
8
8
8
9
9
10
10
10
11
12
12
13
14
14
15
15
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
Troubleshooting methodologies
Establish a baseline
Define the problem
Gathering Facts
Create a troubleshooting plan
Providing Supporting Elements
Obtain any required additional equipment
Ensure you have administrator level access to required equipment
Contact Fortinet customer support for assistance
Troubleshooting tools
FortiOS diagnostics
Check date and time
Resource usage
Proxy operation
Hardware NIC
Traffic trace
Session table
Firewall session setup rate
Finding object dependencies
Flow trace
Packet sniffing and packet capture
NPU based interfaces
Debug command
18
20
21
24
24
24
25
25
26
26
26
27
27
27
28
28
28
28
29
30
30
31
32
32
33
33
33
34
35
35
35
36
37
41
43
44
47
47
48
51
54
55
Common questions
How to check hardware connections
How to check FortiOS network settings
Interface settings
DNS settings
DHCP Server settings
How to check CPU and memory resources
How to troubleshoot high memory usage
How to troubleshoot high CPU usage
How to check modem status
How to run ping and traceroute
Ping
Traceroute
How to check the logs
How to verify the contents of the routing table (in NAT mode)
How to verify the correct route is being used
How to verify the correct firewall policy is being used
How to check the bridging information in Transparent mode
How to check the bridging information
How to display forwarding domain information
How to check number of sessions used by UTM proxy
Conserve or failopen mode
Checking sessions in use
Related commands
How to examine the firewall session list
Check source NAT information
How to check wireless information
Troubleshooting station connection issue
Enable diagnostic for particular station
How to verify FortiGuard connectivity
How to perform a sniffer trace (CLI and Packet Capture)
What can sniffing packets tell you
How do you sniff packets
Packet Capture
How to debug the packet flow
57
57
59
60
60
61
61
64
65
66
66
66
67
67
68
69
72
72
73
74
76
77
78
79
79
79
79
81
81
82
84
84
85
85
85
86
86
87
87
87
88
89
Troubleshooting resources
91
Technical Documentation
Fortinet Video Library
Release Notes
Knowledge Base
Fortinet Technical Discussion Forums
Fortinet Training Services Online Campus
Fortinet Customer Support
91
91
91
91
91
92
92
93
93
94
94
96
96
97
97
97
98
98
98
98
98
99
Change Log
Date
Change Description
Initial release.
Introduction
Welcome and thank you for selecting Fortinet products for your network protection.
This guide is intended for administrators who need guidance on different network needs and information on basic and
advanced troubleshooting.
This chapter contains the following topics:
l
Administrators are assumed to be super_admin administrators unless otherwise specified. Some restrictions will
apply to other administrators.
Life of a Packet
Directed by security policies, a FortiGate unit screens network traffic from the IP layer up through the application layer
of the TCP/IP stack. This chapter provides a general, high-level description of what happens to a packet as it travels
through a FortiGate security system.
The FortiGate unit performs three types of security inspection:
l
l
l
Stateful inspection, that provides individual packet-based security within a basic session state
Flow-based inspection, that buffers packets and uses pattern matching to identify security threats
Proxy-based inspection, that reconstructs content passing through the FortiGate unit and inspects the content for
security threats.
Each inspection component plays a role in the processing of a packet as it traverses the FortiGate unit in route to its
destination. To understand these inspections is the first step to understanding the flow of the packet.
This section contains the following topics:
l
Stateful inspection
Flow inspection
Proxy inspection
Packet flow
Stateful inspection
With stateful inspection, the FortiGate unit looks at the first packet of a session to make a security decision. Common
fields inspected include TCP SYN and FIN flags to identity the start and end of a session, the source/destination IP,
source/destination port and protocol. Other checks are also performed on the packed payload and sequence numbers
to verify it as a valid communication and that the data is not corrupted or poorly formed.
What makes it stateful is that one or both ends must save information about the session history in order to
communicate. In stateless communication, only independent requests and responses are used, that do not depend on
previous data. For example, UDP is stateless by nature because it has no provision for reliability, ordering, or data
integrity.
The FortiGate unit makes the decision to drop, pass or log a session based on what is found in the first packet of the
session. If the FortiGate unit decides to drop or block the first packet of a session, then all subsequent packets in the
same session are also dropped or blocked without being inspected. If the FortiGate unit accepts the first packet of a
session, then all subsequent packets in the same session are also accepted without being inspected.
Stateful inspection
Life of a Packet
DH - This level of security is commonly referred to as a session layer firewall because it operates at the Session Layer
of the TCP/IP model and provides protection based on routing and access control lists based on TCP and IP header
information.
What is a session?
A session is established on an existing connection, for a defined period of time, using a determined type of
communication or protocol. Sessions can have specific bandwidth , and time to live (TTL) parameters.
You can compare a session to a conversation. A session is established when one end point initiates a request by
establishing a TCP connection on a particular port, the receiving end is listening on that port, and replies. You could
telnet to port 80 even though telnet normally uses port 23, because at this level, the application being used cannot be
determined.
However, the strong points of sessions and stateful protocols can also be their weak points. Denial of service (DoS)
attacks involve creating so many sessions that the connection state information tables are full and the unit will not
accept additional sessions.
10
Life of a Packet
Flow inspection
SY
N,
1
IP,
TC
nt
Se et
ck
Pa
1
3
d
ive
ce et
e
R ck
Pa
Flow inspection
With flow inspection (also called flow-based inspection), the FortiGate unit samples multiple packets in a session and
multiple sessions, and uses a pattern matching engine to determine the kind of activity that the session is performing
and to identify possible attacks or viruses. For example, if application control is operating, flow inspection can sample
network traffic and identify the application that is generating the activity. Flow inspection using IPS samples network
traffic and determines if the traffic constitutes an attack. Flow inspection can also be used for antivirus protection, web
filtering, and data leak protection (DLP). Flow inspection occurs as the data is passing from its source to its
destination. Flow inspection identifies and blocks security threats in real time as they are identified.
3
2
nt
Se et
k
c
Pa
IPS
,
Ap Flow
p C -AV
ont ,
rol
2
1
2
ed
eiv t
c
Re cke
Pa
Flow inspection typically requires less processing than proxy inspection, and therefore flow antivirus, web filtering, and
DLP inspection performance can be better than proxy inspection performance. However, some threats can only be
detected when a complete copy of the payload (for example a complete email attachment) is obtained so, proxy
inspection tends to be more accurate and complete than flow inspection.
11
Proxy inspection
Life of a Packet
Proxy inspection
Proxy inspection examines the content contained in content protocol sessions for security threats. Content protocols
include HTTP, FTP, and email protocols. Security threats can be found in files and other content downloaded using
these protocols. With proxy inspection, the FortiGate unit downloads the entire payload of a content protocol session
and re-constructs it. For example, proxy inspection can reconstruct an email message and its attachments. After a
satisfactory inspection the FortiGate unit passes the content on to the client. If the proxy inspection detects a security
threat in the content, the content is removed from the communication stream before it reaches its destination. For
example, if proxy inspection detects a virus in an email attachment, the attachment is removed from the email
message before its sent to the client. Proxy inspection is the most thorough inspection of all, although it requires more
processing power, and this may result in lower performance.
1
3
nt
Se et
ck
Pa
Em
a
filteil filter
r, D , we
LP, b
AV
3
1
2
1
3
d
i ve
ce et
e
R ck
Pa
Stateful
Flow
Proxy
first packet
selected packets
complete content
low
medium
high
good
better
best
12
Life of a Packet
Feature
Stateful
Flow
Proxy
Authentication
yes
yes
Antivirus protection
yes
yes
Web Filtering
yes
yes
yes
yes
Application control
yes
IPS
yes
Delay in traffic
no
small
no
yes
13
Security Function
Stateful
Firewall
yes
IPsec VPN
yes
Traffic Shaping
yes
User Authentication
yes
Management Traffic
yes
SSL VPN
yes
Flow
Intrusion Prevention
yes
Antivirus
yes
Application Control
yes
Web filtering
yes
Proxy
yes
yes
Packet flow
Security Function
Life of a Packet
Stateful
Flow
DLP
Email Filtering
VoIP inspection
Proxy
yes
yes
yes
yes
Packet flow
After the FortiGate units external interface receives a packet, the packet proceeds through a number of steps on its
way to the internal interface, traversing each of the inspection types, depending on the security policy and security
profile configuration. The diagram below is a high level view of the packets journey.
The description following is a high-level description of these steps as a packet enters the FortiGate unit towards its
destination on the internal network. Similar steps occur for outbound traffic.
l
l
Packet verification - during the IP integrity stage, verification is performed to ensure that the layer 4 protocol header
is the correct length. If not, the packet is dropped.
Session creation - the FortiGate unit attempts to create a session for the incoming data
IP stack validation for routing - the firewall performs IP header length, version and checksum verifications in
preparation for routing the packet.
Verifications of IP options - the FortiGate unit validates the rouging information
14
Life of a Packet
Packet flow
Interface
Ingress packets are received by a FortiGate interface.The packet enters the system, and the interface network device
driver passes the packet to the Denial of Service (DoS) sensors, if enabled, to determine whether this is a valid
information request or not.
DoS sensor
DoS scans are handled very early in the life of the packet to determine whether the traffic is valid or is part of a DoS
attack. Unlike signature-based IPS which inspects all the packets within a certain traffic flow, the DoS module inspects
15
Packet flow
Life of a Packet
all traffic flows but only tracks packets that can be used for DoS attacks (for example TCP SYN packets), to ensure
they are within the permitted parameters. Suspected DoS attacks are blocked, other packets are allowed.
IPsec
If the packet is an IPsec packet, the IPsec engine attempts to decrypt it. The IPsec engine applies the correct
encryption keys to the IPsec packet and sends the unencrypted packet to the next step. IPsec is bypassed when for
non-IPsec traffic and for IPsec traffic that cannot be decrypted by the FortiGate unit.
Routing
The routing step determines the outgoing interface to be used by the packet as it leaves the FortiGate unit. In the
previous step, the FortiGate unit determined the real destination address, so it can now refer to its routing table and
decide where the packet must go next.
Routing also distinguishes between local traffic and forwarded traffic and selects the source and destination interfaces
used by the security policy engine to accept or deny the packet.
Policy lookup
The policy look up is where the FortiGate unit reviews the list of security policies which govern the flow of network
traffic, from the first entry to the last, to find a match for the source and destination IP addresses and port numbers.
The decision to accept or deny a packet, after being verified as a valid request within the stateful inspection, occurs
here. A denied packet is discarded. An accepted packet will have further actions taken. If IPS is enabled, the packet
will go to Flow-based inspection engine, otherwise it will go to the Proxy-based inspection engine.
If no other security options are enabled, then the session was only subject to stateful inspection. If the action is accept,
the packet will go to Source NAT to be ready to leave the FortiGate unit.
16
Life of a Packet
Packet flow
Session tracking
Part of the stateful inspection engine, session tracking maintains session tables that maintain information about
sessions that the stateful inspection module uses for maintaining sessions, NAT, and other session related functions.
User authentication
User authentication added to security policies is handled by the stateful inspection engine, which is why Firewall
authentication is based on IP address. Authentication takes place after policy lookup selects a security policy that
includes authentication. This is also known as identify-based policies. Authentication also takes place before security
features are applied to the packet.
Management traffic
This local traffic is delivered to the FortiGate unit TCP/IP stack and includes communication with the web-based
manager, the CLI, the FortiGuard network, log messages sent to FortiAnalyzer or a remote syslog server, and so on.
Management traffic is processed by applications such as the web server which displays the FortiOS web-based
manager, the SSH server for the CLI or the FortiGuard server to handle local FortiGuard database updates or
FortiGuard Web Filtering URL lookups.
ICAP traffic
If you enable ICAP in a security policy, HTTP (and optionally HTTPS) traffic intercepted by the policy is transferred to
ICAP servers in the ICAP profile added to the policy. The FortiGate unit is the surrogate, or middle-man, and carries
the ICAP responses from the ICAP server to the ICAP client; the ICAP client then responds back, and the FortiGate
unit determines the action that should be taken with these ICAP responses and requests.
Session helpers
Some protocols include information in the packet body (or payload) that must be analyzed to successfully process
sessions for this protocol. For example, the SIP VoIP protocol uses TCP control packets with a standard destination
port to set up SIP calls. To successfully process SIP VoIP calls, FortiOS must be able to extract information from the
body of the SIP packet and use this information to allow the voice-carrying packets through the firewall.
FortiOS uses session helpers to analyze the data in the packet bodies of some protocols and adjust the firewall to
allow those protocols to send packets through the firewall.
17
Life of a Packet
Once the packet has passed the flow-based engine, it can be sent to the proxy inspection engine or egress.
IPsec
If the packet is transmitted through an IPsec tunnel, it is at this stage the encryption and required encapsulation is
performed. For non-IPsec traffic (TCP/UDP) this step is bypassed.
Routing
The final routing step determines the outgoing interface to be used by the packet as it leaves the FortiGate unit.
Egress
Upon completion of the scanning at the IP level, the packet exits the FortiGate unit.
18
Life of a Packet
DoS sensor - checks are done to ensure the sender is valid and not attempting a denial of service attack.
IP integrity header checking, verifying the IP header length, version and checksums.
Next hop route
Policy lookup
User authentication
Proxy inspection
Source NAT
Routing
Interface transmission to network
Packet forwarded to web server
19
Life of a Packet
Client/server connection
2.1 Link level CRC and packet size checking. If the size is correct, the packet continues, otherwise it is
20
Life of a Packet
dropped.
3. DoS sensor - checks are done to ensure the sender is valid and not attempting a denial of service attack.
4. IP integrity header checking, verifying the IP header length, version and checksums.
5. Stateful policy engine
2.1 Link level CRC and packet size checking. If the size is correct, the packet continues, otherwise it is
dropped.
3. DoS sensor - checks are done to ensure the sender is valid and not attempting a denial of service attack.
4. IP integrity header checking, verifying the IP header length, version and checksums.
5. IPsec
21
Life of a Packet
8.1 IPS
8.2 Application control
9.
10.
11.
12.
Source NAT
Routing
Interface transmission to network
Packet forwarded to internal server
5.1 IPS
5.2 Application control
6. Stateful policy engine
22
Life of a Packet
23
Change the admin account name and limit access to this account
When enabling remote access, configure Trusted Hosts and Two-factor Authentication
24
Change the admin account name and limit access to this account
If you want some administrator accounts to have limited access to the FortiGate configuration you can create custom
admin profiles that only allow access to selected parts of the configuration. To add custom admin profiles, go to
System > Admin > Admin Profiles and select Create New.
For example, if you want to add an admin profile that does not allow changing firewall policies, when you configure the
admin profile set Firewall Configuration to None or Read Only.
Change the admin account name and limit access to this account
The default super_admin administrator account, admin, is a well known administrator name so if this account is
available it could be easier for attackers to access the FortiGate unit because they know they can log in with this name,
only having to determine the password. You can improve security by changing this name to one more difficult for an
attacker to guess.
To do this, create a new administrator account with the super_admin admin profile and log in as that administrator.
Then go to System > Admin > Administrators and edit the admin administrator and change the Administrator
name.
Once the account has been renamed you could delete the super_admin account that you just added. Consider also
only using the super-admin account for adding or changing administrators. The less this account is used to less likely
that it could be compromised. You could also store the account name and password for this account in a secure
location in case for some reason the account name or password is forgotten.
Please note that this will disable all services on the external interface including CAPWAP, FMG-Access, SNMP, and
FCT-Access. If you need some of these services enabled on your external interface, for example CAPWAP and FMGAccess to ensure connectivity between FortiGate unit and respectively FortiAP and FortiManager, then you need to
use following CLI command:
config system interface
edit <external_interface_name>
set allowaccess capwap fgfm
end
25
26
27
Keep in mind that the higher the lockout value, the higher the risk that someone may be able to break into the
FortiGate unit.
28
29
Troubleshooting methodologies
Before you begin troubleshooting anything but the most minor issues, you need to prepare. Doing so will shorten the
time to solve your issue. This section helps to explain how you prepare before troubleshooting, as well as creating a
troubleshooting plan and contacting support.
This section contains the following topics:
l
Establish a baseline
Gathering Facts
Establish a baseline
FortiGate units operate at all layers of the OSI model. For this reason troubleshooting problems can become complex.
If you establish a normal operation parameters, or baseline, for your system before the problem occurs it will help
reduce the complexity when you are troubleshooting.
Many of the guiding questions in the following sections are some form of comparing the current problem situation to
normal operation on your FortiGate unit. For this reason it is a best practice that you know what your normal operating
status is, and have a record of it you can refer to. This can easily be accomplished by monitoring the system
performance with logs, SNMP tools, or regularly running information gathering commands and saving the output. This
regular operation data will show trends, and enable you to see when changes happen and there may be a problem.
Back up your FortiOS configuration on a regular basis. This is a good practice for everyday as well
as when troubleshooting. You can restore the backed up configuration when needed and save the
time and effort of re-creating it from the factory default settings.
Some fundamental CLI commands you can use to obtain normal operating data for your system:
30
Troubleshooting methodologies
Displays all the routes in the routing table including their type,
source, and other useful data.
Displays the amount of network traffic broken down into categories such as email, VoIP, TCP, UDP, IM, Gaming, P2P,
and Streaming.
These commands are just a sample. Feel free to include any extra information gathering commands that apply to your
system. For example if you have active VPN connections, record information about them using the get vpn *
series of commands.
For an extensive snapshot of your system, run the CLI command used by TAC to gather extensive information about a
system exec tac report. It runs many diagnostic commands that are for specific configurations. This means
no matter what features you are using, this command will record their current state. Then if you need to perform
troubleshooting at a later date, you can run the same command again and compare the differences to quickly locate
suspicious output you can investigate.
31
Troubleshooting methodologies
Gathering Facts
changes were made. The change could be in the operating environment, for example, a gradual increase in load as
more sites are forwarded through the firewall.
If something has changed, see what the affect is if the change is rolled back.
l
Determine the scope of the problem - after you have isolated the problem what applications, users,
devices, and operating systems does it effect?
Before you can solve a problem, you need to understand it. Often this step can be the longest in this process.
Ask questions such as:
l
l
l
l
Be as specific as possible with your answers, even if it takes awhile to find the answers.
These questions will help you define the problem. Once the problem is defined, you can search for a solution and then
create a plan on how to solve it.
Gathering Facts
Fact gathering is an important part of defining the problem. Record the following information as it applies to the
problem:
l
l
l
l
l
l
l
Answers to these questions will help you narrow down the problem, and what you have to check during your
troubleshooting. The more things you can eliminate, the fewer things you need to check during troubleshooting. For
this reason, be as specific and accurate as you can while gathering facts.
32
Troubleshooting methodologies
Your troubleshooting plan will act as a checklist so that you know what you have tried and what is left to check. This is
important to have if more than one person will be doing the troubleshooting. Without a written plan, people will
become easily confused and steps will be skipped. Also if you have to hand over the problem to someone else,
providing them with a detailed list of what data has been gathered and what solutions have been already tried
demonstrates a good level of professionalism.
Be ready to add to your plan as needed. After you are part way through, you may discover that you forgot some tests or
a test you performed discovered new information. This is normal.
Also if you contact support, they will require information about your problem as well as what you have already tried to
fix the problem. This should all be part of your plan.
The firmware build version (use the get system status command)
A network topology diagram
A recent configuration file
Optionally, a recent debug log
Tell the support team what troubleshooting steps have already been performed and the results.
Do not provide the output from exec tac report unless Support requests it. The output from that
command is very large and is not required in many cases.
For additional information about contacting Fortinet Customer Support, see Technical Support Organization
Overview.
All of this is your troubleshooting plan.
33
Troubleshooting methodologies
Also, you may need access to other networking equipment such as switches, routers, and servers to help you test. If
you do not normally have access to this equipment, contact your network administrator for assistance.
34
Troubleshooting tools
FortiOS provides a number of tools that help with troubleshooting both hardware and software issues. These tools
include diagnostics and ports; ports are used when you need to understand the traffic coming in or going out on a
specific port, for example, UDP 53, which is used by the FortiGate unit for DNS lookup and RBL lookup.
This section also contains information about troubleshooting FortiGuard issues.
This section contains the following topics:
l
FortiOS diagnostics
FortiOS ports
FortiAnalyzer/FortiManager ports
FortiGuard troubleshooting
FortiOS diagnostics
A collection of diagnostic commands are available in FortiOS for troubleshooting and performance monitoring. Within
the CLI commands, the two main groups of diagnostic commands are get and diagnose commands. Both
commands display information about system resources, connections, and settings that enable you to locate and fix
problems, or to monitor system performance.
This topic includes diagnostics commands to help with:
l
Resource usage
Proxy operation
Hardware NIC
Traffic trace
Session table
Flow trace
Debug command
Other commands
35
FortiOS diagnostics
Troubleshooting tools
Use Network Time Protocol (NTP) to set the date and time if possible. This is an automatic method that does not
require manual intervention. However, you must ensure the port is allowed through the firewalls on your network.
FortiToken synchronization requires NTP in many situations.
Resource usage
Each program running on a computer has one or more processes associated with it. For example if you open a Telnet
program, it will have an associated telnet process. The same is true in FortiOS. All the processes have to share the
system resources in FortiOS including memory and CPU.
Use get system performance status command to show the FortiOS performance status.
Sample output:
FGT#get system performance status
CPU states: 0% user 0% system 0% nice 100% idle
CPU0 states: 0% user 0% system 0% nice 100% idle
CPU1 states: 0% user 0% system 0% nice 100% idle
CPU2 states: 0% user 0% system 0% nice 100% idle
CPU3 states: 0% user 0% system 0% nice 100% idle
Memory states: 25% used
Average network usage: 0 kbps in 1 minute, 0 kbps in
Average sessions: 5 sessions in 1 minute, 5 sessions
minutes
Average session setup rate: 0 sessions per second in
in last 10 minutes, 0 sessions per second in last 30
Virus caught: 0 total in 1 minute
36
Troubleshooting tools
FortiOS diagnostics
Monitor the CPU/memory usage of internal processes using the following command:
get system performance top <delay> <max_lines>
The data listed by the command includes the name of the daemon, the process ID, whether the process is sleeping or
running, the CPU percentage being used, and the memory percentage being used.
Sample output:
FGT#get system performance top 10 100
Run Time: 0 days, 11 hours and 30 minutes
0U, 0S, 100I; 1977T, 1470F, 121KF
pyfcgid
pyfcgid
pyfcgid
pyfcgid
ipsengine
ipsengine
ipsengine
ipsengine
ipsengine
ipsengine
cmdbsvr
proxyworker
proxyworker
httpsd
httpsd
httpsd
newcli
newcli
fgfmd
iked
120
121
122
53
75
66
73
74
79
80
43
110
111
125
52
124
141
128
102
86
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
S
R
S
S
S
<
<
<
<
<
<
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.3
1.0
1.0
1.0
0.8
0.8
0.8
0.7
0.7
0.7
0.7
Proxy operation
Monitor proxy operations using the following command:
diag test application <application> <option>
37
http
HTTP proxy.
smtp
SMTP proxy.
ftpd
FTP proxy.
FortiOS diagnostics
Troubleshooting tools
pop3
POP3 proxy.
imap
IMAP proxy.
nntp
NNTP proxy.
proxyacceptor
Proxy acceptor.
proxyworker
Proxy worker.
scanunit
Scanning unit.
sslacceptor
SSL proxy.
sslworker
SSL proxy.
ssh
SSH proxy.
harelay
HA relay daemon.
hasync
HA sync daemon.
forticldd
FortiCloud daemon.
miglogd
urlfilter
ovrd
Override daemon.
ipsmonitor
ips monitor
ipsengine
ips sensor
ipldbd
ddnscd
snmpd
SNMP daemon.
acd
Aggregate Controller.
dnsproxy
DNS proxy.
sflowd
sFlow daemon.
init
init process.
l2tpcd
38
Troubleshooting tools
FortiOS diagnostics
dhcprelay
pptpcd
PPTP client.
wccpd
WCCP daemon.
wad
radiusd
RADIUS daemon.
sqldb
reportd
Report daemon.
dlpfingerprint
dlpfpcache
wpad
WPA daemon.
fsd
FortiExplorer daemon.
ipsufd
stp
lted
swctrl_authd
forticron
Forticron daemon.
uploadd
Upload daemon.
quarantined
Quarantine daemon.
dhcp6c
info-sslvpnd
thmd
dsd
lnkmtd
dhcp6r
fnbamd
The <option> value depends from the application value used in the command. Here are some examples:
39
FortiOS diagnostics
Troubleshooting tools
22
222
44
444
4444
44444
55
70
71
72
11
12
13
14
80
81
82
40
Troubleshooting tools
FortiOS diagnostics
10
11
12
13
14
15
IPSA statistics
97
98
99
Hardware NIC
Monitor hardware network operations using the following command:
diag hardware deviceinfo nic <interface>
The information displayed by this command is important as errors at the interface are indicative of data link or physical
layer issues which may impact the performance of the FortiGate unit.
The following is sample output when <interface> = internal:
System_Device_Name port5
Current_HWaddr 00:09:0f:68:35:60
Permanent_HWaddr 00:09:0f:68:35:60
Link up
Speed 100
Duplex full
[]
Rx_Packets=5685708
Tx_Packets=4107073
Rx_Bytes=617908014
Tx_Bytes=1269751248
Rx_Errors=0
41
FortiOS diagnostics
Troubleshooting tools
Tx_Errors=0
Rx_Dropped=0
Tx_Dropped=0
[..]
The diag hardware deviceinfo nic command displays a list of hardware related error names and values.
The following table explains the items in the list and their meanings.
Definition
Rx_CRC_Errors +
Rx_Length_Errors Rx_Align_Errors
Rx_Dropped or
Rx_No_Buffer_Count
Rx_Missed_Errors
Tx_Errors = Tx_Aborted_
Errors
Tx_Window_Errors
Rx_Dropped
See Rx_Errors.
Tx_Dropped
Not defined.
Collisions
Rx_Length_Errors
Rx_Over_Errors
Not defined.
Rx_CRC_Errors
Rx_Frame_Errors
Rx_FIFO_Errors
Tx_Aborted_Errors
See Tx_Errors.
42
Troubleshooting tools
FortiOS diagnostics
Field
Definition
Tx_Carrier_Errors
The PHY should assert the internal carrier sense signal during every
transmission. Failure to do so may indicate that the link has failed or
the PHY has an incorrect link configuration. This register only increments if transmits are enabled. This register is not valid in internal SerDes 1 mode (TBI mode for the 82544GC/EI) and is only valid when the
Ethernet controller is operating at full duplex.
Tx_FIFO_Errors
Not defined.
Tx_Heartbeat_Errors
Not defined.
Tx_Window_Errors
See LATECOL.
Tx_Single_Collision_Frames
Tx_Multiple_Collision_
Frames
Tx_Deferred
Counts defer events. A defer event occurs when the transmitter cannot
immediately send a packet due to the medium being busy because
another device is transmitting, the IPG timer has not expired, halfduplex deferral events are occurring, XOFF frames are being received,
or the link is not up. This register only increments if transmits are
enabled. This counter does not increment for streaming transmits that
are deferred due to TX IPG.
Rx_Frame_Too_Longs
Rx_Frame_Too_Shorts
Rx_Align_Errors
Traffic trace
Traffic tracing allows a specific packet stream to be followed. This is useful to confirm packets are taking the route you
expected on your network.
View the characteristics of a traffic session though specific security policies using:
diag sys session
43
FortiOS diagnostics
Troubleshooting tools
Session table
A session is a communication channel between two devices or applications across the network. Sessions enable
FortiOS to inspect and act on a sequential group of packets in a session all together instead of inspecting each packet
individually. Each of these sessions has an entry in the session table that includes important information about the
session.
Use as a tool
Session tables are useful troubleshooting tools because they allow you to verify connections that you expect to see
open. For example, if you have a web browser open to browse the Fortinet website, you would expect a session entry
from your computer, on port 80, to the IP for the Fortinet website. Another troubleshooting method is if there are too
many sessions for FortiOS to process, you can examine the session table for evidence why this is happening.
The FortiGate session table can be viewed from either the CLI or the web-based manager. The most useful
troubleshooting data comes from the CLI. The session table in web-based manager also provides some useful
summary information, particularly the current policy number that the session is using.
44
Troubleshooting tools
FortiOS diagnostics
Follow System > FortiView> All Sessions. Find your session by finding your source IP address,
destination IP address if you have it, and port number. The policy ID is listed after the destination
information. If the list of sessions is very long, you can filter the list to make it easier to find your session.
3. When there are many sessions, use a filter to help you find your session.
If there are multiple pages of sessions it is difficult to find a single session. To help you in your search you
can use a filter to block out sessions that you dont want. Click the search icon on the column heading to
select the filter. Select Source IP and enter your source IP address. Now only sessions that originate from
your IP address will be displayed in the session table. If the list is still too long, you can do the same for the
Source port. That will make it easy to find your session and the security policy ID. When you are finished
remember to clear the filters.
Sample Output:
FGT# diag sys session list
session info: proto=6 proto_state=05 expire=89 timeout=3600 flags=00000000 av_idx=0 use=3
bandwidth=204800/sec guaranteed_bandwidth=102400/sec traffic=332/sec prio=0
logtype=session ha_id=0 hakey=4450
tunnel=/
state=log shape may_dirty
statistic(bytes/packets/err): org=3408/38/0 reply=3888/31/0 tuples=2
orgin->sink: org pre->post, reply pre->post oif=3/5 gwy=192.168.11.254/10.0.5.100
hook=post dir=org act=snat 10.0.5.100:1251->192.168.11.254:22(192.168.11.105:1251)
hook=pre dir=reply act=dnat 192.168.11.254:22->192.168.11.105:1251(10.0.5.100:1251)
pos/(before,after) 0/(0,0), 0/(0,0)
misc=0 domain_info=0 auth_info=0 ftgd_info=0 ids=0x0 vd=0 serial=00007c33 tos=ff/ff
Since output can be verbose, the filter option allows specific information to be displayed, for example:
diag sys session filter <option>
45
clear
dintf
Destination interface.
dport
Destination port.
dst
Destination IP address.
FortiOS diagnostics
Troubleshooting tools
duration
duration
expire
expire
negate
Inverse filter.
nport
nsrc
policy
Policy ID.
proto
Protocol number.
proto-state
Protocol state.
sintf
Source interface.
sport
Source port.
src
Source IP address.
vd
Even though UDP is a sessionless protocol, the FortiGate unit still keeps track of the following two different states:
l
l
State
Meaning
log
local
ext
may_dirty
Session is created by a policy. For example, the session for ftp control channel will have this state but ftp data channel will not. This is also seen when
NAT is enabled.
ndr
nds
br
46
Troubleshooting tools
FortiOS diagnostics
The information you are looking for is the Average sessions section, highlighted in the above output. In this example
you can see there were 31 sessions in 1 minute, or an average of 0.5 sessions per second. The values for 10 minutes
and 30 minutes allow you to take a longer average for a more reliable value if your FortiGate unit is working at
maximum capacity. The smallest FortiGate unit can have 1 000 sessions established per second across the unit.
Remember that session setup rate is a global command. If you have multiple VDOMs configured with many sessions
in each one, the session setup rate per VDOM will be slower than if there were no VDOMs configured.
CLI method
When running multiple VDOMs, this command is run in the Global configuration only and it searches for the named
object both in the Global and VDOM configuration most recently used:
diag sys checkused <path.object.mkey>
For example, to verify which objects are referred to in a security policy with an ID of 1, enter the command as follows:
diag sys checkused firewall.policy.policyid 1
47
FortiOS diagnostics
Troubleshooting tools
To show all the dependencies for an interface, enter the command as follows:
diag sys checkused system.interface.name <interface name>
Sample Output:
entry
entry
entry
entry
entry
entry
entry
entry
used
used
used
used
used
used
used
used
by
by
by
by
by
by
by
by
table
table
table
table
table
table
table
table
firewall.address:name '10.98.23.23_host
firewall.address:name 'NAS'
firewall.address:name 'all'
firewall.address:name 'fortinet.com'
firewall.vip:name 'TORRENT_10.0.0.70:6883'
firewall.policy:policyid '21'
firewall.policy:policyid '14'
firewall.policy:policyid '19'
In this example, the interface has dependent objects, including four address objects, one VIP, and three security
policies.
Flow trace
To trace the flow of packets through the FortiGate unit, use the following command:
diag debug flow trace start
If your network is using IPv4, follow packet flow by setting a flow filter using this command:
diag debug flow filter <option>
48
Troubleshooting tools
FortiOS diagnostics
If your network is using IPv6, follow packet flow by setting a flow filter using this command:
diag debug flow filter6 <option>
Enable the output to be displayed to the CLI console using the following command:
diag debug flow show console enable
diag debug flow output is recorded as event log messages and are sent to a FortiCloud or a
FortiAnalyzer unit if connected. Do not let this command run longer than necessary since it generates significant amounts of data.
Start flow monitoring with a specific number of packets using this command:
diag debug flow trace start <N>
The following is an example of the flow trace for the device at the following IP address: 203.160.224.97
diag
diag
diag
diag
diag
debug
debug
debug
debug
debug
enable
flow filter addr 203.160.224.97
flow show console enable
flow show function-name enable
flow trace start 100
49
FortiOS diagnostics
Troubleshooting tools
Matched security policy. Check to see which policy this session matches:
id=20085 trace_id=209 func=fw_forward_handler line=317
msg="Allowed by Policy-3: SNAT"
ACK received:
id=20085 trace_id=211 func=resolve_ip_tuple_fast line=2700
msg="vd-root received a packet(proto=6,
192.168.3.221:1487->203.160.224.97:80) from port5."
50
Troubleshooting tools
FortiOS diagnostics
51
FortiOS diagnostics
Troubleshooting tools
your local computer as a *.pcap file which requires a third party application to read the file, such as Wireshark. This
method is useful to send Fortinet support information to help resolve an issue.
Features
Packet sniffing
Packet capture
Command location
CLI
web-based manager
yes
no
no
yes
yes
no
yes
no
no
yes
sniff IPv6
hard
easy
no
yes
easy
easy
easy
easy
Packet sniffing
Before you start sniffing packets on the CLI, you should be prepared to capture the output to a file there can be
huge amounts of data that you will not be able to see without saving it to a file. One method is to use a terminal
program like puTTY to connect to the FortiGate units CLI. Then once the packet sniffing count is reached you can end
the session and analyze the output in the file.
Details within packets passing through particular interfaces can be displayed using the packet sniffer with the following
command:
diag sniffer packet <interface> <filter> <verbose> <count> <tsformat>
The <interface> value is required, with the rest being optional. If not included the default values will be none.
For example the simplest valid sniffer command would be:
diag sniffer packet any
The <interface> value can be any physical or virtual interface name. Use any to sniff packets on all interfaces.
The <filter> value limits the display of packets using filters, including Berkeley Packet Filtering (BPF) syntax. The
<filter> value must be enclosed in quotes.
'[[src|dst] host <host_name_or_IP1>] [[src|dst] host <host_name_or_IP2>]
[[arp|ip|ip6|gre|esp|udp|tcp] [port_no]] [[arp|ip|ip6|gre|esp|udp|tcp] [port_no]]
52
Troubleshooting tools
FortiOS diagnostics
If a second host is specified in the filter, only the traffic between the two hosts will be displayed. Optionally, you can
use logical OR to match only one of the hosts, or match one of multiple protocols or ports. When defining a port, there
are up to two parts protocol and port number.
For example, to display UDP 1812 traffic or TCP 8080 traffic, use the following:
'udp port 1812 or tcp port 8080
To display all IP traffic that has a source of 192.168.1.2 and a destination of 192.168.2.3:
'ip src host 192.168.1.2 and dst host 192.168.2.3
The <verbose> option allows different levels of information to be displayed. The verbose levels include:
Packet capture
FortiOS 5.2 includes packet capture to the web-based manager. The FortiGate unit must have a disk and then
capture-packet feature can be enabled from the CLI within the firewall policy as below:
config firewall policy
edit <id>
set capture-packet enable
end
To configure packet capture filters, go to System > Network > Packet Capture.
When you add a packet capture filter, enter the following information and select OK.
Interface
53
FortiOS diagnostics
Troubleshooting tools
Enable Filters
Host(s)
Port(s)
VLAN(s)
Protocol
Enter one or more protocol. Separate multiple protocol with commas. Enter
a range using a dash without spaces, for example 1-6, 17, 21-25
Select this option if you are troubleshooting IPv6 networking, or if your network uses IPv6. Otherwise, leave it disabled.
The protocols available in the list are all IP based except for ICMP (ping). To
capture non-IP based packets select this feature. Some examples of non-IP
packets include IPsec, IGMP, ARP, and as mentioned ICMP.
If you select a filter and go back to edit it, you have the added option of starting and stopping packet capture in the edit
window, or downloading the captured packets. You can also see the filter status and the number of packets captured.
You can also select the filter and select Start to start capturing packets. While the filter is running, you will see the
number of captured packets increasing until it reaches the max packet count or you select Stop. While the filter is
running you cannot download the output file.
When the packet capture is complete, you can select Download to send the packet capture filter captured packets to
your local computer as a *.pcap file. To read this file format, you will need to use Wireshark or a similar third party
application. Using this tool you will have extensive analytics available to you and the full contents of the packets that
were captured.
54
Troubleshooting tools
FortiOS diagnostics
the packets arriving at the CPU. If the NPU functionality is disabled, the CPU will see all the packets, however, this
should only be used for troubleshooting purposes.
First, obtain the NP4 id and the port numbers with the following command:
diag npu np4 list
Sample output:
ID Model Slot Interface
0 On-board port1 fabric1 fabric3 fabric5
1 On-board fabric2 port2 base2 fabric4
Sample output:
NP4 Fast Path Sniffer on port1 enabled
This will cause all traffic on port1 of NP4 to be sent to the CPU meaning a standard sniffer trace can be taken and
other diag commands should work if it was a standard CPU driven port.
These commands are only for the newer NP4 interfaces.
Debug command
Debug output provides continuous, real-time event information. Debugging output continues until it is explicitly
stopped or until the unit is rebooted. Debugging output can affect system performance and will be continually
generated even though output might not be displayed in the CLI console.
Debug information displayed in the console will scroll in the console display and may prevent CLI commands from
being entered, for example, the command to disable the debug display. To turn off debugging output as the display is
scrolling by, press the key to recall the recent diag debug command, press backspace, and type 0, followed by
Enter.
Debug output display is enabled using the following command:
diag debug enable
Once enabled, indicate the debug information that is required using this command:
diag debug <option> <level>
55
FortiOS diagnostics
Troubleshooting tools
enable
disable
info
reset
report
crashlog
config-error-log
sql-log-error
application
application.
kernel
kernel.
remote-extender
remote-extender.
console
console.
cli
Debug CLI.
cmdb-trace
Trace CLI.
rating
authd
Authentication daemon.
fsso-polling
flow
urlfilter
urlfilter.
admin
Admin user.
The debug level can be set at the end of the command. Typical values are 2 and 3, for example:
diag debug application DHCPS 2
diag debug application spamfilter 2
56
Troubleshooting tools
FortiOS diagnostics
Sample Output:
FGh_FtiLog1: IPsec SA connect 0 192.168.11.2->192.168.10.201:500, natt_mode=0 rekey=0
phase2=FGh_FtiLog1
FGh_FtiLog1: using existing connection, dpd_fail=0
FGh_FtiLog1: found phase2 FGh_FtiLog1
FGh_FtiLog1: IPsec SA connect 0 192.168.11.2 -> 192.168.10.201:500 negotiating
FGh_FtiLog1: overriding selector 225.30.5.8 with 192.168.11.2
FGh_FtiLog1: initiator quick-mode set pfs=1536...
FGh_FtiLog1: try to negotiate with 1800 life seconds.
FGh_FtiLog1: initiate an SA with selectors: 192.168.11.2/0.0.0.0->192.168.10.201,
ports=0/0, protocol=0/0
Send IKE Packet(quick_outI1):192.168.11.2:500(if0) -> 192.168.10.201:500, len=348
Initiator: sent 192.168.10.201 quick mode message #1 (OK)
FGh_FtiLog1: set retransmit: st=168, timeout=6.
In this example:
192.168.11.2->192.168.10.201:500
dpd_fail=0
pfs=1536...
Other commands
ARP table
To view the ARP cache, use the following command:
get sys arp
57
FortiOS diagnostics
Troubleshooting tools
Sample output:
index=14 ifname=internal 224.0.0.5 01:00:5e:00:00:05 state=00000040 use=72203
confirm=78203 update=72203 ref=1
index=13 ifname=dmz 192.168.3.100 state=00000020 use=1843 confirm=650179 update=644179
ref=2 ? VIP
index=13 ifname=dmz 192.168.3.109 02:09:0f:78:69:ff state=00000004 use=71743
confirm=75743 update=75743 ref=1
index=14 ifname=internal 192.168.11.56 00:1c:23:10:f8:20 state=00000004 use=10532
confirm=10532 update=12658 ref=4
If all devices have the same time, it helps to correlate log entries from different devices.
IP address
There may be times when you want to verify the IP addresses assigned to the FortiGate unit interfaces are what you
expect them to be. This is easily accomplished from the CLI using the following command.
diag ip address list
The output from this command lists the IP address and mask if available, the index of the interface (a sort of ID
number) and the devname is the name of the interface. While physical interface names are set, virtual interface
names can vary. Listing all the virtual interface names is a good use of this command. For vsys_ha and vsys_fgfm, the
IP addresses are the local host these are internally used virtual interfaces.
# diag ip address list
IP=10.31.101.100->10.31.101.100/255.255.255.0 index=3 devname=internal
IP=172.20.120.122->172.20.120.122/255.255.255.0 index=5 devname=wan1
IP=127.0.0.1->127.0.0.1/255.0.0.0 index=8 devname=root
IP=127.0.0.1->127.0.0.1/255.0.0.0 index=11 devname=vsys_ha
IP=127.0.0.1->127.0.0.1/255.0.0.0 index=13 devname=vsys_fgfm
58
Troubleshooting tools
FortiOS ports
FortiOS ports
In the TCP and UDP stacks, there are 65535 ports available for applications to use when communicating with each
other. Many of these ports are commonly known to be associated with specific applications or protocols. These known
ports can be useful when troubleshooting your network.
Use the following ports while troubleshooting the FortiGate device:
59
Port(s)
Functionality
UDP 53
FDN Server List - source and destination port numbers vary by originating or reply
traffic. See the article How do I troubleshoot performance issues when FortiGuard Web
Filtering is enabled? in the Knowledge Base.
UDP 123
NTP Synchronization
UDP 162
SNMP Traps
UDP 514
SYSLOG - All FortiOS versions can use syslog to send log messages to remote syslog
servers. FortiOS v2.80 and v3.0 can also view logs stored remotely on a FortiAnalyzer
unit.
TCP 22
TCP 25
TCP 443
FortiGuard Antivirus or IPS update - When requesting updates from a FortiManager unit
instead of directly from the FDN, this port must be reconfigured as TCP 8890.
TCP 443
TCP 514
TCP 541
TCP 514
Quarantine, remote access to logs and reports on a FortiAnalyzer unit, device registration with FortiAnalyzer units (OFTP)
TCP 1812
RADIUS authentication
FortiAnalyzer/FortiManager ports
Troubleshooting tools
Port(s)
Functionality
FSSO
TCP 10151
FortiAnalyzer/FortiManager ports
If you have a FortiAnalyzer unit or FortiManager unit on your network you may need to use the following ports for
troubleshooting network traffic.
Functionality
Port(s)
DNS lookup
UDP 53
NTP synchronization
UDP 123
Windows share
UDP 137-138
SNMP traps
UDP 162
UDP 514
TCP 21 or TCP 22
TCP 25
RVS update
TCP 443
RADIUS authentication
TCP 1812
TCP 3000
FortiGuard troubleshooting
The FortiGuard service provides updates to Antivirus, Antispam, IPS, Webfiltering, and more. The FortiGuard
Distribution System (FDS) involves a number of servers across the world that provide updates to your FortiGate unit.
Problems can occur both with connection to FDS, and its configuration on your local FortiGate unit. Some of the more
common troubleshooting methods are listed here including
l
60
Troubleshooting tools
FortiGuard troubleshooting
side?
Many firewalls block all ports by default, and often ISPs block ports that are low. There may be a firewall between
the FortiGate unit and the FortiGuard servers that is blocking the traffic. FortiGuard uses port 53 by default, so if it
is being blocked you need to either open a hole for it, or change the port it is using.
8. Is there an issue with source ports?
It is possible that ports used to contact FortiGuard are being changed before reaching FortiGuard or on the return
trip before reaching your FortiGate unit. A possible solution for this is to use a fixed-port at NATd firewalls to
ensure the port remains the same. Packet sniffing can be used to find more information on what is happening with
ports.
9. Are there security policies that include antivirus?
If no security policies include antivirus, the antivirus databse will not be updated. If antivirus is included, only the
database type used will be updated.
61
FortiGuard troubleshooting
Troubleshooting tools
Sample Output:
Locale : english
License : Contract
Expiration : Thu Oct 9 02:00:00 2011
-=- Server List (Mon Feb 18 12:55:48 2008) -=-
IP
a.b.c.d
10.1.101.1
10.2.102.2
10.3.103.3
10.4.104.4
10.5.105.5
Weight
0
10
20
20
20
25
RTT
1
329
169
182
184
181
Flags
DI
TZ
2
1
0
0
0
0
Packets
1926879
10263
16105
6741
5249
12072
CurrLost
0
0
0
0
0
0
TotalLost
11176
633
80
776
987
178
Output Details
The Server List includes the IP addresses of alternate servers if the first entry cannot be reached. In this example the
IP addresses are not public addresses
The following flags in get webfilter status indicate the server status:
D - the server was found through the DNS lookup of the hostname. If the hostname returns more than one IP
address, all of them will be flagged with D and will be used first for INIT requests before falling back to the other
servers.
I - the server to which the last INIT request was sent.
F - the server has not responded to requests and is considered to have failed.
S - means that rating requests can be sent to the server. The flag is set for a server only in two cases:
1. The server exists in the servers list received from the Fortimanager or any other INIT server.
2. The servers list received from the FortiManager is empty so the Fortimanager itself would be the only server
known by Fortigate thus it should be used as the rating server.
The servers that are not currently serving will be pushed down to the bottom list (under the available serving
servers, and on top of the failed servers) in order for the load-balance-servers feature in the config
system fortiguard to work properly.
62
Troubleshooting tools
FortiGuard troubleshooting
Therefore, the top position in the list is selected based on RTT while the other list positions are based on weight.
Calculating weight
The weight for each server increases with failed packets and decreases with successful packets. To lower the
possibility of using a remote server, the weight is not allowed to dip below a base weight, calculated as the difference
in hours between the FortiGate unit and the server times 10. The further away the server is, the higher its base weight
and the lower in the list it will appear.
63
Common questions
The general troubleshooting tips include, and can help answer, the following questions:
If you are having problems connecting to the management interface, is your protocol enabled on the interface for
administrative access?
Is there an IP address on the interface?
How to verify the contents of the routing table (in NAT mode)
l
l
l
Are there routes in the routing table for default and static routes?
Do all connected subnets have a route in the routing table?
Does a route wrongly have a higher priority than it should?
64
Common questions
Is traffic entering the FortiGate unit and does it arrive on the expected interface?
Is the ARP resolution correct for the next-hop destination?
Is the traffic exiting the FortiGate unit to the destination as expected?
Is the traffic being sent back to the originator?
l
l
Ensure the network cables are properly plugged into the interfaces.
Ensure there are connection lights for the network cables on the unit.
Change the cable if the cable or its connector are damaged or you are unsure about the cables type or quality
such as straight through or crossover, or possibly exposed wires at the connector.
Connect the FortiGate unit to different hardware.
Ensure the link status is set to Up for the interface, (see Network > Interface > Status). The link status is based
on the physical connection and cannot be set in FortiOS.
If any of these solve the problem, it was a hardware connection problem. You should still perform some basic software
connectivity tests to ensure complete connectivity. It might also be that the interface is disabled, or has its
Administrative Status set to Down.
65
Common questions
Interface settings
DNS settings
DHCP Server settings
Interface settings
If you can access the FortiGate unit with the management cable only, the first step is to display the interface settings.
To display the settings for the internal interface, use the following CLI command:
FGT# show system interface <Interface_mane>
For a complete listing of all the possible interface settings, use the following CLI command:
config system interface
edit <Interface_name>
get
end
Check the interface settings to ensure they are not preventing traffic. Specific things to check include (only the webbased manager names are shown, CLI names may vary slightly):
l
Link Status Down until a valid cable is plugged into this interface, after which it will be Up. The Link Status is
shown physically by the connection LED for the interface. If it lights up green, it is a good connection. If Link Status
is Down, the interface does not work. Link Status is also displayed on the System > Network > Interface screen
by default.
Addressing mode Do not use DHCP if you dont have a DHCP server you will not be able to logon to an
interface in DHCP mode as it will not have an IP address.
IP/Netmask An interface needs an IP address to be able to connect to other devices. Ensure there is a valid IP
address in this field. The one exception is if DHCP is enabled for this interface to get its IP address from an
external DHCP server.
IPv6 address The same protocol must be used by both ends to complete the connection. Ensure both this
interface and the remote connection are both using IPv4 or both using IPv6 addressing.
Administrative access If no protocols are selected, you will have to use the local management cable to
connect to the unit. If you are using IPv6, configure the IPv6 administrative access protocols.
Administrative status Set to Up or the interface will not work.
DNS settings
While this section is not complicated, many networking problems can be traced back to DNS problems. Things to
check in this area include:
l
l
66
l
l
l
l
l
l
Common questions
Are you using IPv6 addressing? If so, are the IPv6 DNS settings correct?
Are you using Dynamic DNS (DDNS)? If so, is it using the correct server, credentials, and interface?
Can you contact both DNS servers to verify the servers are operational?
If an interface addressing mode is set to DHCP and is set to override the internal DNS, is that interface receiving a
valid DNS entry from the DHCP server? Is it a reasonable address and can it be contacted to verify its operational?
Are there any DENY security policies that need to allow DNS?
Can any internal device perform a successful traceroute to a location using the FQDN?
l
l
l
l
Is the DHCP server entry set to Relay? If so, verify there is another DHCP server to which requests can be relayed.
Otherwise, it should be set to Server.
Is the DHCP server enabled?
Does this DHCP server use a valid range of IP addresses? Are those addresses in use by other devices? If one or
more devices are using IP addresses in this range, you can use the IP reservation feature to ensure the DHCP
server does not use these addresses.
Is there a gateway entry? Include a gateway entry to ensure clients of this server have a default route.
Is the system DNS setting being used? The best practice is to avoid confusion by using the system DNS whenever
possible. However, the option to specify up to three custom DNS servers is available, and all three entries should be
used for redundancy.
There are some situations, such as a new wireless interface, or during the initial FortiGate unit
configuration, where interfaces override the system DNS entries. When this happens, it often
shows up as intermittent Internet connectivity. To fix the problem, go to System > Network >
DNS and ensure to enable Use FortiGuard Servers.
However, if your network is running slow you might see something like:
CPU states: 1% user 98% system 0% nice 1% idle
67
Common questions
This line shows that all the CPU is used up by system processes. Normally this should not happen as it shows the
FortiGate is overloaded for some reason. If you see this overloading, you should investigate farther as its possible a
process, such as scanunitid, is using all the resources to scan traffic, in which case you need to reduce the amount of
traffic being scanned by blocking unwanted protocols, configuring more security policies to limit scanning to certain
protocols, or similar actions. It is also possible that a hacker has gained access to your network and is overloading it
with malicious activity such as running a spam server or using zombie PCs to attack other networks on the Internet.
You can get additional CPU related information with the CLI command get system performance top. This
command shows you all the top processes running on the FortiGate unit (names on the left) and their CPU usage. If a
process is using most of the CPU cycles, investigate it to determine if its normal activity.
The second line of output from get system performance status shows the memory usage. Memory usage
should not exceed 90 percent. If memory is too full, some processes will not be able to function properly. For example,
if the system is running low on memory, antivirus scanning will go into failopen mode where it will start dropping
connections or bypass the antivirus system.
The other lines of output, such as average network usage, average session setup rate, viruses caught, and IPS attacks
blocked can also help you determine why system resource usage it high. For example, if network usage is high it will
result in high traffic processing on the FortiGate, or if the session setup rate is very low or zero the proxy may be
overloaded and not able to do its job.
Use the following CLI command, which gives you information about current memory usage:
diagnose hardware sysinfo memory
68
Common questions
Sample output:
total: used: free: shared: buffers: cached: shm:
Mem: 2074185728 756936704 1317249024 0 20701184 194555904 161046528
Swap:
0
0
0
MemTotal:
2025572 kB
MemFree:
1286376 kB
MemShared:
0 kB
Buffers:
20216 kB
Cached:
189996 kB
SwapCached:
0 kB
Active:
56644 kB
Inactive:
153648 kB
HighTotal:
0 kB
HighFree:
0 kB
LowTotal:
2025572 kB
LowFree:
1286376 kB
SwapTotal:
0 kB
SwapFree:
0 kB
69
Common questions
Where the codes displayed on the second output line mean the following:
l
l
l
l
l
U is % of user space applications using CPU. In the example, 0U means 0% of the user space applications are
using CPU.
S is % of system processes (or kernel processes) using CPU. In the example, 0S means 0% of the system
processes are using the CPU.
I is % of idle CPU. In the example, 98I means the CPU is 98% idle.
T is the total FortiOS system memory in Mb. In the example, 1977T means there are 1977 Mb of system
memory.
F is free memory in Mb. In the example, 758F means there is 758 Mb of free memory.
KF is the total shared memory pages used. In the example, 180KF means the system is using 180 shared
memory pages.
Each additional line of the command output displays information for each of the processes running on the
FortiGate unit. For example, the third line of the output is:
newcli 286 R 0.1 0.8
Where:
l
newcli is the process name. Other process names can include ipsengine, sshd, cmdbsrv, httpsd,
scanunitd, and miglogd.
R is the current state of the process. The process state can be:
R running
S sleep
Z zombie
D disk sleep.
l
0.1 is the amount of CPU that the process is using. CPU usage can range from 0.0 for a process that is
sleeping to higher values for a process that is taking a lot of CPU time.
0.8 is the amount of memory that the process is using. Memory usage can range from 0.1 to 5.5 and higher.
Enter the following single-key commands when diagnose sys top is running:
l
Press p to sort the processes by the amount of CPU that the processes are using.
Press m to sort the processes by the amount of memory that the processes are using.
70
iked internet key exchange (IKE) in use with IPsec VPN tunnels
Common questions
Go to the features that are at the top of the list and look for evidence of them overusing the CPU. Generally
the monitor for a feature is a good place to start.
3. Check for unnecessary CPU wasters.
These are some best practises that will reduce your CPU usage, even if you are not experiencing high CPU usage.
Note that if you require a feature this section tells you to turn off, ignore it.
l
Use hardware acceleration wherever possible to offload tasks from the CPU. Offloading tasks such as
encryption frees up the CPU for other tasks.
l
Avoid the use of GUI widgets that require computing cycles, such as the Top Sessions widget. These widgets
are constantly polling the system for their information, which uses CPU and other resources.
l
Schedule antivirus, IPS, and firmware updates during off peak hours. Usually these dont consume CPU
resources but they can disrupt normal operation.
l
Check the log levels and which events are being logged. This is the severity of the messages that are recorded.
Consider going up one level to reduce the amount of logging. Also if there are events you do not need to
monitor, remove them from the list.
l
Log to FortiCloud instead of memory or Disk. Logging to memory quickly uses up resources. Logging to local
disk will impact overall performance and reduce the lifetime of the unit. Fortinet recommends logging to
FortiCloud which doesnt use much CPU.
l
If the disk is almost full, transfer the logs or data off the disk to free up space. When a disk is almost full it
consumes a lot of resources to find the free space and organize the files.
l
If you have packet logging enabled, consider disabling it. When its enabled it records every packet that comes
through that policy.
l
Halt all sniffers and traces.
l
Ensure you are not scanning traffic twice. If traffic enters the FortiGate unit on one interface, goes out another,
and then comes back in again that traffic does not need to be rescanned. Doing so is a waste of resources.
However, ensure that traffic truly is being scanned once.
l
Reduce the session timers to close unused sessions faster. To do this in the CLI enter the following commands
and values. These values reduce the values from defaults. Note that tcp-timewait has 10 seconds added
by the system by default.
config
set
set
set
set
end
l
system global
tcp-halfclose-timer 30
tcp-halfopen-timer 30
tcp-timewait-timer 0
udp-idle-timer 60
Enable only features that you need under System > Config > Features.
4. When CPU usage is under control, use SNMP to monitor CPU usage. Alternately, use logging to
71
Common questions
complicated, you can use the System Resources widget to record CPU usage. However, this method will not
alert you to problems - it will just record them as they happen.
You should always run the following diagnose command after inserting the USB modem into the unit:
diagnose sys modem detect
You can view the modem configuration by using the get system modem command. You can also view the
modems vendor identification as well as the custom product identification number from the information output from
the get system modem command.
When there are connectivity issues, use the following to help you resolve them:
l
l
l
l
The modem diagnose output should not contain any error on the way to initializing. You should also verify the number
that is used to dial with your ISP.
Both ping and traceroute require particular ports to be open on firewalls, or else they cannot function. Since you
typically use these tools to troubleshoot, you can allow them in the security policies and on interfaces only when you
need them, and otherwise keep the ports disabled for added security.
72
Common questions
Ping
The ping command sends a very small packet to the destination, and waits for a response. The response has a timer
that may expire, indicating the destination is unreachable. The behavior of ping is very much like a sonar ping from a
submarine, where the command gets its name.
Ping is part of Layer-3 on the OSI Networking Model. Ping sends Internet Control Message Protocol (ICMP) echo
request packets to the destination, and listens for echo response packets in reply. However, many public networks
block ICMP packets because ping can be used in a denial of service (DoS) attack (such as Ping of Death or a smurf
attack), or by an attacker to find active locations on the network. By default, FortiGate units have ping enabled while
broadcast-forward is disabled on the external interface.
Verify which security policy was used (use the packet count column on the Policy & Objects > Policy page).
Hardware ensure cabling is correct, and all equipment between the two locations is accounted for.
Addresses and routes ensure all IP addresses and routing information along the route is configured as
expected.
Firewalls ensure all firewalls, including FortiGate unit security policies allow PING to pass through.
Sample output:
Head_Office_620b # exec ping 10.11.101.101
PING 10.11.101.101 (10.11.101.101): 56 data bytes
64 bytes from 10.11.101.101: icmp_seq=0 ttl=255 time=0.3
64 bytes from 10.11.101.101: icmp_seq=1 ttl=255 time=0.2
64 bytes from 10.11.101.101: icmp_seq=2 ttl=255 time=0.2
64 bytes from 10.11.101.101: icmp_seq=3 ttl=255 time=0.2
64 bytes from 10.11.101.101: icmp_seq=4 ttl=255 time=0.2
ms
ms
ms
ms
ms
--- 10.11.101.101 ping statistics --5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.3 ms
73
Common questions
In Windows XP, select Start > Run, enter cmd, and select OK.
In Windows 7, select the Start icon, enter cmd in the search box, and select cmd.exe from the list.
2. Enter ping 10.11.101.100 to ping the default internal interface of the FortiGate unit with four packets.
Other options include:
l
l
l
Sample output:
C:\>ping 10.11.101.101
Pinging 10.11.101.101 with 32 bytes of data:
Reply from 10.11.101.101: bytes=32 time=10ms TTL=255
Reply from 10.11.101.101: bytes=32 time<1ms TTL=255
Reply from 10.11.101.101: bytes=32 time=1ms TTL=255
Reply from 10.11.101.101: bytes=32 time=1ms TTL=255
Ping statistics for 10.11.101.101:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 10ms, Average = 3ms
Traceroute
Where ping will only tell you if it reached its destination and came back successfully, traceroute will show each step of
its journey to its destination and how long each step takes. If ping finds an outage between two points, traceroute can
be used to locate exactly where the problem is.
What is traceroute
Traceroute works by sending ICMP packets to test each hop along the route. It will send out three packets, and then
increase the time to live (TTL) setting by one each time. This effectively allows the packets to go one hop farther along
the route. This is the reason why most traceroute commands display their maximum hop count before they start
tracing the route that is the maximum number of steps it will take before declaring the destination unreachable.
Also, the TTL setting may result in steps along the route timing out due to slow responses. There are many possible
reasons for this to occur.
By default, traceroute uses UDP datagrams with destination ports numbered from 33434 to 33534. The traceroute
utility usually has an option to specify use of ICMP echo request (type 8) instead, as used by the Windows tracert
utility. If you have a firewall and if you want traceroute to work from both machines (Unix-like systems and Windows)
74
Common questions
you will need to allow both protocols inbound through your FortiGate security policies (UDP with ports from 33434 to
33534 and ICMP type 8).
You can also use the packet count column of the Policy & Objects > Policy page to track traceroute packets. This
allows you to verify the connection, but also confirm which security policy the traceroute packets are using.
In Windows XP, select Start > Run, enter cmd, and select OK.
In Windows 7, select the Start icon, enter cmd in the search box, and select cmd.exe from the list.
2. Enter tracert fortinet.com to trace the route from the PC to the Fortinet web site.
Sample output:
C:\>tracert fortinet.com
Tracing route to fortinet.com [208.70.202.225]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 172.20.120.2
2 66 ms 24 ms 31 ms 209-87-254-xxx.storm.ca [209.87.254.221]
3 52 ms 22 ms 18 ms core-2-g0-0-1104.storm.ca [209.87.239.129]
4 43 ms 36 ms 27 ms core-3-g0-0-1185.storm.ca [209.87.239.222]
5 46 ms 21 ms 16 ms te3-x.1156.mpd01.cogentco.com [38.104.158.69]
6 25 ms 45 ms 53 ms te8-7.mpd01.cogentco.com [154.54.27.249]
7 89 ms 70 ms 36 ms te3-x.mpd01.cogentco.com [154.54.6.206]
8 55 ms 77 ms 58 ms sl-st30-chi-.sprintlink.net [144.232.9.69]
9 53 ms 58 ms 46 ms sl-0-3-3-x.sprintlink.net [144.232.19.181]
10 82 ms 90 ms 75 ms sl-x-12-0-1.sprintlink.net [144.232.20.61]
11 122 ms 123 ms 132 ms sl-0-x-0-3.sprintlink.net [144.232.18.150]
12 129 ms 119 ms 139 ms 144.232.20.7
13 172 ms 164 ms 243 ms sl-321313-0.sprintlink.net [144.223.243.58]
14 99 ms 94 ms 93 ms 203.78.181.18
15 108 ms 102 ms 89 ms 203.78.176.2
16 98 ms 95 ms 97 ms 208.70.202.225
Trace complete.
75
Common questions
The first, or the left column, is the hop count, which cannot go over 30 hops. When that number is reached, the
traceroute ends.
The second, third, and fourth columns display how much time each of the three packets takes to reach this stage of
the route. These values are in milliseconds and normally vary quite a bit. Typically a value of <1ms indicates a local
connection.
The fifth, or the column farthest to the right, is the domain name of that device and its IP address or possibly just the
IP address.
76
How to verify the contents of the routing table (in NAT mode)
Common questions
When increasing logging levels, ensure that alert email is configured and both disk usage and log quota are selected.
This ensures you will be notified if the increased logging causes problems. You can also use Logging Monitor (located
in Log&Report > Monitor > Logging volume Monitor) to determine the activities that generate the most log
entries.
l
l
Logs will help identify and locate any problems, but they will not solve the problems. The job of logs is to speed up your
problem solving and save you time and effort.
For more information on Logging and Log Reports, see the Logging and Reporting handbook chapter.
How to verify the contents of the routing table (in NAT mode)
When you have some connectivity, or possibly none at all a good place to look for information is the routing table.
The routing table is where all the currently used routes are stored for both static and dynamic protocols. If a route is in
the routing table, it saves the time and resources of a lookup. If a route is not used for a while and a new route needs
to be added, the oldest least used route is bumped if the routing table is full. This ensures the most recently used
routes stay in the table. If your FortiGate unit is in Transparent mode, you are unable to perform this step.
If the FortiGate is running in NAT mode, verify that all desired routes are in the routing table: local subnets, default
routes, specific static routes, and dynamic routing protocols.
To check the routing table in the web-based manager, use the Routing Monitor by going to Router > Monitor >
Routing Monitor.
77
Common questions
In the CLI, use the command get router info routing-table all. Sample output:
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
* - candidate default
S* 0.0.0.0/0 [10/0] via 172.20.120.2, wan1
C 10.31.101.0/24 is directly connected, internal
C 172.20.120.0/24 is directly connected, wan1
Sample output:
C:\>tracert www.fortinet.com
Tracing route to www.fortinet.com [66.171.121.34]
over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 10.10.1.99
2 1 ms <1 ms <1 ms 172.20.120.2
3 3 ms 3 ms 3 ms static-209-87-254-221.storm.ca [209.87.254.221]
4 3 ms 3 ms 3 ms core-2-g0-2.storm.ca [209.87.239.129]
5 13 ms 13 ms 13 ms core-3-bdi1739.storm.ca [209.87.239.199]
6 12 ms 19 ms 11 ms v502.core1.tor1.he.net [216.66.41.113]
7 22 ms 22 ms 21 ms 100ge1-2.core1.nyc4.he.net [184.105.80.9]
8 84 ms 84 ms 84 ms ny-paix-gni.twgate.net [198.32.118.41]
9 82 ms 84 ms 82 ms 217-228-160-203.TWGATE-IP.twgate.net [203.160.22
8.217]
10 82 ms 81 ms 82 ms 229-228-160-203.TWGATE-IP.twgate.net [203.160.22
8.229]
11 82 ms 82 ms 82 ms 203.78.181.2
12 84 ms 83 ms 83 ms 203.78.186.70
13 84 ms * 85 ms 66.171.127.177
14 84 ms 84 ms 84 ms fortinet.com [66.171.121.34]
15 84 ms 84 ms 83 ms fortinet.com [66.171.121.34]
Trace complete.
In this scenario, the first hop contains the IP address 10.10.1.99, which is the internal interface of the FortiGate.
The second hop contains the IP address 172.20.120.2, to which the wan1 interface of the FortiGate is
connected, so we can conclude that the route via wan1 interface is being used for this traffic.
Also debug the packet flow in the CLI shows the route taken for each session.
78
Common questions
Sample output:
id=20085 trace_id=319 func=vf_ip4_route_input line=1597 msg="find a route: gw172.20.120.2 via wan1"
For more information on debuging the packet flow, see How to debug the packet flow.
Sample output:
id=13 trace_id=1 func=fw_forward_handler line=650 msg="Allowed by Policy-14: SNAT"
For more information on debuging the packet flow, see How to debug the packet flow.
Sample output:
#diagnose netlink brctl list
list bridge information
1. root.b fdb: size=256 used=6 num=7 depth=2 simple=no
Total 1 bridges
79
Common questions
Collision domains prevent the forwarding of ARP packets to all VLANs on an interface. Without collision domains,
duplicate MAC addresses on VLANs may cause ARP packets to be duplicated. Duplicate ARP packets can cause some
switches to reset.
It is important to know what interfaces are part of which forwarding domains as this determines which interfaces can
communicate with each other.
To manually configure forwarding domains in Transparent mode, use the following FortiOS CLI command:
config system interface
edit <interface_name>
set forward-domain <integer>
end
where <name> is the name of the forwarding domain to display and <id> is the domain id.
Sample output
diagnose netlink brctl domain ione 101
show bridge root.b ione forward domain.
id=101 dev=trunk_1 6
To list the existing bridge MAC table, use the following command:
diagnose netlink brctl name host <name>
Sample output
show bridge control interface root.b host.
fdb: size=256, used=6, num=7, depth=2, simple=no
Bridge root.b host table
port no device
2
7
5
6
3
8
4
9
3
8
4
9
1
3
devname
wan2
vlan_1
dmz
internal
dmz
internal
wan1
mac addr
02:09:0f:78:69:00
02:09:0f:78:69:01
02:09:0f:78:69:01
02:09:0f:78:69:02
00:80:c8:39:87:5a
02:09:0f:78:67:68
00:09:0f:78:69:fe
ttl
0
0
0
0
194
8
0
attributes
Local Static
Local Static
Local Static
Local Static
Local Static
Sample Output:
show bridge root.b data port.
trunk_1 peer_dev=0
internal peer_dev=0
dmz peer_dev=0
80
Common questions
wan2 peer_dev=0
wan1 peer_dev=0
av-failopen-session must be enabled to set the behavior for these conditions. When it is enabled, and a proxy
for a protocol runs out of room in its session table that protocol goes into failopen mode and behaves as defined in the
av-failopen command.
av-failopen determines the behavior of the proxy until entries are free in the session table again for that proxy.
l
idledrop This option removes idle sessions from the session table, starting with the clients that have the most
sessions currently open. This method assumes that idle sessions are not being used and it will not cause problems
to close these sessions. This is usually true, but some applications may have problems with this and start
complaining about either not having or being able to open a session. If this occurs, try another method to check if
this is really the problem. This is a secure option as no unscanned traffic is allowed to pass.
off This option turns off accepting any new AV sessions, but will continue to process any existing AV sessions
that are currently active. All the protocols listed (HTTP, SMTP, POP3, IMAP, FTP, and NNTP) are scanned by
FortiGate Antivirus. If AV scanning is enabled, av-failopen off is selected, and the proxy session table fills up, then
no new sessions of that type will be accepted. For example, if POP3 session table is filled and email AV scanning is
enabled, no more POP3 connections will be allowed until the session table gets some free space. This is a secure
option because no unscanned traffic is allowed to pass.
one-shot When memory is low, bypass the antivirus system. The name one-shot comes from the fact that once
you are in one-shot av-failopen mode, you must set av-failopen to either pass or off to restart AV scanning. This is a
very unsecure option because it allows all traffic without AV scanning, and it never reverts to normal without manual
assistance.
pass When memory is low, bypass the antivirus system much as one-shot. The difference is that when memory
is freed up, the system will start AV scanning automatically again. This is an unsecure option because it allows
traffic to pass without AV scanning. However, it is better than one-shot because it automatically restarts AV
scanning when possible.
If the proxy session table is full for one or more protocols and your FortiGate unit enters into conserve or failopen
mode, it will appear as if you have lost connections, network services are intermittent or non-existent, and yet other
services work normally for a while until their sessions end and they join the queue of session-starved applications.
81
Common questions
Worker Stat
Running time (HH:MM:SS:usec) 29:06:27:369365
Time in loop scanning 2:08:000198
Error Count (accept) 0
Error Count (read) 0
Error Count (write) 0
Error Count (poll) 0
Error Count (alloc) 0
Last Error 0
Acceptor Read 6386
Acceptor Write 19621
Acceptor Close 0
HTTP Stat
Bytes sent 667012 (kb)
Bytes received 680347 (kb)
Error Count (alloc) 0
Error Count (accept) 0
Error Count (bind) 0
Error Count (connect) 0
Error Count (socket) 0
Error Count (read) 134
Error Count (write) 0
Error Count (retry) 40
Error Count (poll) 0
Error Count (scan reset) 2
Error Count (urlfilter wait) 3
Last Error 104
Web responses clean 17950
Web responses scan errors 23
82
Common questions
Worker Accounting
poll=721392/649809/42 pollfail=0 cmdb=85 scan=19266 acceptor=25975
HTTP Accounting
setup_ok=8316 setup_fail=0 conn_ok=0 conn_inp=8316
urlfilter=16553/21491/20 uf_lookupf=0
scan=23786 clt=278876 srv=368557
SMTP Accounting
setup_ok=12 setup_fail=0 conn_ok=0 conn_inp=12
scan=12 suspend=0 resume=0 reject=0 spamadd=0 spamdel=0 clt=275 srv=279
POP3 Accounting
setup_ok=30 setup_fail=0 conn_ok=0 conn_inp=30
scan=3 clt=5690 srv=5836
IMAP Accounting
setup_ok=0 setup_fail=0 conn_ok=0 conn_inp=0
scan=0 clt=0 srv=0
FTP Accounting
setup_ok=0 setup_fail=0 conn_ok=0 conn_inp=0
scan=0 clt=0 srv=0 datalisten=0 dataclt=0 datasrv=0
83
Common questions
NNTP Accounting
setup_ok=0 setup_fail=0 conn_ok=0 conn_inp=0
scan=0 clt=0 srv=0
The output from this command falls into the following sections:
l
HTTP Common current connections There is an entry for each protocol that displays the connections
currently used, and the maximum connections allowed. This maximum is for the UTM proxy, which means all the
protocols connections combined cannot be larger than this number. To support this, note that the maximum
session count for each protocol is the same. You may also see a line titled Max Concurrent Connections for
each protocol. This number is the maximum connections of this type allowed at one time. If VDOMs are enabled,
this value is defined either on the global or per-VDOM level at VDOM > Global Resources.
Worker Stat This is statistics about the UTM proxy including how long it has been running, and how many errors
it has found.
HTTP Stat This section includes statistics about the HTTP protocol proxy. This is a very extensive list covering
errors, web responses, and any UTM positive matches. There are similar sections for each protocol, but the specific
entries in each vary based on what UTM scanning is looking for in each spam control for email, file transfer
blocking for FTP, and so on.
Worker Accounting Lists accounting information about the UTM proxy such as polling statistics, how many
sessions were scanned, and how many were just accepted. This information can tell you if expect AV scanning is
taking place or not. Under normal operation there should be no errors or fails.
HTTP Accounting The accounting sections for each protocol provide information about successful session
creation, failures, how many sessions are being scanned or filtered, and how many are client or server originated. If
setup_fail is larger than zero, run the command again to see if it is increasing quickly. If it is, your FortiGate unit
may be in conserve mode.
Related commands
To dump memory usage:
# get test proxyworker 1
84
Common questions
The following example shows filtering the session list based on a destination address of 172.20.120.222.
FGT# diag sys session filter dst 172.20.120.222
FGT# diag sys session list
85
Common questions
Sample output:
FG100D# execute ping service.fortiguard.net
PING guard.fortinet.net (208.91.112.196): 56 data bytes
64 bytes from 208.91.112.196: icmp_seq=0 ttl=51 time=61.0
64 bytes from 208.91.112.196: icmp_seq=1 ttl=51 time=60.0
64 bytes from 208.91.112.196: icmp_seq=2 ttl=51 time=59.6
64 bytes from 208.91.112.196: icmp_seq=3 ttl=51 time=58.9
64 bytes from 208.91.112.196: icmp_seq=4 ttl=51 time=59.2
ms
ms
ms
ms
ms
--- guard.fortinet.net ping statistics --5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 58.9/59.7/61.0 ms
FG100D# execute ping update.fortiguard.net
PING fds1.fortinet.com (208.91.112.68): 56 data bytes
64 bytes from 208.91.112.68: icmp_seq=0 ttl=53 time=62.0
64 bytes from 208.91.112.68: icmp_seq=1 ttl=53 time=61.8
64 bytes from 208.91.112.68: icmp_seq=2 ttl=53 time=61.3
64 bytes from 208.91.112.68: icmp_seq=3 ttl=53 time=61.9
64 bytes from 208.91.112.68: icmp_seq=4 ttl=53 time=61.8
86
ms
ms
ms
ms
ms
Common questions
The name of the interface to sniff, such as port1 or internal. This can also be
any to sniff all interfaces.
<filter>
What to look for in the information the sniffer reads. none indicates no filtering,
and all packets will be displayed as the other arguments indicate.
The filter must be inside single quotes ().
87
Common questions
<verbose>
The number of packets the sniffer reads before stopping. If you do not put a number here, the sniffer will run forever unit you stop it with <CTRL C>.
For a simple sniffing example, enter the CLI command diag sniffer packet port1 none 1 3. This will
display the next three packets on the port1 interface using no filtering, and using verbose level 1. At this verbosity level
you can see the source IP and port, the destination IP and port, action (such as ack), and sequence numbers.
In the output below, port 443 indicates these are HTTPS packets, and 172.20.120.17 is both sending and receiving
traffic.
Head_Office_620b # diag sniffer packet port1 none 1 3
interfaces=[port1]
filters=[none]
0.545306 172.20.120.17.52989 -> 172.20.120.141.443: psh 3177924955 ack 1854307757
0.545963 172.20.120.141.443 -> 172.20.120.17.52989: psh 1854307757 ack 3177925808
0.562409 172.20.120.17.52988 -> 172.20.120.141.443: psh 4225311614 ack 3314279933
For a more advanced example of packet sniffing, the following commands will report packets on any interface
travelling between a computer with the host name of PC1 and the computer with the host name of PC2. With
verbosity 4 and above, the sniffer trace will display the interface names where traffic enters or leaves the FortiGate
unit. Remember to stop the sniffer, type CTRL+C.
FGT# diagnose sniffer packet any "host <PC1> or host <PC2>" 4
or
FGT# diagnose sniffer packet any "(host <PC1> or host <PC2>) and icmp" 4
The following sniffer CLI command includes the ARP protocol in the filter which may be useful to troubleshoot a failure
in the ARP resolution (for instance PC2 may be down and not responding to the FortiGate ARP requests).
FGT# diagnose sniffer packet any "host <PC1> or host <PC2> or arp" 4
Packet Capture
When troubleshooting networks, it helps to look inside the header of the packets. This helps to determine if the
packets, route, and destination are all what you expect. Packet capture can also be called a network tap, packet
sniffing, or logic analyzing.
To use the packet capture:
1. Go to System > Network > Packet Capture.
2. Select the interface to monitor and select the number of packets to keep.
3. Select Enable Filters.
88
Common questions
4. Enter the information you want to gather from the packet capture.
5. Select OK.
To run the capture, select the play button in the progress column in the packet capture list. If not active, Not
Running will also appear in the column cell. The progress bar will indicate the status of the capture. You can stop and
restart it at any time.
When the capture is complete, click the Download icon to save the packet capture file to your hard disk for further
analysis.
Packet capture tells you what is happening on the network at a low level. This can be very useful for troubleshooting
problems, such as:
l
l
l
l
l
l
l
l
If you are running a constant traffic application such as ping, packet capture can tell you if the traffic is reaching the
destination, how the port enters and exits the FortiGate unit, if the ARP resolution is correct, and if the traffic is
returning to the source as expected. You can also use packet switching to verify that NAT or other configuration is
translating addresses or routing traffic the way that you want it to.
Before you start capturing packets, you need to have a good idea of what you are looking for. Capture is used to
confirm or deny your ideas about what is happening on the network. If you try capture without a plan to narrow your
search, you could end up with too much data to effectively analyze. On the other hand, you need to capture enough
packets to really understand all of the patterns and behavior that you are looking for.
89
Common questions
FGT#
FGT#
FGT#
FGT#
diag
diag
diag
diag
debug
debug
debug
debug
The start 100 argument in the above list of commands will limit the output to 100 packets from the flow. This is
useful for looking at the flow without flooding your log or displaying too much information.
To stop all other debug activities, enter the command:
FGT# diag debug flow trace stop
The following is an example of debug flow output for traffic that has no matching security policy, and is in turn blocked
by the FortiGate unit. The denied message indicates that the traffic was blocked.
id=20085 trace_id=319 func=resolve_ip_tuple_fast line=2825 msg="vd-root received a packet
(proto=6, 192.168.129.136:2854->192.168.96.153:1863) from port3."
id=20085 trace_id=319 func=resolve_ip_tuple line=2924 msg="allocate a new session013004ac"
id=20085 trace_id=319 func=vf_ip4_route_input line=1597 msg="find a route: gw192.168.150.129 via port1"
id=20085 trace_id=319 func=fw_forward_handler line=248 msg=" Denied by forward policy
check"
90
Troubleshooting resources
Before you begin troubleshooting, you need to know Fortinets troubleshooting resources. Doing so will shorten the
time to solve your issue. Indeed, an administrator can save time and effort during the troubleshooting process by first
checking if the issue has been experienced before. Several self-help resources are available to provide valuable
information about FortiOS technical issues, including:
Technical Documentation
Installation Guides, Administration Guides, Quick Start Guides, and other technical documents are available online at
the following URL:
http://docs.fortinet.com
http://video.fortinet.com
Release Notes
Issues that are uncovered after the technical documentation has been published will often be listed in the Release
Notes that accompany the device.
Knowledge Base
The Fortinet Knowledge Base provides access to a variety of articles, white papers, and other documentation providing
technical insight into a range of Fortinet products. The Knowledge Base is available online at the following URL:
http://kb.fortinet.com
http://forum.fortinet.com
91
Troubleshooting resources
http://www.fortinet.com/training/
http://support.fortinet.com
92
Creating an account
Registering a device
Reporting problems
The regional TACs are contacted through a global call center. Incoming service requests are then routed to the
appropriate TAC. Each regional TAC delivers technical support to the customers in its regions during its hours of
operation. These TACs also combine to provide seamless, around-the-clock support for all customers.
93
Creating an account
Creating an account
To receive technical support and service updates, Fortinet products in the organization must be registered. The
Product Registration Form on the support website will allow the registration to be completed online. Creating an
account on the support website is the first step in registering products.
Go to the Fortinet support site shown below:
https://support.fortinet.com/
Customer service and support home page
Once the support account has been created, product details can be provided by going to the Product
Register/Renew and Manage Product buttons displayed on the home page. Alternately, the product registration
can be completed at a later time.
Registering a device
Complete the following steps when registering a device for support purposes:
1. Log in using the Username and Password defined when the account was created
2. Under the Asset section, select Register/Renew to go to the Registration Wizard. Alternatively, use the Asset
menu at the top of the page.
94
Registering a device
3. Get a serial number from the back of the FortiGate unit or from the exterior of the FortiGate shipping box.
4. Enter the serial number, service contract registration code or license certificate number to start the product
registration.
5.
6.
7.
8.
9. Registration wizard
95
Reporting problems
Reporting problems
Problems can be reported to a Fortinet Technical Assistance Center in the following ways:
l
l
Fortinet partners
Fortinet Partners are entitled to priority web-based technical support. This service is designed for partners who provide
initial support to their customers and who need to open a support ticket with Fortinet on their behalf. We strongly
encourage submission and follow up of support tickets using this service.
The support ticket can be submitted after logging into the partner website using one of the following links using
FortiPartner account details:
http://partners.fortinet.com
This link will redirect to the general Fortinet Partner Portal extranet website. Click Support > Online Support
Ticket.
https://forticare.fortinet.com/customersupport/Login/CommonLogin.aspx
Fortinet customers
There are two methods to report a technical issue on the Fortinet Support website: creating a technical support ticket
by product or creating any type of ticket with the Ticket Wizard for more options.
Fortinet customers should complete the following steps to create a support ticket by product:
1. Log in to the support website at the following address with the account credentials used when the account was
created: https://support.fortinet.com
2. Navigate to the top menu, click Asset and select Manage/View Products.
3. In the product list, select the product that is causing the problem.
4. On the left side bar, go to the Assistance category, and select Technical Request to create a TA Ticket.
5. Complete the Create TA Ticket fields.
6. Click View Products.
7. In the Products List, select the product that is causing the problem.
8. Complete the Create Support Ticket fields.
9. Select Finish to complete the support ticket.
Fortinet customers who would like to submit a customer service ticket, DOA ticket, RMA ticket, or FortiGuard service
ticket should use the Ticket Wizard and complete the following steps:
1. Log in to the support website at the following address with the account credentials used when the account was
created: https://support.fortinet.com
96
2. Navigate to the top menu, click Assistance and select Create a Ticket from the drop down menu.
3. Select a ticket type and complete the remaining steps in the Ticket Wizard.
4. Select Finish to complete the ticket.
http://partners.fortinet.com
Customers should log into the following site:
http://support.fortinet.com
1. Log in with the account credentials used when the account was created.
2. Navigate to the top menu, click Assistance, and select Manage Tickets.
3. Use the search field on the View Tickets page to locate the tickets assigned to the account.
4. Select the appropriate ticket number. Closed tickets cannot be updated. A new ticket must be submitted if it
concerns the same problem.
5. Add a New Comment or Attachment.
6. Click Submit when complete.
Every web ticket update triggers a notification to the ticket owner, or ticket queue supervisor.
97
Additional log files such as Antivirus log, Attack log, Event log, Debug log or similar information to include in the
ticket as an attachment. If a third-party product is involved, for example, email server, FTP server, router, or switch,
please provide the information on its software revision version, configuration, and brand name.
Priority 1
This Critical priority is assigned to support cases in which:
l
l
l
l
The network or system is down causing customers to experience a total loss of service.
There are continuous or frequent instabilities affecting traffic-handling capability on a significant portion of the
network.
There is a loss of connectivity or isolation to a significant portion of the network.
This issue has created a hazard or an emergency.
Priority 2
This Major priority is assigned to support cases in which:
l
l
l
l
l
Priority 3
This Medium priority is assigned to support cases in which:
l
l
l
l
Priority 4
This Minor priority is assigned to support cases in which:
l
The customer is making information requests and asking standard questions about the configuration or functionality
of equipment.
Customers must report Priority 1 and 2 issues by phone directly to the Fortinet EMEA Support Center.
For lower priority issues, you may submit an assistance request (ticket) via the web system.
98
The web ticket system also provides a global overview of all ongoing support requests.
99
Copyright 2015 Fortinet, Inc. All rights reserved. Fortinet, FortiGate, FortiCare and FortiGuard, and certain other marks are registered trademarks of Fortinet, Inc., and
other Fortinet names herein may also be registered and/or common law trademarks of Fortinet. All other product or company names may be trademarks of their respective
owners. Performance and other metrics contained herein were attained in internal lab tests under ideal conditions, and actual performance and other results may vary. Network
variables, different network environments and other conditions may affect performance results. Nothing herein represents any binding commitment by Fortinet, and Fortinet
disclaims all warranties, whether express or implied, except to the extent Fortinet enters a binding written contract, signed by Fortinets General Counsel, with a purchaser that
expressly warrants that the identified product will perform according to certain expressly-identified performance metrics and, in such event, only the specific performance
metrics expressly identified in such binding written contract shall be binding on Fortinet. For absolute clarity, any such warranty will be limited to performance in the same ideal
conditions as in Fortinets internal lab tests. Fortinet disclaims in full any covenants, representations,and guarantees pursuant hereto, whether express or implied. Fortinet
reserves the right to change, modify, transfer, or otherwise revise this publication without notice, and the most current version of the publication shall be applicable.