A10 - ADC-2 7v2 1-L-Presentation - 3 27 14
A10 - ADC-2 7v2 1-L-Presentation - 3 27 14
A10 - ADC-2 7v2 1-L-Presentation - 3 27 14
Course A10_ADC-2.7v2.1
Table of Contents
Section 0:
Section 1:
Section 2:
Section 3:
Section 4:
Section 5:
Section 6:
Section 7:
Section 8:
Section 9:
Course Introduction
ACOS Management
Load Balancing Concepts
HTTP
HTTPS
ACOS Acceleration
ACOS Security
High Availability
ACOS Troubleshooting
aFleX
Introduction
Section 0
Contents
Course goals
Materials
Objective for students
Material:
Lecture materials
Lab equipment
Additional Resources:
Support web site for latest releases / User Guides / Release Notes / AppNotes
Community http://www.a10support.com/adc/
1.0.0.0/24
.201
.202
.203
1.0.0.(100+n)
VIP1 100.0.0.(20+n)
1.0.0.n
.201
200.0.0.n
Server Data 200.0.0.0/24
3.0.0.1
HA Link
100.0.0.(100+n)
100.0.0.n
Client Data 100.0.0.0/24
HA ID 1
Set ID y
HA ID 2
.202
.203
Application
servers
3.0.0.2
Substitute with
Student 1 example
<s1-IP>
<s2-IP>
<nat1-IP>
<vip1-IP>
<ACOS-Mgmt-IP>
<ha-sync-pri>
<ha-sync-sec>
<client-data-IP>
<backup-IP>
<set-ID>
Server 1 IP address
Server 2 IP address
200.0.0.(20+n) where n is your student ID
100.0.0.(20+n) where n is your student ID
A10 device management IP - 1.0.0.n
3.0.0.1
3.0.0.2
100.0.0.(100+n) where n is your student ID
1.0.0.(100+n)
Instructor will assign before the lab
200.0.0.201
200.0.0.202
200.0.0.21
100.0.0.21
1.0.0.1
<ha-ID>
100.0.0.101
1.0.0.101
Introductions
Your name
Role at your company
Location of your home office
Experience with server load balancing
Experience with ACOS devices
ACOS Management
Section 1
Section objectives
Explore ACOS management access
Understand ACOS configuration components
Backup/restore ACOS configuration
Review initial ACOS configuration
Web
HTTP (configurable ports - disabled by default)
HTTPS (configurable ports)
Common Prompt
name
Purpose
user
>
Privileged EXEC
Level
enable
Privileged EXEC
Level - Config
Mode
config
(config)#
Clustering
ACOS-Active-vMaster[7/1]>
ACOS-Standby-vBlade[7/2]>
Packet capture
ACOS(axdebug)#
Hostname
ACOS(config)#hostname MyThunder1
MyThunder1(config)#
5
CLI: Help
List options
ACOS>show health monitor ?
WORD<length:1-31>
all-partitions
partition
|
Name
All partition configurations
Per-partition configurations
Output modifiers
Option disambiguation
ACOS>show ic?
icmp
icmpv6
Command completion
ACOS>show rad<tab>
ACOS>show radius-server
CLI: Undo
Commands are undone by prepending no
ACOS(config)#ip nat pool nat1 10.0.2.15 10.0.2.16 netmask /24
ACOS(config)#show ip nat pool
Total IP NAT Pools: 1
Pool Name
Start Address
nat1
10.0.2.15
End Address
10.0.2.16
Mask
/24
Gateway
0.0.0.0
HA Group
0
Vrid
default
ACOS(config)#slb server s1
ACOS(config-real server)#no enable
ACOS#show run | sec slb
slb server s1 10.0.2.18
disable
Underscore matches a comma ",", left brace "{", right brace "}", left parenthesis "(",
right parenthesis ")", the beginning of the string, the end of the string,
or a space.
10
CLI: OR
To use "|" symbol as OR in inc or sec, escape it with "\" with no spaces around it
ACOS#show run | inc tacacs\|radius
tacacs-server host 1.0.0.100 secret (encrypted_secret) port 49 timeout 12
radius-server host 1.0.0.100 secret (encrypted_secret)
11
ACOS(config)#exit
ACOS#exit
ACOS>
Ctrl-C is a keyboard shortcut for exit in config mode, Ctrl-Z is a shortcut for end
12
CLI: Workflow
With CLI, build your configuration from bottom up
system
redundancy + clustering
servers
nat pools
templates
virtual server
virtual server port
13
Config
Equivalent to CLI Privileged EXEC Level - Config Mode (config)
14
WebUI: Workflow
In WebUI, you can build configuration from top down in one of two ways
Config > SLB > Service > Virtual Server (and then add vPort underneath)
Config > SLB > Service > Virtual Service (all from one place)
Necessary configuration elements names are created automatically. Your virtual service is
translated at the CLI level into virtual server + virtual port.
ACOS#show run | sec slb
slb server _s_10.0.2.18 10.0.2.18
port 80 tcp
slb server _s_10.0.2.19 10.0.2.19
port 80 tcp
slb service-group http tcp
member _s_10.0.2.18:80
member _s_10.0.2.19:80
slb virtual-server _10.0.1.12_vserver 10.0.1.12
port 80 http
name vip1-http
service-group http
15
WebUI benefits
Flexible workflow
Easy admin role definition
Familiar interface
Excellent for monitoring graphical display
16
17
18
Note: Supported upload protocols: FTP, SFTP, SCP, RCP, TFTP, and HTTPS (via WebUI)
19
[paste]
Note: Supported upload protocols: FTP, SFTP, SCP, RCP, TFTP, and HTTPS (via WebUI)
20
Running Config
SSL Cert File
SSL Cert/Key File
SSL Crl File
SSL Key File
aFleX Script Source File
Black/White List File
Class List File
AX Debug Packet File
Debug Monitor Output
Startup Config
Syslog file
Thales security world files - in .tgz format
Thales Kmdata files - in .tgz format
DNSSEC DNSKEY(KSK) file for the zone
DNSSEC DS file for the zone
IP Map List File
21
Erasing configuration
You may erase configuration while preserving access to the device
ACOS(config)#erase ?
preserve-management
preserve-accounts
reload
<cr>
This command also erases profile linked to current startup config (except for
preserve elements) but does not affect other profiles.
22
Note: Each storage location has its own software and AX configuration
23
24
ACOS(config)#system-reset
ACOS(config)#end
ACOS#reboot
25
26
Lab
Backup your ACOS device using FTP server and local drive
27
Section summary
In this module, we discussed:
AX Management access
Backup and restore procedure
We have performed:
AX configuration back up and restore
28
Section objectives
Understand main load balancing goals and concepts
Configure ACOS L4 SLB Virtual Server
Configure two common L4 SLB Virtual Server options (Source IP Persistence + NAT)
AX Series
100.0.0.0/24
100.0.0.0/24
Internet
100.0.0.[100-200]
SNAT = 100.0.0.50
200.0.0.1
AX Series
Source IP
Dest IP
Source IP
Dest IP
200.0.0.1
100.0.0.10
100.0.0.50
100.0.0.100
AX Series
Dest IP
Source IP
Dest IP
Source IP
200.0.0.1
100.0.0.10
100.0.0.50
100.0.0.100
4
Internet
100.0.0.0/24
AX Series
SNAT = 100.0.0.50
100.0.0.[100-200]
100.0.0.0/24
200.0.0.1
Benefits:
No change required on clients or
servers
Easy to test
Clients can be in servers subnet
AX Series
100.0.1.0/24
100.0.0.0/24
Internet
100.0.1.[100-200]
SNAT = 100.0.1.50
200.0.0.1
AX Series
Source IP
Dest IP
Source IP
Dest IP
200.0.0.1
100.0.0.10
100.0.1.50
100.0.1.100
AX Series
Dest IP
Source IP
Dest IP
Source IP
200.0.0.1
100.0.0.10
100.0.1.50
100.0.1.100
6
Internet
100.0.0.0/24
AX Series
SNAT = 100.0.1.50
100.0.1.[100-200]
100.0.1.0/24
200.0.0.1
Benefits:
No change required on clients or
servers
Easy to test
100.0.1.0/24
100.0.0.0/24
Internet
100.0.1.[100-200]
AX Series
200.0.0.1
AX Series
Source IP
Dest IP
Source IP
Dest IP
200.0.0.1
100.0.0.10
200.0.0.1
100.0.1.100
AX Series
Dest IP
Source IP
Dest IP
Source IP
200.0.0.1
100.0.0.10
200.0.0.1
100.0.1.100
8
Internet
100.0.1.[100-200]
AX Series
100.0.0.0/24
100.0.1.0/24
200.0.0.1
Benefits:
No change required on clients or
servers
100.0.0.0/24
100.0.0.0/24
Internet
100.0.0.[100-200]
Loopback IP = VIP = 100.0.0.10
AX Series
200.0.0.1
AX Series
Source IP
Dest IP
Source IP
Dest IP
200.0.0.1
100.0.0.10
SLB MAC
200.0.0.1
100.0.0.10
Server MAC
Dest IP
Source IP
200.0.0.1
100.0.0.10
10
Internet
100.0.0.0/24
100.0.0.[100-200]
Loopback IP = VIP = 100.0.0.10
AX Series
100.0.0.0/24
200.0.0.1
Benefits:
Highly scalable (SLB processes only
incoming traffic)
12
SLB: Server
Minimum configuration
Name
IP address (can use DNS name)
Ports
Server configuration
WebUI: Config > Service > SLB > Server
CLI: AX(config)# slb server <name> []
13
LB Algorithm
At least one Server/Port
14
Health Monitor
Service availability is checked using health monitors
Health monitors can be applied to:
Server
Server:Port
Service Group
Source IP persistence
When to use Source IP persistence
Source IP persistence must be used when clients must have their future connections/traffic
terminated on the same server
18
19
Assign the SLB Source NAT Pool to the Virtual Server Port
20
21
22
service-group acme
slb virtual-server emca 10.0.1.14
port 0 tcp
service-group emca
Virtual Servers are displayed in the order of processing from the CLI
23
In the above example port 80 will be matched against incoming connection first
24
Layer 7:
Cookie persistence template
aFleX script
All other templates
Service group
25
Lab
Configure Layer 4 SLB Virtual Server (VIP)
Physical servers
Service Group
Source NAT
Source IP Persistence
Virtual Server
Verify functionality
26
Section summary
In this section we discussed:
Load balancings main goals: server load sharing and high availability of services
Load balancers network integration modes: routed, one-arm, transparent, and DSR
27
HTTP
Section 3
Section objectives
Understand HTTP
Understand ACOS HTTP load balancing
Configure HTTP Virtual Server
HTTP protocol
HTTP RFC is 2616 (http://www.w3.org/Protocols/rfc2616/rfc2616.html)
HTTP (Hypertext Transfer Protocol) is an unencrypted TCP protocol used to access web
content (usually on port 80)
Note: HTTPS uses the same protocol with explicit SSL encryption for higher security (usually on
port 443)
HTTP request
Main request methods
"GET url": Request object from server
"POST url": Send data/object to server
Others: HEAD, CONNECT
Note: The Host (such as www.a10networks.com) is not a part of the url but is listed in the
"Host header in the request
"Connection: Keep-Alive": Server support for using the same session for multiple
request/response transactions
"Set-Cookie": Asks user to save cookie to keep track of user information
"Cache-Control" / "Pragma": Cacheability of the object
AX offers advanced flexibility options for web applications via HTTP templates
HTTP templates are associated with virtual server ports of service type HTTP" or
"HTTPS
10
11
Lab
Configure layer 7 HTTP Virtual Server
Physical servers
HTTP Health Monitor
Service Group
Source NAT
Source IP Persistence
Virtual Server
HTTP Templates
Header rewriting/insertion
URL Failover
Verify functionality
12
Section summary
In this section we discussed HTTP protocol
We have configured the following:
HTTP Virtual Server
13
HTTPS
Section 4
Section objectives
Understand HTTPS
Understand ACOS HTTPS load balancing and its options
Configure HTTPS Virtual Server
HTTPS protocol
HTTPS (HTTP over TLS) RFC is 2818 (http://www.ietf.org/rfc/rfc2818.txt)
HTTPS is the "secured" version of HTTP (usually port 443)
HTTPS offers
Server Authentication (with server certificates)
(optional) Client Authentication (with client certificates)
Encryption (with TLS/SSL)
Server authentication
TLS/SSL is based on public certificates and private keys
Certificates are issued and signed by Certificate Authority (CA)
HTTPS clients first request the server public certificate and validate it using list of
trusted CAs
When the server certificate is validated (name, date, etc.), the client sends its HTTP
request
SSL Negotiation
SYN (TCP Port 443)
SYN/ACK
ACK
CLIENT_HELLO (Highest SSL Version, Ciphers Supported, Data Compression Methods, SessionID, Random Data)
SERVER_HELLO (Selected SSL Version, Selected Cipher, Selected Data Compr. Method, Assigned SessionID, Random Data)
CERTIFICATE (Public Key, Authentication Signature)
SERVER_DONE
CERTIFICATE_VERIFY (Client informs the server that it has verified the server's certificate)
CHANGE_CIPHER_SPEC (contents of subsequent SSL record data sent by the client during the SSL session will be encrypted)
FINISHED (digest of all the SSL handshake commands so far for validation)
CHANGE_CIPHER_SPEC (subsequent data sent by the server during the SSL session will be encrypted)
FINISHED (digest of all the SSL handshake commands so far for validation)
Client sends server symmetric secret key encrypted with servers public key.
From now user data is encrypted.
5
Cookie persistence
When to use cookie persistence
Like Source IP Persistence, Cookie Persistence is used when HTTP/HTTPS clients must have
their future connections/traffic terminated on the same server.
But Cookie Persistence provides more granularity, since even different users coming from the
same Proxy (same IP address) will get different persistence with Cookie Persistence.
10
Lab
Configure layer 7 HTTPS Virtual Server
Physical servers
Service Group
SSL Certificate
SSL Template
Source NAT
Cookie Persistence
Virtual Server
Transparent redirect
Verify functionality
11
Section summary
In this section we discussed HTTPS protocol
We have configured the following:
HTTPS Virtual Server using HTTP and HTTPS servers
HTTPS redirect
Cookie persistence
12
ACOS Acceleration
Section 5
Section objectives
Understand and configure advanced ACOS acceleration options:
Connection Reuse
HTTP compression
RAM Caching
Note: Web browsers keep their TCP connections open - even when all objects have
been loaded
SSL Offload
SSL Offload relieves the server of SSL tasks
This option provides faster server response time and higher server scalability
ACOS receives HTTPS client traffic and sends HTTP traffic to the servers
HTTP compression
Compresses HTTP/HTTPS objects
Uses less bandwidth and provides faster client download time
ACOS HTTP compression
Compresses objects sent to the clients (Note: By default, "text" (such as html/css/js) and
"application" (such as doc/xls/ppt/pdf))
If HTTP compression is enabled on the servers, ACOS transparently offloads this task from
servers
RAM Caching
Caches HTTP/HTTPS static and dynamic content in ACOS RAM
Delivers cached objects to clients directly from the ACOS Cache, offloading servers
Provides faster client download time and higher server scalability
Parameterized requests
The URL matches a specific pattern.
Specific query parameters are present.
Specific cookies in the request are present.
Specific HTTP headers in the request are present.
10
11
policies
Policies are evaluated in the order they are specified. The action in the first policy that
matches will be applied.
12
The list URI gets a lot of hits. It makes sense to cache that URI while it remains up to
date. However, when the user does an add/delete operation, or one of the other URIs
arrives, the database would change and the cached list needs to be refreshed.
13
Lab
Configure layer 7 HTTP Virtual Server
Physical servers
Service Group
Source NAT
Cookie Persistence
Virtual Server
Connection Reuse
Compression template
RAM Caching template
Verify functionality
14
Section summary
In this section, you have configured the following ACOS acceleration options:
Connection Reuse
SSL offload
HTTP compression
RAM Caching
15
ACOS Security
Section 6
Section objectives
Understand advanced ACOS security options
DDoS protection
PBSLB
ACL
Management security
DDoS configuration
WebUI: Config > SLB > Global
CLI: ACOS(config)# ip anomaly-drop <DDoS-type>
Out-of-sequence packet
PBSLB (p. 2 of 2)
Using Class List you can limit users on their:
Layer 4 traffic:
Connection Limit
Connection-Rate Limit per 100 ms
Up to 32 group IDs
Highly efficient
Lists are stored in hash tables
Can process Gbps of traffic
Management security
ACOS provides advanced management security options
Multiple management accounts with distinct levels of access
Interface level access for individual access types (ICMP / Telnet / SSH / HTTP / HTTPS / SNMP)
Section summary
In this module, we presented ACOS advanced security options:
DDoS protection
PBSLB
ACL
Management security
10
Section objectives
Discuss High Availability and its options
Active-Standby mode
Active-Active mode
Configure Active-Standby HA
Active-Standby mode
Active ACOS device processes all the
production traffic
Standby ACOS device does not process
any production traffic
Standby ACOS device optionally mirrors
L4 session information from Active
Reliability is scaled but not performance
Active-Standby Failover
Peer ACOS device is elected as active
Gratuitous ARPs for virtual, floating and
NAT IPs are sent
Active-Active mode
Both ACOS devices process the
production traffic
Session and state information is mirrored
between both ACOS devices
Performance is scaled in addition to
reliability
Note: Do not exceed 50% utilization on
each unit for full HA
Active-Active Failover
Peer ACOS device is elected active for HA
group 2 and sends gratuitous ARPs for
virtual IPs, floating IPs, and NAT IPs
HA support
All ACOS integration modes support HA
Routed mode
Active-Standby, Active-Active
One-Arm mode
Active-Standby, Active-Active
Transparent mode
L2 Active-Standby
DSR mode
Active-Standby, Active-Active
Configure HA interfaces
All interfaces used with production traffic (+ ACOS device interlink if exists)
Note: We recommend a dedicated direct interlink between the ACOS devices so sync traffic is
off the production network
10
11
Active-Active configuration
Same as Active-Standby with two groups defined
Step2:
Group1 with priority 200 on AX1 (priority 100 on A2)
Step3:
Associate Group1 with half of the VIPs and Group2 with the second half
Step4:
Associate Group1 with the NAT Pools used by VIPs in Group1 and Group2 with the NAT Pools used
by VIPs in Group2
12
Lab
Configure HA Active/Standby mode with your neighbor
13
Section summary
We discussed High Availability modes
Active-Standby
Active-Active
14
ACOS Troubleshooting
Section 8
Section objectives
Learn ACOS troubleshooting tools
Use session-related commands
Perform packet trace in ACOS using axdebug
Log
ACOS logs many informational, warning, and error messages. show
to check when experiencing issues.
log
Monitoring
WebUI: Monitor > System > Logging > Logging
CLI: ACOS#show log [ | inc <reg_ex> ]
Audit log
ACOS logs administrative actions with username, date, and time stamp. It also logs
new administrative sessions.
Examples
Sep 30 2013 12:21:04 [admin] web: add Source IP Persistence template
[pers1] successfully.
Sep 30 2013 11:41:54 [admin] cli: vcs device-context device 2
Sep 30 2013 12:29:28 A web session[1] opened, username: admin, remote
host: 10.254.102.12
Monitoring
WebUI: Monitor > System > Logging > Audit
CLI: ACOS#show audit [ | inc <reg_ex> ]
Exporting logs
Set up permanent logging on remote server
WebUI: Config > System > Settings > Log
CLI: ACOS(config)#logging []
(save to laptop)
Health monitor
default
default
web
web
Status
UP
UP
UP
UP
Cause(Up/Down)
11 /0 @0
20 /0 @0
10 /0 @0
10 /0 @0
Retry
0
0
0
0
PIN
0 /0
0 /0
0 /0
0 /0
0
0
0
0
Method
ICMP
HTTP
Status
In use
In use
ACOS#show ha [config]
Layers 1-4
Layer 1-2
ACOS#show int []
Layer 3
ACOS#show arp
ACOS#show ip route
ACOS#show access-list
ACOS#show run | sec router
Layer 4
ACOS#show slb l4
host#telnet <ip> <port>
ACOS#axdebug
Layer 7: HTTP
Show enabled L7 features
ACOS#show run | sec slb
Try without the advanced features first (compression, connection reuse, and so on)
Packet trace
ACOS#axdebug
10
Layer 7: HTTPS
Show enabled features
ACOS#show run | sec slb
Packet trace
ACOS#axdebug
Decrypted trace
Are there any absolute links in Javascripts / Links / Images (http://xxx)?
11
ACOS Performance
Show memory utilization
ACOS#show memory [ system ]
System Memory Usage:
Total(KB) Free
16456546
8224340
Shared
0
Buffers
2420
Cached
159084
Usage
49.0%
12
ShowTech
ShowTech is a comprehensive collection of output from many troubleshooting
utilities. When contacting A10 Tech Support you will be asked to generate one.
WebUI: generate new file and save to laptop
Monitor > System > Diagnosis > Show Techsupport
CLI: generate and export file to a remote server or view on the screen
AX# show techsupport [export] [use-mgmt-port] [<remote_destination>]
13
axdebug
axdebug
Captured files are in pcap format (Wireshark / tcpdump)
Able to see every detail of the packets the AX receives & sends
14
axdebug filters
Build filters to fine tune your capture
Multiple conditions within a filter are ANDed, multiple filters are ORed.
axdebug example
ACOS#axdebug
ACOS(axdebug)#filter 1
ACOS(axdebug-filter:1)#ip 1.2.3.4 /32
ACOS(axdebug)#capture save <file_name>
15
Session filtering
Fine tune session monitoring by using filters
ACOS(config)#session-filter <filter_name> []
Example
ACOS(config)#session-filter c1 source-addr 10.0.1.161 dest-addr 10.0.1.12
dest-port 80
ACOS#show session filter c1
Prot Forward Source
Tcp 10.0.1.161:36690
Tcp 10.0.1.161:36660
Forward Dest
10.0.1.12:80
10.0.1.12:80
Age
0
0
16
Lab
Use session-control and packet-level CLI tools
17
aFleX
Section 9
Section objectives
Understand purpose of aFleX
Import and execute aFleX script
aFleX allows:
Content inspection (headers / data)
Actions on traffic
Block traffic
Redirect traffic to a specific Service Group (pool) or Server (node)
Actions
Events
aFleX scripts are event-driven, which means that the AX system triggers the aFleX whenever
that event occurs. Examples:
HTTP_REQUEST is triggered when an HTTP request is received.
CLIENT_ACCCEPTED is triggered when a client has established a connection.
aFleX commands
Used to query for data, manipulate data, or specify a traffic destination. These may be
grouped into three main categories:
Statement commands
Example: "pool <name> directs traffic to the named load balancing pool
Note: aFleX is extensible. In future releases, additional aFleX events and aFleX
commands will be added
aFleX configuration
Place aFleX script on the ACOS device
Using CLI
Use a computer with any text editor to write an aFleX script and save it as a file.
Use import aflex command to import the aFleX file from a server to ACOS.
aFleX CLI syntax check: "aflex check <name>".
Using WebUI
With ACOS web interface, users can directly type in aFleX scripts and save them on the ACOS device
under "Config > Service > aFleX".
pool finance_pool
} elseif { [HTTP::uri] starts_with "/dev" } {
pool dev_pool
}
}
Lab
Enter and verify aFleX script to block HTTP access to a designated directory
10
Summary
We discussed the purpose of aFleX
We wrote and executed a working aFleX script
11
Table of Contents
Section 0:
Section 1:
Section 2:
Section 3:
Section 4:
Section 5:
Section 6:
Section 7:
Section 8:
Section 9:
Course Introduction
Load Balancing Concepts
ACOS Management
HTTP
HTTPS
ACOS Acceleration
ACOS Security
High Availability
ACOS Troubleshooting
aFleX
12