A10 Carrier Grade Networking Tom Dattilo 02/14/2023 ©A10 Networks, Inc. 1 Table of Contents 0. Course Introduction 1. Concepts 2. LSN NAT44(4) Configuration 3. LSN Additional Features 4. IPv6 Overview 5. IPv6 Migration (NAT/DNS64) 6. NAT64 Additional Features 7. Routing and Networking 8. Logging 9. Troubleshooting and Monitoring ©A10 Networks, Inc. 2 Course Introduction Section 0 ©A10 Networks, Inc. 3 Facilities and materials Basics: Schedule (class time / breaks) Department Contact: training@a10networks.com Material: Lecture materials Lab equipment ©A10 Networks, Inc. 4 Class layout 192.168.0.0/24 .1 .254 .2 .2 .2 .3 .11 .21 .254 .254 210.0.0.0/24 110.0.0.0/24 .254 .100 .2 .1 200.0.0.0/24 .21 .1 3.0.0.0/24 100.0.0.0/24 .100 .1 .12 .12 .3 .3 .11 .3 Echo servers: 200.0.8.1 – 200.0.11.254 ©A10 Networks, Inc. 5 Introductions Your name Location of your home office What are you looking for from this class Experience with CGNAT and IPv6 Experience with ACOS devices ©A10 Networks, Inc. 6 Carrier Grade Networking Concepts Section 1 ©A10 Networks, Inc. 7 Section objectives Broad Context of CGNetworking IPv4 and IPv6 Topologies (general) CGNAT vs. Traditional NAT Sticky-NAT User-Quotas ©A10 Networks, Inc. 8 Depletion of Existing IPv4 Address Space 2015-09-22 copyright NetworkWorld http://www.networkworld.com/article/2985340/ipv6/arin-finally-runs-out-of-ipv4-addresses.html 2015-01-25 CC copyright Mro (https://commons.wikimedia.org/wiki/User:Mro) https://en.wikipedia.org/wiki/IPv4_address_exhaustion#/media/File:Ipv4-exhaust.svg 2016-07-22 copyright http://www.ipv4auctions.com/ ©A10 Networks, Inc. 9 Exponential Rise in Devices, Users and Traffic The Digital Universe: 50-fold Growth from the beginning of 2010 to the End of 2020 Source: IDC’s Digital Universe Study, sponsored by EMC, December 2012 IPv6 Traffic Volume Source: Akamai IP Traffic by Year Extend IPv4 & Migrate to IPv6 Source: Cisco VNI, 2013 Total of Connected Devices, Billions of Units (Installed Bases) Source: Gartner (November 2013) ©A10 Networks, Inc. 10 A10 Thunder Carrier Grade Networking (CGN) IPv4 Extend IPv4 IPv6 IPv6 Transition App Reliability Comprehensive Feature Set ▪ Standardized CGNAT ▪ Diverse set of ALGs ▪ All IPv6 migration techniques ▪ Interplay: Phased IPv6 transition ▪ All inclusive license Extends use of scarce IPv4 resources ©A10 Networks, Inc. 11 A10 CGN Solutions to Extend IPv4 Subscriber/ User Access/Core PrivateIPv4 Private IPv4 RFC6598 100.64 /10 ©A10 Networks, Inc. A10 Feature Destination / Service NAT44 IPv4 Internet NAT444 IPv4 Internet 12 Connecting The World to your IPv6 My Network IPv6 A10 Feature The World routing IPv6 Internet The goal, in 20 years? IPv6 Stateless NAT46 ©A10 Networks, Inc. IPv4 Internet 13 A10 CGN Solutions to Migrate to IPv6 Subscriber/ User IPv4 A10 Feature Destination / Service IPV6 DS-lite or Lw-4o6 IPv4 Internet IPv4 6rd IPv6 Internet IPV6 Stateful NAT64/DNS64 IPv4 Internet Access/Core IPv6 ©A10 Networks, Inc. 14 CGN vs Traditional NAT ©A10 Networks, Inc. 15 Large Scale NAT (LSN) Requirements – NAT44(4) and NAT64 Highly transparent Well defined NAT behavior Fairness in resource sharing Works for both client-server (traditional) and client-client (P2P) applications ©A10 Networks, Inc. 16 Differences between LSN and Traditional NAT Traditional Hide NAT Large Scale NAT Public IPs allocated 1 or few Many (subnets?) Inbound port mapping None or static Dynamic or static Outbound port selection “Random” Deterministic Resource (port) allocation “1st come, 1st serve” User Limits & User guarantees “Hairpin” TCP/UDP connections Not supported Supported Gaming/other P2P apps Not supported Supported LSN provides well defined, consistent, deterministic NAT behavior ©A10 Networks, Inc. 17 LSN/CGNAT RFCs NAT44(4) RFCs NAT64/DNS64 RFCs BEHAVE-TCP (RFC 5382) Stateful NAT64 (RFC 6146) BEHAVE-UDP (RFC 4787) DNS64 (RFC 6147) BEHAVE-ICMP (RFC 5508) IP/ICMP Translation Algorithm (RFC 7915) Carrier-Grade NATs (RFC 6888) All of those, too Primary Features Sticky External IP mapping Resource Sharing Fairness – User Quotas Endpoint-Independent Mapping & Filtering (Full Cone NAT) Hair-pinning support Connectivity between IPv6 clients and IPv4 destinations Translation between IPv6 and IPv4 Connection of IPv6 migrated clients to IPv4-only content ©A10 Networks, Inc. 18 Carrier Grade NAT Requirements Requirements Supported Features User can use same NAT address Sticky NAT Fairness in sharing NAT resources per user Configurable User-Quotas for public IP port High application transparency for SIP, P2P et. al. Endpoint-independent mapping & filtering (Full-Cone NAT) To allow inside clients to communicate with each other by using the clients’ outside addresses Hair-pinning To ensure the application continue to work by translating address and port information embedded in the payload Application Layer Gateways (ALG) To offer flexible and granular CGN traffic handling policy Rule-List To provide efficient NAT resource use technique Protocol Port Overloading Carrier grade performance and scalability High performance CGN products, providing up to 155 Gbps Throughput, 100M pps and 256M concurrent sessions. Efficient logging mechanism for large volume CGN logs High performance logging with wide variety of logging options such as traffic logging, port mapping log and more. Collocation of technologies (Multi-play) All technologies (CGN, Fixed-NAT, NAT64, NAT46, Ds-Lite, 6rd) are supported concurrently on a single device ©A10 Networks, Inc. 19 Sticky NAT 192.0.2.99 CGN 192.168.1.1 IPv4 Internet 2001:2::9: 4444 Inside SRC DST TCP 192.168.1.1: 2222 192.0.2.99: 80 UDP 192.168.1.1: 3333 TCP 2001:2::9: 4444 Outside 8.8.8.8 SRC DST TCP 198.18.0.11: 5555 192.0.2.99: 80 8.8.8.8: 53 UDP 198.18.0.11: 5557 8.8.8.8: 53 203.0.113.33: 25 TCP 198.18.2.88: 8888 203.0.113.33: 25 Enabled by default Lasts until all related sessions clear (including EIM/EIF sessions) ©A10 Networks, Inc. 20 User Quotas Reserve Resources for Individual to Provide Predictable Behavior Restrict Individual’s usage to Preserve Resources for Everyone CGN TCP 1000 192.168.1.99 172.19.2.33 User-Quota UDP 1000 ICMP 500 TCP 2000 User-Quota UDP 2000 ICMP 500 TCP 3000 UDP 3000 User-Quota ICMP 500 CGN IPv4 Internet Limit number of NAT port mapping (TCP/UDP/ICMP) per internal user 2001:db8:30::22 ©A10 Networks, Inc. 21 Calculating User Quota Start at 1000 (or 500 or 250) and see if users complain Rough Guess Rule of Thumb Quota ≈ ((NAT_Pool_Address * 64000) / Desired Users) 254 NAT address * 64000 / 10,000 Users = 1625 ports per user Start High (or no quota) and monitor Tabulate from Logging Sample the Session Table regularly Bar-graph results 1. Analyze TCP and UDP separately 2. Find all Unique Inside IP / Port tuples 3. Chose your bucket sizes (e.g., 1-255, 256-511, 512-767,…) 4. For each Inside IP, put in bucket by number of Ports used 5. Set Quota for 95% of users (or 75% or 50%) ©A10 Networks, Inc. 22 Carrier Grade Networking LSN NAT44(4) Configuration Section 2 ©A10 Networks, Inc. 23 Section objectives 5 Parts of Dynamic NAT configuration Alternative: Fixed NAT Troubleshooting NAT(4)44 (i.e., lsn) ©A10 Networks, Inc. 24 Components of a NAT44(4) LSN configuration aka Dynamic-NAT ACOS CGNv6 configuration has five required elements: NAT-Pool Limit-ID Class List of IP addresses / subnets Source Class List Binding Inside/Outside Interfaces Apply LID Packet Inside interface? Class List Bound? NAT Packet NAT Pool? Match in Class List? ©A10 Apply NAT Networks, Inc. 25 Define a NAT Pools Configure NAT pools at the global configuration level cgnv6 nat pool NAT1 192.0.2.224 192.0.2.254 netmask /27 vrid 1 Name of Pool: NAT1 Start Address: 192.0.2.224 End Address(optional): 192.0.2.254 Netmask used for routing advertisements VRID used for HA Includes all addresses, from 224 to 254, inclusive Additional Features (specific to cgnv6 nat pools) cgnv6 nat pool NAT1 exclude-ip 192.0.2.230 [to 192.0.2.235] ©A10 Networks, Inc. 26 Define NAT Pool Group (Best Practice) Configure NAT pool groups at global configuration level cgnv6 nat pool-group NAT-Group member NAT1 member NAT2 member NAT3 Edit Pool Group members while group assigned to LSN-LID Remove member, edit member, re-add member Add new member to add more nat addresses All members must share same VRID group. ©A10 Networks, Inc. Changes affect new sessions, only. 27 Configuring IP address selection algorithms cgnv6 lsn ip-selection round-robin Algorithm for IP address selection from NAT pool is configurable on a global basis Algorithm Selects IP address with the fewest … random (default) round-robin least-used-strict NAT ports of any type (ICMP, TCP, or UDP) used least-udp-used-strict UDP NAT ports used least-tcp-used-strict TCP NAT ports used least-reserved-strict NAT ports of any type reserved least-udp-reserved-strict UDP NAT ports reserved least-tcp-reserved-strict TCP NAT ports reserved least-users-strict users ©A10 Networks, Inc. Only applies to individual pools, not selection of pools within a poolgroup 28 Define LSN Limit IDs (LID) – the policy LID define policy, i.e., the rules Configure LSN-LID at global configuration level cgnv6 lsn-lid 1 source-nat-pool NAT-Group user-quota icmp 50 user-quota udp 250 user-quota tcp 250 cgnv6 lsn-lid 1023 override drop Up to 1023 LIDs can be defined ©A10 Networks, Inc. 29 User-Quota and Reserve (config-lsn-lid)# user-quota udp 500 reserve 100 User-Quota reserves full amount on first request More Predictable NAT Behavior User-Quota Reserve reserves in chunks More Efficient NAT Pool Usage Good Idea: Align with Port Batching show cgnv6 nat pool statistics ©A10 Networks, Inc. 30 Understanding class lists Classifies/segments address space into groups Set of IP host or subnet addresses and mapping to LSN LIDs 1 list -> 64,000 subnets and 8 million host IP addresses Each entry (row) defines a class Supports IPv4 or IPv6 addresses Define inline or as external file Up to 255 class lists can be created Only 1 can be used for LSN Up to 255 class lists, but only one for LSN Only 1 bound to lsn inside source Matches on IP SRC addresses ©A10 Networks, Inc. 31 Define and Bind LSN Class List Create the class list at global configuration level class-list CL_ CGN1 100.64.1.0/24 lsn-lid 1 100.64.254.123 lsn-lid 2 100.64.8.6/32 lsn-lid 3 0.0.0.0/0 lsn-lid 1023 subnet class host class host class wildcard class File based class list: class-list CL_CGN1 file Everything else the same Bind class list to LSN at global configuration level cgnv6 lsn inside source class-list CL_CGN1 ©A10 Networks, Inc. 32 Configure Inside and Outside LSN interfaces IP Inside NAT Interface: ingress for traffic to be NATed (client side) IP Outside NAT Interface: ingress for return traffic (everything else) More than 1 allowed Watch your routing AX1(config)# interface eth 1 AX1(config-if:Ethernet:1)#ip nat inside AX1(config)# interface ve 200 AX1(config-if:ve:200)#ip nat outside ©A10 Networks, Inc. 33 Fixed-NAT: alternate configuration mechanism Map inside addresses to public address and L4 port range Deterministic allocation L4 ports pre-allocated ✓ User Quota ✓ Less / No logging. ✓ Easier Environment Provisioning? Trade-off: L4 port usage efficiency ©A10 Networks, Inc. 34 Fixed-Nat Dynamic Pool Subscriber 1 IP addr 1 Optional hybrid Fixed/Dynamic max 100 ports Subscriber 2 IP addr 1 Reserves pool each NAT address Try 6000 ports Sticky NAT still applies Dynamic Pool use triggers Logging 100 ports 692 ports NAT IP 1: 1024-1715 NAT IP 1: 1716-2407 . . . <= 5000 Subscriber 87 IP addr 2 NAT IP 1 Dynamic 60536 - 65535 Logging NAT IP 2: 1024-1715 . . . NAT IP 2 Dynamic 60536 - 65535 ©A10 Networks, Inc. 35 Components of a Fixed-NAT configuration ACOS CGNv6 Fixed-NAT configuration has two required elements: Fixed-Nat config with inside IP addresses and NAT addresses Inside/Outside Interfaces Apply NAT Packet Inside interface? NAT Packet Match in Fixed-NAT? ©A10 Networks, Inc. 36 Define a Fixed-NAT Configure Fixed-NAT global configuration level (command on 1 line) cgnv6 fixed-nat inside 100.64.0.2 100.64.15.254 netmask /20 nat 192.0.2.225 192.0.2.254 netmask /27 dynamic-pool-size 5000 vrid 1 Inside (private) addresses: 100.64.0.2 to 100.64.15.254 (4093 users) Outside (NAT, public) addresses: 192.0.2.225 to 192.0.2.254 (30 addresses) Netmask used for routing advertisements Reserved Ports per NAT addr (optional): 5000 VRID used for HA Use ip-list <name> 434 ports allocated to each user to shorten config line ©A10 Networks, Inc. 37 Fixed NAT math ~ 5,500 𝑐𝑙𝑖𝑒𝑛𝑡𝑠 𝒄𝒍𝒊𝒆𝒏𝒕𝒔 = 229.16 ~ 230 𝑷𝒖𝒃𝒍𝒊𝒄_𝑰𝑷𝒔 24 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃𝑠 230 × 23 = 5290 𝑐𝑙𝑖𝑒𝑛𝑡𝑠 Only 210 clients on 24th IP Addr 𝐿4_𝑃𝑜𝑟𝑡𝑠 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 5𝟗, 𝟓𝟏𝟏 𝑷𝒖𝒃𝒍𝒊𝒄_𝑰𝑷 (65535 -1024 -5000) = 𝑢𝑠𝑒𝑑𝑃𝑜𝑟𝑡𝑠 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃 230 × 258 = 59340 (171 × 23) + 5331 unused Ports 59,511 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 ~ 258.74 = 2𝟓𝟖 𝒄𝒍𝒊𝒆𝒏𝒕 230 (9264) 5,500 client, 22 Public_IPs, and 5011 dynamic-pool-size equals 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 23𝟖 , 𝒄𝒍𝒊𝒆𝒏𝒕 2 free IPs, and no waste. ©A10 Networks, Inc. 38 Troubleshooting LSN Confirm ip nat inside/outside show interfaces [ [ethernet 1] or [ve 100] ] Check config (esp. “lsn inside source”, “lsn-lid”, “nat pool-group” ) sh running-config cgnv6 or sh running-config | sec cgnv6\|class Check class lists sh class-list [CL_NAME] Check NAT pools sh cgnv6 nat pool [statistics] Wide screen helpful ©A10 Networks, Inc. 39 Troubleshooting LSN Sessions Check sessions show session [...] show session filter <filter> Clear sessions clear session [all | filter <filter>] Check sessions for internal (NATed) user sh cgnv6 lsn inside-user <user.inside.IP.addr> Check sessions tied to external NAT address sh cgnv6 lsn nat-address <NAT.pool.IP.addr> Check User-Quota related details sh cgnv6 lsn user-quota-sessions [...] ©A10 Networks, Inc. 40 Lab 1 Configuring CGNAT ©A10 Networks, Inc. 41 Carrier Grade Networking LSN Additional Features Section 3 ©A10 Networks, Inc. 42 Section objectives ALGs Static Port Mapping Full-Cone NAT EIM EIF Session User Quotas Hairpinning Stateful Firewall ©A10 Networks, Inc. 43 Application Layer Gateways (ALGs) 192.0.2.9 CGN 192.168.1.1 IPv4 Internet Inside SRC DST TCP/IP 192.168.1.1: 5678 192.0.2.99: 554 L7 ports 6001-6002 Outside SRC DST TCP/IP 198.18.0.11: 7891 192.0.2.99: 554 L7 ports 6001-6002 TCP/IP ©A10 Networks, Inc. DST SRC 198.18.0.11: 6001 192.0.2.99: 8912 44 ALG Support Header Modification SIP External Session Initiation PPTP/GRE SIP App Specific Requirements TFTP SIP PPTP Session Aging FTP DNS ICMP Built in. Not really ALG Protocol FTP TFTP RTSP PPTP SIP ESP H.323 CGN (LSN) Y Y Y Y Y Y Y NAT64 Y Y Y Y Y* Y Y1 DS-Lite Y Y Y Y Y N Y 6rd Y Y Y N Y N Y NAT64-6rd Y Y Y N N N Y Stateless NAT46 N N N N N N Y Fixed-NAT for NAT44 Y Y Y Y Y Y Y Fixed-NAT for NAT64 Y Y Y Y Y Y Y Fixed-NAT for DS-Lite Y Y Y Y† Y N Y * Provides SIP ALG support for NAT64. † Provides PPTP ALG support for Fixed-NAT DS-Lite. ©A10 Networks, Inc. 1 H.323 ALG not fully verified for NAT64 features. 45 Static Port Mapping Override default behaviors (e.g., NAT Pool address selection) Open inbound ports (Port Forwarding) Sticky Nat still applies UDP and TCP, always cgnv6 lsn port-reservation inside 100.64.2.3 80 80 nat 198.18.0.224 8080 8080 Inside Addr: 100.64.2.3 Inside Port Range: 80 to 80 (1 port, UDP and TCP) Outside Addr: 198.18.0.224 Outside Open Ports: 8080 to 8080 ©A10 Networks, Inc. Consider using lsn-lid without NAT Pool and Statefull FW feature 46 Full Cone NAT Full Cone NAT == EIM + EIF Mimics One-To-One NAT ©A10 Networks, Inc. 47 EIM: Endpoint Independent Mapping P:p->Y1:y1 NAT X1:x1->Y1:y1 P:p->Y2:y2 NAT X2:x2->Y2:y2 If EIM: X1:x1 == X2:x2 Reuse inside to outside port mappings Inside client must still initiate 203.0.113.8:7777 198.18.0.11:3333 100.64.53.18:5555 1 Port used 192.0.2.9:8888 SRC DST NAT SRC DST 100.64.53.18:5555 203.0.113.8:7777 198.18.0.11:3333 203.0.113.8:7777 100.64.53.18:5555 192.0.2.9:8888 198.18.0.11:3333 192.0.2.9:8888 ©A10 Networks, Inc. 48 EIF: Endpoint Independent Filtering Opens path back to initiating client (NAT Transparency) Inside client initiates 1st session, outside initiates others 198.18.0.11 At 3333 Requires EIM 203.0.113.8:7777 203.0.113.8:7778 198.18.0.11:3333 192.0.2.9:8888 192.0.2.9:8889 Gaming, Rendezvous servers, SIP (e.g. VOIP) ©A10 Networks, Inc. 49 Configure EIM and EIF (Full Cone NAT) Configured for specific ports cgnv6 lsn endpoint-independent-mapping tcp port 1024 to 65535 cgnv6 lsn endpoint-independent-mapping udp port 1024 to 65535 cgnv6 lsn endpoint-independent-filtering tcp port 1024 to 65535 cgnv6 lsn endpoint-independent-filtering udp port 1024 to 65535 ©A10 Networks, Inc. 50 Session and STUN timers STUN: Session Traversal Utilities for NAT cgnv6 translation [icmp|service|tcp|udp]-timeout <seconds> Set Session Table timeouts service-timeout sets exceptions for specific ports show running-config cgnv6 translation DNS, ICMP – Fast (3s) cgnv6 lsn stun-timeout [tcp|udp] <port> to <port> minutes <num> Set timeout for EIM/EIF (full-cone NAT) sessions Timer starts after Session timeout expires For gaming, set to 4 min cgnv6 lsn alg sip rtp-stun-timeout <minutes> SIP ALG specific STUN timeout ©A10 Networks, Inc. 51 Additional LSN-LID configurations (config-lsn-lid)# user-quota session 500 User-Quota [udp|tcp|icmp] count outside ports used EIM and EIF related sessions count as 1 port User-Quota Session counts Sessions (config-lsn-lid)# conn-rate-limit 100 Maximum connections per second Preservation of CPU and Bandwidth More useful for TCP sessions ©A10 Networks, Inc. 52 Hairpinning ALG, Static Port Mapping, and EIF open inbound ports Hairpinning allows internal hosts to reach those ports 198.18.0.11:3544 By default UDP: filter none (can talk to itself) TCP: filter on self and port ICMP: not possible Use filters to limit cgnv6 lsn hairpinning filter-self-ip ©A10 Networks, Inc. 53 CGN Stateful Firewall ~2% endpoints need static/Public IP Internet GOAL: Provide protection similar to EIM/EIF Problem: ACLs are stateless Solution: Stateful Firewall Rules defined with ACL Client initiation to outside allows reply User Start Unsolicited traffic blocked Server Reply User Networks ©A10 Networks, Inc. 54 Stateful Firewall Configuration (1) Only for unNATed traffic passing through CGN device Not compatible with LSN or NAT64 FTP, SIP, PPTP, RTSP, & TFTP ALGs supported (on by default) Create LSN-LID without source-nat-pool Create Class-list entry for hosts/subnets with Public Address Simple, lightweight, classic firewall. ©A10 Networks, Inc. 55 Stateful Firewall Configuration (2) access-list 101 deny ip any any Need at least 1 rule, but “deny ip any any” is an included last rule interface ve 21 ip stateful-firewall inside interface ve 22 ip stateful-firewall outside access-list 101 Define your Inside and Outside interfaces, and apply the access-list ip stateful-firewall enable Enable the feature ©A10 Networks, Inc. 56 Additional Troubleshooting LSN Check EIM/EIF sessions show cgnv6 lsn full-cone-sessions Clear EIM/EIF sessions clear sessions maybe multiple times Check Session Timeouts show running-config cgnv6 translation ©A10 Networks, Inc. 57 Lab 2 Additional CGN Features ©A10 Networks, Inc. 59 Carrier Grade Networking IPv6 Overview Section 4 ©A10 Networks, Inc. 60 Section objectives What is IPV6 RFC Compliances Understanding IPv6 Addresses IPV6 Features ©A10 Networks, Inc. 61 History 1981 – IPv4 1994 – Initiate IPng development 1998 – First standard - RFC 2460 2003, 2004,2006 – More standards published ©A10 Networks, Inc. 62 IPV6 RFCs RFC 2460 IPv6 Specifications RFC 6146 Stateful NAT64 RFC 4193 Unique Local IPv6 Unicast Addresses RFC 4443 ICMPv6 for IPv6 RFC 4291 IPv6 Addressing Architectures RFC 6434 IPv6 Node Requirements RFC 2375 IPv6 Multicast Address Assignments RFC 3587 IPv6 Global Unicast Address Format RFC 4861 IPv6 Neighbor Discovery RFC 6540 IPv6 Support Required for All IP-Capable Nodes RFC 3849 IPv6 Address Prefix For Documentation RFC 3596 DNS Extensions to Support IP Version 6 RFC 4862 IPv6 Stateless Address Configuration RFC 6147 DNS64 DNS Extensions for NAT64 RFC 4941 Privacy Extensions for SLAAC in IPv6 RFC 1981 Path MTU Discovery for IPv6 ©A10 Networks, Inc. 63 What is IPV6? 128 bit IP addressing scheme 8 groups of 4 hexadecimal digits separated by colons 2001:0DB8:0A10:ABCD:0000:0000:0000:0001/64 USUALLY divided in half 64 bits for Network 64 bits for subnet and host (but can be further sub-netted if needed) Uses “/” to denote network bits by mask(CIDR Like) ©A10 Networks, Inc. 64 Breaking Down a Routable IPV6 Address Abbreviations Leading zeros in quad are optional 2001:0DB8:E800:0000:0260:3EFF:FE47:0001 2001:DB8:E800:0:260:3EFF:FE47:1 Fields of 0 represented as :: but only once. 2001:0DB8:E800:0000:0260:0000:0000:0001 2001:DB8:E800:0:260::1 ©A10 Networks, Inc. 65 IPv6 Addresses to know ::1/128 ::/0 100::/64 The Loopback Address Default Route Discard Prefix (blackhole) 2001::/32 Teredo Tunnel related 2002::/16 6to4 addresses (RFC 3056) 64:ff9b::/96 2001:02## – 2001:b##, 2003:0###-2003:3###, 240#, 260#, 280#, 2a0#, 2c0# “Well Known Prefix” for NAT64 Beginnings of real Global Unicast IPv6 addresses (2016) ©A10 Networks, Inc. 67 More IPv6 Addresses to know fc00::/7 fe80::/10 Multicast Addresses 1111 1111 0000 0010 :: X Site Local Unicast (like RFC 1918) Link Local addresses for NDP Replaces broadcast 8bit Indicator, 4bit Flags, 4bit Scope, 112bit Group ID ff02::1 Multicast, Flag: Well-Known, Scope: Link Local, Group: All Nodes ff02::2 Multicast, Flag: Well-Known, Scope: Link Local, Group: All Routers ff02::1:ffxx:xxxx Solicited Node Multicast Address (part of NDP) ©A10 Networks, Inc. 68 IPv6 “Features” and Terms DNS: AAAA records (Quad-A records) like A record, but for IPv6 NDP (Neighbor Discovery Protocol) replaces ARP NDP routing auto-configuration Neighbor Discovery, Router Solicitation, Router Advertisement Auto-Configuration SLAAC (StateLess Address AutoConfiguration) Based on MAC (think IPX), “Random”(RFC4941), or Semantically Opaque (RFC7217 DHCPv6 SLAAC and DHCPv6 OSPFv3, BGP(4) Multi-protocol extensions. ©A10 Networks, Inc. 69 Working with IPv6 http://[2001:db8:a10:110::100]/ most browsers ping ipv6 2001:db8:a10:100::1 ping -6 2001:db8:a10:100::1 on ACOS many hosts (Windows, Linux) show ipv6 interfaces show ipv6 neighbor show interfaces brief show arp show ipv6 route next hop frequently neighbor’s Link-Local address interface ve 100 manually set Link-Local for easier reading [...] ipv6 address fe80::a10:100:1/64 link-local ©A10 Networks, Inc. 70 Configuring Fragmentation options IPv6 requires Hosts (not Routers) to Fragment IPv6 Hosts perform Path MTU Discovery (RFC8201 and ICMPv6, or RFC4821) IPv4 Hosts don’t know IPv6 rules Mostly handled automatically IPv4 to inside IPv6 hosts fragmented at CGN CGN adjusts TCP MSS to avoid (TCP MSS Clamping options) NAT64 Fragmentation and Fragmentation DF bit Transparency settings for tuning e.g., Lots of half sized frames because extra 20 bytes pushes UDP over limit ©A10 Networks, Inc. 71 Carrier Grade Networking IPv6 Migration (NAT/DNS64) Section 5 ©A10 Networks, Inc. 73 Section objectives Stateless NAT46 Stateful NAT64 and DNS64 NAT64 Prefix DNS64 Virtual Server Configuration 5 Parts of Dynamic NAT64 configuration Need for User Quota Alternative: Fixed NAT Troubleshooting NAT64 ©A10 Networks, Inc. 74 Stateless NAT46 Topology Enables IPv4 clients to reach internal IPv6 servers IPv4 Internet Requires: IPv4 address(es) DNS A and AAAA records Routing ; zone fragment for example.com $TTL 2d ; zone default = 2 days or 172800 seconds $ORIGIN example.com. .... www IN A 192.0.2.99 www IN AAAA 2001:db8:a10::c000:263 DNS IPv6 Servers Maybe use ADC instead? ©A10 Networks, Inc. 75 Stateless NAT46 Define the Prefix cgnv6 nat46-stateless prefix 2001:db8:a10:1::/96 Outside 203.0.113.33 → Inside 2001:db8:a10:1::cb00:7121 Must be /96 Watch your routing on /64 standard networks Define the Mapping (one line) cgnv6 nat46-stateless static-dest-mapping 200.0.0.40 2001:db8:a10:110::140 count 5 vrid 1 Count: define more than 1 mapping VRID used for HA ©A10 Networks, Inc. 76 Stateful NAT64 and DNS64 Enables internal IPv6 clients to reach IPv4 services Requires: Public IPv4 Addresses IPv6 /96 Prefix (subnet) Routing DNS Prefix + IPv4 ADDR routed to CGN device IPv4 Internet DNS64 CGN Strips Prefix for Destination CGN Performs LSN for Source DNS64 Dynamically synthesize AAAA record from A record IPv6 Clients Can be Separate Device ©A10 Networks, Inc. 77 A10 DNS64 Implementation DNS Front End VIP-DNS64 port 53 dns-udp SG-DNSV4 DNS64 Synthesizing Only No DNS Resolution Virtual-Server, vPort, Service-Group, Servers DNS1 IPv4 and IPv6 DNS Servers are Supported Up to 32 DNS Servers in the backend 53 udp DNS Template controls behavior AAAA first then A query (default) A only Parallel AAAA & A Support for AAAA, A, CNAME, SRV & PTR records ©A10 Networks, Inc. DNS1 53 udp 78 NAT64 & DNS64 Traffic Flow 1 2 AAAA Query www.example.com AAAA Query www.example.com Empty Record / Error 3 A Query www.example.com AAAA Response: 2001:DB8:122:344::198.51.100.99 4 IPv6 Clients DNS64 virtual-server NAT64 IPv6 Prefix: 2001:DB8:122:344::/96 IPv4 Internet NAT=192.0.2.2 IPv6 5 Auth. DNS A www.example.com = 198.51.100.99 SIP, SPort: 192.0.2.2, 12129 DIP, DPort: 198.51.100.99, 80 SIP, SPort: 2002:ACE:888:007::101, 1024 DIP, DPort: 2001:DB8:122:344::198.51.100.99, 80 www.example.com 198.51.100.99 IPv4 DNS64 device owns IPv6 Prefix 2001:DB8:122:344::/96 NAT64 owns IPv4 Address Pool 192.0.2.0/27 ©A10 Networks, Inc. 79 NAT64 Prefix cgnv6 nat64 prefix 2001:db8:a10:624::/96 vrid 1 VRID used for HA Must be /96 mask Prefix routed by local IPv6 network to CGN 2001:db8:a10::198.100.51.99 is human readable for 2001:DB8:122:344::c664:3363 and implies /96 Can use “Well Known Prefix” for NAT64 - 64:ff9b::/96 Can use subnet from allocation ©A10 Networks, Inc. 80 DNS64 Virtual Server - Define real servers and service group Configure cgnv6 servers cgnv6 server LOCAL_DNS11 203.0.113.11 port 53 udp Name: LOCAL_DNS11 IP Address: 203.0.113.11 Port and Type: 53 udp Name used inside ACOS, like a function, to refer to entry IP ADDR reachable from ACOS data interfaces Configure cgnv6 service-group cgnv6 service-group DNSV4 udp member LOCAL_DNS11 53 Name: DNSV4 Type: udp (connectionless) Members: up to 32 cgnv6 server/port ©A10 Networks, Inc. 81 DNS64 Virtual Server - Define Templates and Dedicated NAT Pool cgnv6 template dns TP_DNS64_SETTINGS dns64 enable Name: TP_DNS64_SETTINGS Options: min config: dns64 enable Behavior of specific DNS64 virtual server controlled by template Create NAT Pool (dedicated to DNS64) ip nat pool DNS64_POOL 192.0.2.53 192.0.2.53 netmask /32 vrid 1 Name of Pool: DNS64_POOL Start Address: 192.0.2.53 End Address(required): 192.0.2.253 Netmask used for routing advertisements VRID used for HA (must match virtual server) ©A10 Networks, Inc. Notice: this is an ip nat pool, not cgnv6 82 DNS64 Virtual Server - Define Virtual Server and vPort cgnv6 dns64-virtualserver LOCAL_DNS 2001:db8:a10:100::53 vrid 1 port 53 dns-udp First line is global config level. VRID source-nat pool DNS64_POOL at dnsvserver level. service-group DNSV4 Service-group at vport level. template dns TP_DNS64_SETTINGS Name: LOCAL_DNS VIP: 2001:db8:a10:100::53 VRID used for HA vPort and Server type: 53, type dns-udp Min vPort Config shown for accessing IPv4 DNS servers ©A10 Networks, Inc. Config elements referenced by name 83 Components of a NAT64 LSN configuration aka Dynamic-NAT ACOS CGNv6 configuration has five required elements: NAT-Pool Limit-ID Class List of IP addresses / subnets Source Class List Binding Inside/Outside Interfaces Prerequisite: NAT64 Prefix Apply LID Packet Inside interface? Class List Bound? NAT Packet NAT Pool? Match in Class List? ©A10 Apply NAT Networks, Inc. 84 Define a NAT Pools Configure NAT pools at the global configuration level cgnv6 nat pool NAT1 192.0.2.224 192.0.2.254 netmask /27 vrid 1 Name of Pool: NAT1 Start Address: 192.0.2.224 End Address(optional): 192.0.2.254 Netmask used for routing advertisements VRID used for HA Includes all addresses, from 224 to 254, inclusive Additional Features (specific to cgnv6 nat pools) VRIDs of various elements must match cgnv6 nat pool NAT1 exclude-ip 192.0.2.230 [to 192.0.2.235] cgnv6 nat pool NAT2 192.0.2.208 netmask /28 addresses 208-223 ©A10 Networks, Inc. 85 Define NAT Pool Group (Best Practice) Configure NAT pool groups at global configuration level cgnv6 nat pool-group NAT-Group member NAT1 member NAT2 member NAT3 Edit Pool Group members while group assigned to LSN-LID Remove member, edit member, re-add member Add new member to add more nat addresses All members must share same VRID group. ©A10 Networks, Inc. Changes affect new sessions, only. 86 Configuring IP address selection algorithms Algorithm for IP address selection from NAT pool is configurable on a global basis cgnv6 lsn ip-selection round-robin Algorithm Selects IP address with the fewest … random (default) round-robin least-used-strict NAT ports of any type (ICMP, TCP, or UDP) used least-udp-used-strict UDP NAT ports used least-tcp-used-strict TCP NAT ports used least-reserved-strict NAT ports of any type reserved least-udp-reserved-strict UDP NAT ports reserved least-tcp-reserved-strict TCP NAT ports reserved least-users-strict users ©A10 Networks, Inc. Only applies to individual pools, not selection of pools within a poolgroup Used by LSN NAT and NAT64 87 Define LSN Limit IDs (LID) – the policy LID define policy, i.e., the rules Configure LSN-LID at global configuration level cgnv6 lsn-lid 1 source-nat-pool NAT-Group user-quota icmp 50 user-quota udp 250 user-quota tcp 250 cgnv6 lsn-lid 1023 user-quota icmp 0 user-quota udp 0 user-quota tcp 0 Up to 1023 LIDs can be defined ©A10 Networks, Inc. 88 User-Quota and Reserve (config-lsn-lid)# user-quota udp 500 reserve 100 User-Quota reserves full amount on first request More Predictable NAT Behavior User-Quota Reserve reserves in chunks More Efficient NAT Pool Usage Good Idea: Align with Port Batching show cgnv6 nat pool statistics ©A10 Networks, Inc. 89 Understanding class lists Classifies/segments address space into groups Set of IP host or subnet addresses and mapping to LSN LIDs 1 list -> 64,000 subnets and 8 million host IP addresses Each entry (row) defines a class Supports IPv4 or IPv6 addresses Define inline or as external file Up to 255 class lists can be created Only 1 can be used for NAT64 LSN Up to 255 class lists, but only one for NAT64 Only 1 bound to nat64 inside source Matches on IP SRC addresses ©A10 Networks, Inc. 90 Define and Bind LSN Class List Create the class list at global configuration level class-list CL_ CGN1 2001:db8:a10::/64 lsn-lid 1 subnet class 2001:db8:a10::73 lsn-lid 2 host class 2001:db8::19/128 lsn-lid 2 host class File based class list: class-list CL_CGN1 file Everything else the same wildcard class ::/0 lsn-lid 1023 Bind class list to LSN at global configuration level cgnv6 nat64 inside source class-list CL_CGN1 ©A10 Networks, Inc. 91 Configure Inside and Outside NAT64 LSN interfaces IP Inside NAT Interface: ingress for traffic to be NATed (client side) IP Outside NAT Interface: ingress for return traffic (everything else) More than 1 allowed Watch your routing AX1(config)# interface eth 1 AX1(config-if:Ethernet:1)# ipv6 nat inside AX1(config)# interface ve 200 AX1(config-if:ve:200)# ip nat outside ©A10 Networks, Inc. 92 Fixed-NAT: alternate configuration mechanism Map inside addresses to public address and L4 port range Deterministic allocation L4 ports pre-allocated ✓ User Quota ✓ Less / No logging. ✓ Easier Environment Provisioning? Trade-off: L4 port usage efficiency IPv6 Challenge: non-sequential inside addressing ©A10 Networks, Inc. 93 Components of a Fixed-NAT configuration ACOS CGNv6 Fixed-NAT configuration has two required elements: Fixed-Nat config with inside IP addresses and NAT addresses Inside/Outside Interfaces Apply NAT Packet Inside interface? NAT Packet Match in Fixed-NAT? ©A10 Networks, Inc. 94 Define a Fixed-NAT Configure Fixed-NAT global configuration level (command on 1 line) cgnv6 fixed-nat inside 2001:db8:a10::6440:2 2001:db8:a10::6440:ffe netmask 96 nat 192.0.2.225 192.0.2.254 netmask /27 dynamic-pool-size 5000 vrid 1 Inside (private) addresses: 4093 address Outside (NAT, public) addresses: 192.0.2.225 to 192.0.2.254 (30 addresses) Netmask used for routing advertisements Reserved Ports per NAT addr (optional): 5000 Use ip-list <name> VRID used for HA to shorten config line 434 ports allocated to each user ©A10 Networks, Inc. 95 Fixed NAT math ~ 5,500 𝑐𝑙𝑖𝑒𝑛𝑡𝑠 𝒄𝒍𝒊𝒆𝒏𝒕𝒔 = 229.16 ~ 230 𝑷𝒖𝒃𝒍𝒊𝒄_𝑰𝑷𝒔 24 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃𝑠 230 × 23 = 5290 𝑐𝑙𝑖𝑒𝑛𝑡𝑠 Only 210 clients on 24th IP Addr 𝐿4_𝑃𝑜𝑟𝑡𝑠 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 5𝟗, 𝟓𝟏𝟏 𝑷𝒖𝒃𝒍𝒊𝒄_𝑰𝑷 (65535 -1024 -5000) = 𝑢𝑠𝑒𝑑𝑃𝑜𝑟𝑡𝑠 𝑃𝑢𝑏𝑙𝑖𝑐_𝐼𝑃 230 × 258 = 59340 (171 × 23) + 5331 unused Ports 59,511 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 ~ 258.74 = 2𝟓𝟖 𝒄𝒍𝒊𝒆𝒏𝒕 230 (9264) 5,500 client, 22 Public_IPs, and 5011 dynamic-pool-size equals 𝑳𝟒_𝑷𝒐𝒓𝒕𝒔 23𝟖 , 𝒄𝒍𝒊𝒆𝒏𝒕 2 free IPs, and no waste. ©A10 Networks, Inc. 96 Troubleshooting NAT64 Confirm ip nat inside/outside show interfaces [ [ethernet 1] or [ve 100] ] Check config (esp. “lsn inside source”, “lsn-lid”, “nat pool-group” ) sh running-config cgnv6 or sh running-config | sec cgnv6\|class Check class lists sh class-list [CL_NAME] Check NAT pools sh cgnv6 nat pool [statistics] Wide screen helpful ©A10 Networks, Inc. 97 Troubleshooting NAT64 Sessions Check sessions show session Check sessions for internal (NATed) user sh cgnv6 nat64 inside-user {user.inside.IP.addr} Check sessions tied to external NAT address sh cgnv6 nat64 nat-address {NAT.pool.IP.addr} Check User-Quota related details sh cgnv6 nat64 user-quota-sessions [...] ©A10 Networks, Inc. 98 Lab 3 – Configuring NAT64/DNS64 ©A10 Networks, Inc. 99 Carrier Grade Networking NAT64 Additional Features Section 6 ©A10 Networks, Inc. 100 Section objectives ALGs Static Port Mapping Full-Cone NAT EIM EIF Session User Quotas Hairpinning ©A10 Networks, Inc. 101 Application Layer Gateways (ALGs) 192.0.2.9 CGN 2001:db8::1 IPv4 Internet Inside SRC DST TCP/IP [2001:db8::1]:5678 192.0.2.99: 554 L7 ports 6001-6002 Outside SRC DST TCP/IP 198.18.0.11: 7891 192.0.2.99: 554 L7 ports 6001-6002 TCP/IP ©A10 Networks, Inc. DST SRC 198.18.0.11: 6001 192.0.2.99: 8912 102 ALG Support Header Modification SIP External Session Initiation PPTP/GRE SIP App Specific Requirements TFTP SIP PPTP Session Aging FTP DNS ICMP Built in. Not really ALG Protocol FTP TFTP RTSP PPTP SIP ESP H.323 CGN (LSN) Y Y Y Y Y Y Y NAT64 Y Y Y Y Y* Y Y1 DS-Lite Y Y Y Y Y N Y 6rd Y Y Y N Y N Y NAT64-6rd Y Y Y N N N Y Stateless NAT46 N N N N N N Y Fixed-NAT for NAT44 Y Y Y Y Y Y Y Fixed-NAT for NAT64 Y Y Y Y Y Y Y Fixed-NAT for DS-Lite Y Y Y Y† Y N Y * Provides SIP ALG support for NAT64. † Provides PPTP ALG support for Fixed-NAT DS-Lite. ©A10 Networks, Inc. 1 H.323 ALG not fully verified for NAT64 features. 103 Full Cone NAT Full Cone NAT == EIM + EIF Mimics One-To-One NAT 198.18.0.11:3544 ©A10 Networks, Inc. 104 EIM: Endpoint Independent Mapping P:p->Y1:y1 NAT X1:x1->Y1:y1 P:p->Y2:y2 NAT X2:x2->Y2:y2 If EIM: X1:x1 == X2:x2 Reuse inside to outside port mappings Reduce number of session entries (because of reuse) Inside client must still initiate 203.0.113.8:7777 198.18.0.11:3333 [2001:db8::1]:5555 1 Port used 192.0.2.9:8888 SRC DST NAT SRC DST [2001:db8::1]:5555 [64:ff9b::cb00:7108]:7777 198.18.0.11:3333 203.0.113.8:7777 [2001:db8::1]:5555 [64:ff9b::c000:209]:8888 198.18.0.11:3333 192.0.2.9:8888 ©A10 Networks, Inc. 105 EIF: Endpoint Independent Filtering Opens path back to initiating client (NAT Transparency) Inside client initiates 1st session, outside initiates others Requires EIM 198.18.0.11 At 3333 203.0.113.8:7777 203.0.113.8:7778 2001:db8::1:5555 198.18.0.11:3333 192.0.2.9:8888 192.0.2.9:8889 Gaming, Rendezvous servers, SIP (e.g. VOIP) ©A10 Networks, Inc. 106 Configure EIM and EIF (Full Cone NAT) Applies to both NAT44 and NAT64 Configured for specific ports cgnv6 lsn endpoint-independent-mapping tcp port 1024 to 65535 cgnv6 lsn endpoint-independent-mapping udp port 1024 to 65535 cgnv6 lsn endpoint-independent-filtering tcp port 1024 to 65535 cgnv6 lsn endpoint-independent-filtering udp port 1024 to 65535 ©A10 Networks, Inc. 107 Session and STUN timers STUN: Session Traversal Utilities for NAT Applies to both NAT44 and NAT64 cgnv6 translation [icmp|service|tcp|udp]-timeout <seconds> Set Session Table timeouts service-timeout sets exceptions for specific ports show running-config cgnv6 translation DNS, ICMP – Fast (3s) cgnv6 lsn stun-timeout [tcp|udp] <port> to <port> minutes <num> Set timeout for EIM/EIF (full-cone NAT) sessions Timer starts after Session timeout expires For gaming, set to 4 min cgnv6 lsn alg sip rtp-stun-timeout <minutes> SIP ALG specific STUN timeout ©A10 Networks, Inc. 108 Additional LSN-LID configurations Applies to both NAT44 and NAT64 (config-lsn-lid)# user-quota session 500 User-Quota [udp|tcp|icmp] count outside ports used EIM and EIF related sessions count as 1 port User-Quota Session counts Sessions (config-lsn-lid)# conn-rate-limit 100 Maximum connections per second Preservation of CPU and Bandwidth More useful for TCP sessions ©A10 Networks, Inc. 109 Hairpinning Applies to both NAT44 and NAT64 ALG, Static Port Mapping, and EIF open inbound ports Hairpinning allows internal hosts to reach those ports 198.18.0.11:3544 By default UDP: filter-none (can talk to itself) TCP: filter-self-ip-port ICMP: not possible Use filters to limit cgnv6 lsn hairpinning filter-self-ip Most restrictive ©A10 Networks, Inc. 110 Additional Troubleshooting LSN Check EIM/EIF sessions show cgnv6 lsn full-cone-sessions Clear EIM/EIF sessions clear sessions maybe multiple times Check Session Timeouts show running-config cgnv6 translation ©A10 Networks, Inc. 111 Carrier Grade Networking Routing and Networking Section 7 ©A10 Networks, Inc. 113 Section objectives Topologies Pass-Through Out-of-line Application Delivery Partitions Configuring Routing Static Routing BGP OSPF OSPFv3 ©A10 Networks, Inc. 114 CGNAT is about routing Routing between domains must be stopped! Connection only through CGNAT Routing to CGNAT and from CGNAT, not through Supports major routing protocols OSPF, OSPFv3, RIP, RIPng, IS-IS, BGP4+ (and static routing) Active/Active requires routing PBR (Policy Based Routing) on upstream / downstream routers (not ACOS) NAT is not Transparent or Bridging A10 CGN not an endpoint (mostly) User Network1 ©A10 Networks, Inc. User Network2 115 Pass Through IPv4 Internet Easy to configure and test CGNAT devices at boundary i/e-BGP CGNAT devices see all Internet traffic Static routing i/e-BGP Need rules to handle public IPv4 traffic Floating IP Static routing SRC based PBR OSPF / iBGP User Networks ©A10 Networks, Inc. Internal Services User Networks 116 Out of Line IPv4 Internet CGNAT on side of path to Internet i/e-BGP Only NATed traffic (more scale) Floating IP Internal Services SRC based PBR OSPF / iBGP Public Networks ©A10 Networks, Inc. Private Networks 117 Routing View from ACOS IPv4 Internet Even in On The Side, One-Arm Mode CGN sees world as Outside and Inside Egress Floating IP Ingress User Networks ©A10 Networks, Inc. 118 Application Delivery Partitions IPv4 Internet Multi-tenant using tenant’s public IPs Partition autonomous Configure LSN and Logging in private partition Multi-tenant using provider’s public IPs shared partition Inter-Partition Routing aaa.com partition Logging and NAT Pools configured in Shared LIDs and Class-Lists configured in private partitions bbb.com partition ccc.com partition Converge multiple overlapping RFC1918 addresses spaces Likely with Inter-Partition Routing 10.10.0.0/16 ©A10 Networks, Inc. 172.16.0.0/16 172.16.0.0/16 119 Static Route - Egress Simplest configuration Can be configured in GUI (config)# ip route 0.0.0.0 /0 100.64.1.1 10 Destination Network: 0.0.0.0 /0 Next Hop: 100.64.1.1 Metric(optional): 10 (config)# ipv6 route ::/0 <Global_or_LinkLocal_Unicast_Addr> 10 Bi-Directional Forwarding Detection (BFD) supported for ©A10 Networks, Inc. 120 Static Route - Ingress Create VRRP-A Floating-IP vrrp-a vrid 1 floating-ip 100.64.3.1 device-context 1 blade-parameters [. . .] VRID 1 active Set Floating-IP as Next-Hop Floating IP: 100.64.3.1 VRID 1 standby Active-Active needs 2 VRIDs and PBR (Policy Based Routing) on inside router ©A10 Networks, Inc. 121 Egress BGP (part 1) Goal 1: Learn outbound (default?) route Goal 2: Inform network how to get to NAT pool With redundancy Default eBGP / iBGP, your choice router bgp 64500 neighbor 100.64.1.1 [. . .] neighbor 100.64.1.1 prefix-list EXT_NET in [. . .] redistribute ip-nat NAT Pool Floating IP ip prefix-list EXT_NET seq 5 permit 0.0.0.0/0 Protect your routing table ©A10 Networks, Inc. 122 Egress BGP (part 2) NAT Pool can be separate from interface networks IPv4 Internet Recursive Routing can speed up re-convergence vrrp-a vrid 1 floating-ip 100.64.3.1 100.64.0.0/10 100.64.3.11 router bgp 64500 [. . .] redistribute floating-ip redistribute ip-nat route-map TO_FLOATIP 100.64.3.12 Floating IP: 100.64.3.1 NAT Pool route-map TO_FLOATIP permit 1 match group 1 active set ip next-hop 100.64.3.1 ©A10 Networks, Inc. 123 Ingress OSPF Goal 1: Inform inside network of outbound (default?) route Goal 2: Learn how to get to inside user networks With redundancy Use VRRP-A Floating IP to speed re-convergence Need to prevent CGN devices from learning default route from each other VRID 1 active Floating IP VRID 1 standby Default Administrative distance Separate links / OSPF areas Users User Networks ©A10 Networks, Inc. User Networks 124 Ingress OSPF (part 2) router ospf 1 network 100.64.3.0 0.0.0.255 area 0 distance 210 default-information originate always route-map TO_FLOATIP Use of always depends on egress routing VRID 1 active route-map TO_FLOATIP permit 1 match group 1 active set ip next-hop 100.64.3.1 Floating IP: 100.64.3.1 100.64.3.11 vrrp-a vrid 1 floating-ip 100.64.3.1 VRID 1 standby 100.64.3.12 100.64.3.254 User Networks ©A10 Networks, Inc. User Networks 125 Ingress OSPF (alternate config) Dev A1 router ospf 1 default-information originate always route-map TO_FLOATIP distribute-internal floating-ip area 0 cost 10 network 100.64.3.5 0.0.0.0 area 0 Additional network statements for more routers VRID 1 Floating IP: Dev A2 router ospf 1 [...] network 100.64.3.9 0.0.0.0 area 0 active 100.64.3.1 100.64.3.5/30 100.64.3.6/30 Both route-map TO_FLOATIP permit 1 match group 1 active set ip next-hop 100.64.3.1 User Networks ©A10 Networks, Inc. VRID 1 standby 100.64.3.9/30 100.64.3.10/30 User Networks 126 Ingress BGP and Egress OSPF IPv4 Internet Left as an exercise to the reader Combine either with Static Routes Can design All BGP or All OSPF NAT Pool Service Provider Design: Routing with BGP, OSPF for learning Router-ID Default Double BGP: At Least 2 Control CPU Default? Floating IP: 100.64.128.1 Users User Networks ©A10 Networks, Inc. 127 Ingress OSPFv3 Goal 1: Inform inside network route NAT64 Prefix Goal 2: Inform inside network route to DNS64 Goal 3: Learn how to get to inside user networks With redundancy VRID 1 active Using VRRP-A Floating IP to speed re-convergence Floating IP VRID 1 standby Default Users User Networks ©A10 Networks, Inc. User Networks 128 Ingress OSPFv3 (part 2) Process ID must match Tag router ipv6 ospf 1 router-id 0.0.0.1 redistribute nat64 route-map TO_NAT64 redistrib vip 2001:db8:a10::53 floating-IP-forward-address 2001:db8:a10::1 route-map TO_NAT64 permit 1 match group 1 active set ip next-hop 2001:db8:a10::1 interface ve 100 [...] ipv6 address 2001:db8:a10::10/64 ipv6 enable ipv6 router ospf area 0 tag 1 VRID 1 active Floating IP: 2001:db8:a10::1 2001:db8:a10::11 2001:db8:a10::12 2001:db8:a10::254 User Networks ©A10 VRID 1 standby Networks, Inc. User Networks 129 Lab 4 – CGN Routing ©A10 Networks, Inc. 130 Carrier Grade Networking Logging Section 8 ©A10 Networks, Inc. 131 Section objectives Issues in Logging Data Plane Logging Configuration Logging Template Port Batching (v1 and v2) Fixed-NAT Table Export and Logging NetFLOW(IPFIX) ©A10 Networks, Inc. 132 Issues in Logging Law Enforcement Requests Volume of logs (TB per month) Map packet to real person Every connection, IP address, L4 port Recording network activity Start time, Stop time CPU and Network Throughput Intensive Connecting to current infrastructure Control Plane vs. Data Plane Syslog (tcp, udp), RADIUS, NetFLOW, sFLOW Operational Logs vs. Traffic Logs Custom fields (HTTP headers, RADIUS attr) Logging MUST be flexible Every network different ©A10 Networks, Inc. 133 Data Plane Logging: Managing Logging Volume Logging is overhead but critical Logging Template Bottlenecks: single link, single CPU, single server SG-SYSLOG Solution: Balance logging over all Data CPUs Balance over (up to) 32 servers syslog1 514 tcp Servers -> Service-Group -> Logging Template syslog2 514 tcp syslog3 514 tcp ©A10 Networks, Inc. 134 Data Plane Logging: Define real servers and service group Configure cgnv6 servers cgnv6 server SYSLOG01 203.0.113.61 port 514 [udp|tcp] Name: used to reference in config and stats IP Address: IPv4 or IPv6, reachable from DATA interfaces Port and Type: 514, udp or tcp depending on syslog server Configure cgnv6 service-group cgnv6 service-group SG_SYSLOG udp member SYSLOG01 514 Name: SG_SYSLOG Type: udp (must match cgnv6 server type) Members: up to 32 cgnv6 server/port ©A10 Networks, Inc. 135 Logging Template: Provide the flexibility For logging template settings, see documentation Traffic Logging Guide for IPv6 Migration cgnv6 template logging CGN_LOG service-group SG_SYSLOG format [...] facility local7 <- Facility is Syslog RFC parameter severity informational <- Severity is Syslog RFC parameter disable-log-by-destination udp port 53 Bind the logging template cgnv6 lsn logging default-template CGN_LOG Default is for NAT44 or NAT64 Can bind specific templates to specific NAT Pools ©A10 Networks, Inc. 136 Log Template Format Options (message size) Default: ASCII log <135> Jun <135> Jun [ASCII log: ~80 bytes] 9 21:58:19 ax69 NAT-TCP-C: 10.225.3.101:51411 -> 111.67.226.15:51411 9 21:58:23 ax69 NAT-TCP-F: 10.225.3.101:51411 -> 111.67.226.15:51411 Log Type RFC5424: alternate standard syslog Internal IP: Port NAT IP: Port [RFC5424 log: ~110bytes] <191>1 2017-04-05T01:39:43-07:00 1.0.0.1 A1 - LSN:PortAllocated:TCP [110.0.0.100 1078 200.0.0.122 1078] Compact: hexadecimal format [HEX log: 58 bytes] <135> Jun 9 21:59:01 ax69 TC: 0ae10365:c8d3->6f43e2ac:c8d3 Binary: A10 proprietary format [BIN log: 28 bytes] 10001c000000 00004fd35cee0019 880e0ae03656f43 e26fca1fca1f ©A10 Networks, Inc. 137 Combining Log Messages Port Batching (v2 and v1) Separate from User Quota, but should align with User Quota 1st connection triggers allocation, which triggers log message Last freed triggers log message Batched Logging Not to be confused with port-batching. Logs sent when buffer is full or timer expires (default) Disable in cgnv6 template logging Logs sent immediately ACOS(config-logging:CGN_LOG)# batched-logging-disable ©A10 Networks, Inc. 138 Port Batching (v1) ACOS(config)# cgnv6 enable-port-batch-v1 New for ACOS 4.1.2 Must be run before any CGN NAT pools are created ACOS(config:1)# cgnv6 lsn port-batching size ? 1 is default Possible values: 8, 16, 32, … 51 NAT-TCP-B: 110.0.0.100 -> 200.0.0.22:5274,8,3 NAT-TCP-X: 110.0.0.100 -> 200.0.0.22:5274,8,3 ©A10 Networks, Inc. 139 Port Batching (v2) Defined as part of the CGNV6 NAT Pool A10 recommends migrating from v1 to v2 Larger and more efficient port batching v1 and v2 can exist together in same config cgnv6 nat pool NAT1 192.0.0.0 netmask /16 vrid 1 port-batch-v2-size 64 1 is default Possible values: 64, 128, … 4096 NAT-TCP-T: [2001:db8:a10:110::100] -> 200.0.0.165:63680,63743 NAT-TCP-Y: [2001:db8:a10:110::100] -> 200.0.0.165:63680,63743 ©A10 Networks, Inc. 140 Logging To Meet Specific Needs These options set in the Logging Template • Based on legal requirement • Reduces benefit from port-batching To Include Destination information (config-logging:CGN_LOG)# include-destination or (config-logging:CGN_LOG)# log port-mappings disable (config-logging:CGN_LOG)# log sessions (config-logging:CGN_LOG)# format custom (config-logging:CGN_LOG)# custom message session-created “<...>” (config-logging:CGN_LOG)# custom message session-deleted “<...>” Adjust message for ingestion by existing infrastructure (e.g., Sandvine SDE) ©A10 Networks, Inc. 141 Fixed-NAT Table Export cgnv6 fixed-nat create-port-mapping-file Enables the creation (and therefore export) of file Support for 1000 concurrent files show cgnv6 fixed-nat port-mapping-files delete cgnv6 fixed-nat <map-name> export fixed-nat <map-name> [...] Also, extract Fixed-NAT mapping table via aXAPI MIB for the Fixed-NAT mapping table axFixedNatPortMappingPortNatIpAddress axFixedNatPortMappingPortInsideUser axFixedNatPortMappingPortInsideUserIpType axFixedNatPortMappingPortTcpBeginPort axFixedNatPortMappingPortTcpEndPort axFixedNatPortMappingPortUdpBeginPort axFixedNatPortMappingPortUdpEndPort axFixedNatPortMappingPortIcmpBeginPort axFixedNatPortMappingPortIcmpEndPort Index Value 192.168.25.200 192.168.64.2 ipv4 1024 ©A10 2023 Networks, Inc. 1024 2023 1024 2023 14.49.57.50.46.49.54.56.46 142 Fixed-NAT Logging Options Adds logging to Fixed-NAT Optional periodic logging of Fixed-NAT mapping for active Fixed-NAT users log fixed-nat user-ports periodic 1 start-time 11:51 MAC Address Insertion Inclusion of HTTP headers in CGN logs RFC 5424 Format not supported Cookie, Referer, and User-Agent, others by name (e.g. Content-length, etc) Aug 16 04:28:51 AX3000 HTTP: 10.225.3.2:38695<-->40.0.0.1:80,40.0.0.1:80<-->1.1.3.182:38695 Q=1 URL=http://www.a10networks.com/^_ User-Agent=Mozilla/5.0 Gecko/20100101 Firefox/22.0^_ Cookie=A=123; B=456 HTTP request/response byte counts in session deletion log messages Aug 9 05:24:23 AX3000 NAT-TCP-D: 10.225.3.2:38695<-->40.0.0.1:80, 0.0.0.1:80<-->1.1.3.182:38695 REQ_SIZE=1300 RSP_SIZE=15486 ©A10 Networks, Inc. 143 NetFLOW (IPFIX) Alternative to Logging Easier to perform Traffic Accounting analysis Uses more memory (~33% more) but less CPU Binary format NetFlow Monitor SG-NETFLOW ACOS is NetFlow exporter Collector does not respond/acknowledge data Supports NetFlow v9 (default) and IPFIX (NetFlow v10) Uses CGNV6 Service-Group to load-balance Destination can be single IP reachable from Data Interface (but…) Flow Record templates control what is exported netflow1 9996 ucp netflow2 9996 ucp netflow3 9996 ucp Define multiple monitors to segment/filter output to different destinations ©A10 Networks, Inc. 144 NetFLOW(IPFIX) Configure cgnv6 servers and service-group (optional) cgnv6 server NETFLOW01 203.0.113.61 port 9996 udp health-check-disable cgnv6 service-group SG_SYSLOG udp member NETFLOW01 9996 [...] Create / Configure the NetFlow Monitor Destination must be reachable from ACOS data interface (not management) netflow monitor MYNETFLOW destination service-group SG-NETFLOW [...] ©A10 Networks, Inc. 145 NetFLOW Settings `record` settings define what to send See Documentation (SAG) for details `nat44` and `nat64` contain traffic accounting info but sent when mapping is freed `sample` settings focus monitoring `disable-log-by-destination` filters monitoring netflow monitor MYNETFLOW disable-log-by-destination udp port 53 icmp record nat44 record nat64 sample nat-pool CGN121 destination service-group SG-NETFLOW device-context 1 source-address ip 100.0.0.1 Monitor the NetFlow Monitor show netflow monitor ©A10 Networks, Inc. 146 NetFLOW Record Settings ACOS(config-netflow-monitor)# record ? dslite DS-Lite Flow Record Template nat44 NAT44 Flow Record Template nat64 NAT64 Flow Record Template netflow-v5 NetFlow V5 Flow Record Template netflow-v5-ext Extended NetFlow V5 Flow Record Template, supports ipv6 port-batch-dslite DS-Lite Port Batching Event Template port-batch-nat44 NAT44 Port Batching Event Template port-batch-nat64 NAT64 Port Batching Event Template port-batch-v2-dslite DS-Lite NAT Port Batching v2 Event Template port-batch-v2-nat44 NAT44 NAT Port Batching v2 Event Template port-batch-v2-nat64 NAT64 NAT Port Batching v2 Event Template port-mapping-dslite DS-Lite Port Mapping Event Template port-mapping-nat44 NAT44 Port Mapping Event Template port-mapping-nat64 NAT64 Port Mapping Event Template sesn-event-dslite DS-Lite Session Event Template sesn-event-nat44 NAT44 Session Event Template sesn-event-nat64 NAT64 Flow Record Template ©A10 Networks, Inc. 147 Lab 5 – CGN Logging ©A10 Networks, Inc. 148 Carrier Grade Networking Monitoring and Troubleshooting Section 9 ©A10 Networks, Inc. 149 Section objectives Monitoring Logs Performance NAT pool utilization SNMP Traps Troubleshooting Troubleshooting Checklist Session Table and Filtering Axdebug Advanced Troubleshooting ©A10 Networks, Inc. 150 System Log ACOS logs many informational, warning, and error messages. Port/Interface up/down messages Router status and VRRP-A status changes Data Plane Logging Server & service port up/down messages System Monitor messages Hard disk, RAM, CPU usage warnings Temperature warnings Application-specific error messages User-quota exceeded message ACOS# show log ? length master policy | <cr> Number of lines to display show master log Setup Policy Output modifiers ©A10 Networks, Inc. 151 Audit Log ACOS logs administrative actions with username, date, and time stamp. It also logs new administrative sessions. ACOS# audit [ | inc <reg_ex> ] Audit Log Examples <date> [admin] web: [1503433013437215] RESP HTTP status 200 OK <date> [admin] web: [1503433013437215] payload section 1 {"pool": {"start-address": "10.0.30.1", "vrid": "1", "netmask": "255.255.255.254", "pool-name": "CGN10-30"}} <date> [admin] web: [1503433013437215] POST: /axapi/v3/cgnv6/nat/pool <date> [admin] cli: [1.0.0.100:1615] cgnv6 nat pool CGN172-16 172.16.2.1 netmask /28 ©A10 Networks, Inc. 152 ACOS Performance: Memory Usage Display memory utilization (current) ACOS# show memory [system] Total(KB) Free Shared Buffers Cached Usage --------------------------------------------------------------------------4041415 1728952 0 23252 479798 57.00% 47.90% no config 58.80% under load Medium Term: GUI Dashboard > System (https://<ACOS>/gui/#/dashboard/) Long term: SNMP ©A10 Networks, Inc. 153 ACOS Performance: CPU Usage Display cpu utilization ACOS# show cpu [ interval […] ] 1Sec 5Sec 10Sec 30Sec 60Sec -------------------------------------------------------CPU0 6% 7% 7% 9% 9% CPU1 10% 9% 4% 1% 0% CPU2 11% 10% 5% 1% 0% CPU3 10% 9% 5% 1% 0% Medium Term: GUI Dashboard > System (https://<ACOS>/gui/#/dashboard/) Long term: SNMP ©A10 Networks, Inc. 154 Monitoring NAT pool utilization Real time details ACOS# show cgnv6 nat pool statistics ? WORD top brief peaks misc | <cr> Show a specific LSN pool Display the top pool Ips Show Current Users, UDP, and TCP only Show Peak Statistics Show miscellaneous per-IP information Output modifiers LSN Address Pool Statistics: ---------------------------CGN21 Address Users ICMP Freed Total UDP Freed Total Rsvd TCP Freed Total Rsvd ---------------------------------------------------------------------------------------------------------------------200.0.0.2 0 0 0 0 0 16206 16206 0 0 16232 16232 0 200.0.0.3 3 0 0 0 3916 16186 20102 4500 9 20126 20135 4500 [...] ------------------------------------------------------------------------Pool Name Total IPs Total Users Free IPs Used Ips CGN21 126 100 59 67 ------------------------------------------------------------------------- ©A10 Networks, Inc. 155 Monitoring NAT pool utilization (part 2) Long term: SNMP Medium Term: GUI Dashboard > System >> CGN (https://<ACOS>/gui/#/dashboard/cgn) ©A10 Networks, Inc. 156 SNMP Traps ACOS(config)# snmp-server enable traps routing [bgp|ospf|isis] ACOS(config)# snmp-server enable traps snmp [linkdown|linkup|all] ACOS(config)# snmp-server enable traps lsn ? all fixed-nat-port-mapping-file-change per-ip-port-usage-threshold total-port-usage-threshold traffic-exceeded Enable all LSN group traps Enable LSN trap when fixed nat port mapping file change Enable LSN trap when IP total port usage reaches the threshold (default 64512) Enable LSN trap when NAT total port usage reaches the threshold (default 655350000) Enable LSN trap when NAT pool reaches the threshold May need to tweak thresholds ©A10 Networks, Inc. 157 Advanced CGNv6 Monitoring ACOS# show cgnv6 [lsn|nat64] ? alg full-cone-sessions inside-user nat-address port-overloading port-reservations radius statistics system-status user-quota-sessions Displays LSN ALG Status or Statistics Full Cone Sessions All for given LSN user All sessions for given NAT address Displays port-overloading configuration Port Reservation Configuration Display RADIUS Information LSN traffic statistics Displays System Status Per User Statistics ACOS# show cgnv6 lsn statistics Traffic statistics for LSN: --------------------------Total TCP Ports Allocated Total TCP Ports Freed Total UDP Ports Allocated [...] Data Session Created [...] 65046 64907 25000 90046 ©A10 New User NAT Resource Unavailable TCP User-Quota Exceeded UDP User-Quota Exceeded [...] TCP Full-cone Session Created [...] Hairpin Session Created Self-Hairpinning Drop [...] Networks, Inc. 0 0 39934 0 0 0 158 System Log ACOS logs many informational, warning, and error messages. Port/Interface , Router, and VRRP-A status changes Duplicate IP warnings Application-specific error messages User-quota exceeded message First place to check when experiencing issues ACOS# show log [ | inc <reg_ex> ] ACOS# export syslog messages [use-mgmt-port] <URI: ftp://...> ACOS# terminal monitor ©A10 Networks, Inc. 159 Examining running config Examine running config with the following tools ACOS# show run [ | sec ^[0-z] ] ↑ the optional element at the end of this command strips blank lines from the output ACOS# show run | sec <config_element> (e.g., CGN) ACOS# show run <config_element> (e.g., cgnv6 lsn-lid) ACOS# show run | begin <router_elem> (e.g., bgp, router ipv6) ACOS# diff startup-config running-config ACOS# diff start run | inc <\|>\|| ©A10 Networks, Inc. 160 OSI Based Troubleshooting Layer 1-2 show interfaces […] show interfaces brief show ipv6 interfaces Layer 3 show show show show show show show show show show arp ipv6 neighbor ip route ipv6 route run | sec router bgp summary bgp ipv4 unicast bgp ipv6 unicast ip ospf database ipv6 ospf database Layer 4 ACOS# axdebug ? ACOS# telnet <ip> <port> ACOS# show session [...] capture filter-config setting ©A10 Networks, Inc. Dump packets Global debug filter AX Debug Commands 161 Troubleshooting Check-List 1. Check Logs 2. Check Routing a) b) c) d) NAT Pool reachable by Internet NAT64 prefix reachable by inside network Access router sending to CGN “inside” and “outside” interfaces receiving expected traffic 3. Check Class-List a) show running-config cgnv6 [lsn|nat64] • Check “inside source class-list” b) show cgnv6 [lsn|nat64] statistics • Check “No Class-List Match” and “LSN LID” ©A10 Networks, Inc. 162 Troubleshooting Check-List (part 2) 4. Check LSN-LID Configuration 5. Check NAT Pool Group and NAT Pool Configuration a) vrid and `show vrrp-a` b) Addresses, network, and netmask boundries 6. Check Sessions Table 7. Check Packet Flow (axdebug) 8. Check ACLs and DDoS a) show cgnv6 ddos-protection ? ip-entries l4-entries statistics Abnormal IP Entries Abnormal L4 Port Entries DDoS Statistics ©A10 Networks, Inc. 163 Show Sessions Table ACOS# show session ACOS# show session [ipv4|ipv6|...] ACOS# show session ipv4 [dest-port|...] ACOS# show cgnv6 fixed-nat ? alg ALG Statistics full-cone-sessions inside-user Inside User Details nat-address NAT Address Details port-mapping-files statistics Traffic Type Total -------------------------------------------Total Sessions 3714 TCP Established 1853 TCP Half Open 13 SCTP Established 0 [...] Prot Forward Source Forward Dest Reverse Source Reverse Dest Age Hash Flags Type ------------------------------------------------------------------------------------------------Tcp 110.0.0.115:10006 200.0.10.146:80 200.0.10.146:80 200.0.0.88:10006 300 1 NFe0f0r0 LSN ©A10 Networks, Inc. 164 Session filtering Fine tune session monitoring by using reusable filters ACOS(config)# session-filter <filter_name> set ? dest-addr dest-port source-addr source-port ipv6 sip Forward Destination IP Forward Destination Port Forward Source IP Forward Source Port Display ipv6 sessions only SIP sessions Fine tune session clearing by using filters ACOS# clear session filter <filter_name> Example session-filter c1 set source-addr 10.0.1.160 source-mask /28 dest-port 80 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 Reverse Source Reverse Dest 10.0.2.18:80 10.0.2.16:14075 10.0.2.18:80 10.0.2.16:14045 ©A10 Networks, Inc. Age 0 0 Hash Flags Type 1 NSe1 SLB-L7 1 NSe1 SLB-L7 165 axdebug View real time and/or save Saved captured files in pcap format (Wireshark / tcpdump) Captures entire frame axdebug is session based When one packet matches filter, dump all the following packets in the same session Client 10.10.10.30 CGNAT packet1 Server 40.40.40.40 packet2 Src 30.30.30.123 (nat pool) Src port 44444 Dst 40.40.40.40 Dst port 80 Src 10.10.10.30 Src port 35525 Dst 40.40.40.40 Dst port 80 ©A10 Networks, Inc. 166 axdebug filters Build filters to fine tune your capture Multiple conditions within a filter are ANDed, multiple filters are Ored ACOS# axdebug filter-config 1 ACOS(axdebug-filter:1)# ip 1.2.3.4 /32 ACOS(axdebug-filter:1)# port 80 ACOS(axdebug-filter:1)# exit ACOS# axdebug filter-config 2 ACOS(axdebug-filter:2)# proto icmp ACOS(axdebug-filter:2)# exit ACOS# axdebug capture ACOS(axdebug-capture)# ACOS(axdebug-capture)# ACOS(axdebug-capture)# ACOS(axdebug-capture)# brief detail save <file_name> brief save <file_name> ©A10 Networks, Inc. 167 axdebug caveats/reference Data interfaces only Export trace GUI: System > Diagnostics >>> Show AXDebug Files (https://<ACOS>/gui/#/dashboard/) ACOS# show axdebug file ACOS# export axdebug <filename> [...] <URI>/<filename> Export options (part of […]) merged-pcap : default. 1 file of all captures. <filename> automatically given .pcap extension per-cpu : GUI default. Tarball of all captures. <filename> automatically given .tar.gz extension tgz : Output like merged-pcap, but wrapped in tar.gz tarball Check config ACOS# show axdebug status ACOS# show axdebug config ACOS# show axdebug filter ©A10 Networks, Inc. 168 Debug Two sets of utilities Debug message logging function (OSPF, BGP, System) Packet capture function Text output, intended for examining protocol interactions axdebug generally better for packet capture debug packet partially breaks axdebug filters Not officially documented or supported Check status of debug options ACOS# show debug <feature> ©A10 Networks, Inc. 169 Debug Based Packet Capture (part 1) Special use of debug ACOS# show debug Without <feature>, shows debug packet status ACOS# debug packet ACOS# debug monitor [filename] Optional filename for export of debug output ACOS# show debug file ACOS# export debug-monitor <filename> [use-mgmt-port] <URI> Export deletes from system ©A10 Networks, Inc. 170 Debug Based Packet Capture (part 2) ACOS# debug packet ? count detail interface l3-protocol l4-protocol <cr> Maximum packets to capture. Default is 3000 Print packet content Interface to debug Filters, but they don’t quite work Layer 3 protocol as expected Layer 4 protocol ACOS# debug monitor @2598455 i( 1, 100, 10078)> 92f213e9:6ead8c77(0) @2598455 o( 2, 200, 10078)> 92f213e9:6ead8c77(0) @2598456 o( 1, 100, 1a232)> @2598456 o( 1, 100, 1b22d)> len 62 ip 110.0.0.100 > 200.0.8.3 tcp ip 200.0.0.22 > 200.0.8.3 tcp 2749 > 80 A 2749 > 80 A ip 100.0.0.1 > 224.0.0.210 udp 65244 > 65244 len 62 ipv6 2001:db8:a10:100::1 > ff02::d2 udp 65244 > 65244 ACOS# no debug packet Very important. Don’t forget! ©A10 Networks, Inc. 171 Debug Routing Protocol Requires some setup ACOS(config)# ACOS(config)# ACOS(config)# ACOS(config)# router router router router log log log log file file file file per-protocol name routertgt.log rotate 10 size 1 To start debug capture Rotate and Size critical, Or you’ll get locked out of the box ACOS# debug [bgp|ospf|ipv6 ospf] [...] To view the debug log/capture ACOS# show router log file [bgpd|ospfd|ospf6d] To export, use backup log [...] ©A10 Networks, Inc. 172 ShowTech ShowTech is a comprehensive collection of output from many troubleshooting utilities. When contacting A10 Tech Support you will be asked to generate one. CLI: generate and export file to a remote server or view on the screen ACOS# show techsupport [export] [use-mgmt-port] [<remote_destination>] GUI ©A10 Networks, Inc. 173 Exporting the ‘backup log’ Create tarball of logs, system messages, periodic showtechs Can be quite large For A10 Engineering Sometimes requested by Customer Support ACOS# backup log [use-mgmt-port] [<remote_destination>] expedite – allow up to 50% control cpu period <n> - number of days to include (to reduce size. Default is all) stats-data – include system statistics as displayed in the A10 GUI ©A10 Networks, Inc. 174 Lab 6 – CGN Monitoring ©A10 Networks, Inc. 175 Thank You ©A10 Networks, Inc. 176