3 Using IRP
3.1 Getting started
3.1.1 Accessing the system
3.1.2 System dashboard
3.2 Frontend structure
- The menu bar (see Figure 3.3↓) allows quick access to any part of the system via its menu items.
- The sidebar (See section 3.2.1↓) is present on the Dashboard or on any graph or report. Its contents depend on the current page, and can include filters, export functions, etc., as explained in the next section.
- The status bar (see Figure 3.4↓), allows one to access the global search function (Section 3.2.3↓), as well as system events and notifications (See the Events↓ section).
3.2.1 Sidebar
The Delete button cannot be found in the default dashboard. The default dashboard cannot be deleted.
- Configured maximum number of improvements (Max IPv6 Improvements will be shown if IPv6 is enabled)
- Number of Routing Policies improvements
- Number of improvements performed today
- The amount of traffic improved today
- Percentage of prefixes improved today
- Number of operating iBGP sessions
- Number of announcements to the edge router
- Announcements to each from configured routers
- Number of BGP sessions with the providers
- Number of operating BGP sessions with the providers
3.2.2 Failover status
A valid failover license is required
3.2.3 Global search
When displaying the complete results, specific prefixes can be manually removed, or scheduled for re-probing, by using the buttons next to each result (Figure 3.15↓).
3.2.4 Warning bars
3.3 Customizing the dashboard
3.3.1 Custom dashboard gadgets
3.3.1.1 Platform status
3.3.1.2 Interfaces status
3.3.1.3 List of improved prefixes
3.3.1.4 AS-Path problems
3.4 Reports
3.4.1 Platform overview
3.4.2 Platform performance
3.4.3 Loss Improvements
- All destinations that cover good and problematic destinations that registered traffic flowing to during the timeperiod;
- Problem destinations that includes only routes with packet loss and improved by IRP;
- Loss eliminated represents those problem destinations that IRP was able to improve to a better route with zero loss;
- Loss reduced represents those problem destinations that IRP improved but was not able to reduce loss altogether.
3.4.4 Latency Improvements
- Sample destinations that cover good and problematic destinations that IRP probed during selected timeperiod;
- Problematic destinations cover those routes/prefixes that IRP assessed to have excessive latency rates and identified a better route via a different upstream provider;
- 20% or more cover those destinations where IRP was able to identify a route with latency improvements of 20% or more;
- 50% or more cover those destinations where IRP was able to identify a route with latency improvements of 50% or more.
3.4.5 Probe conversion rates
- Commit
- Performance
- Cost
3.4.6 Current improvements
In some specific cases, the “From” and “To” fields will contain the same provider. This is not a platform issue and is related to the Outage detection algorithm specifics. For more details see the Outage detection↑ and VIP Improvements↑ sections.
The “ASN” field can be empty in case there is no information about the AS number (a prefix belongs to) in the IRP ASN dictionary. As soon as the ASN information is available in the dictionary, the field will be filled accordingly.
3.4.7 VIP Improvements
3.4.8 Improvements to Exchanges
3.4.9 Historical records
In some specific cases, the “From” and “To” fields will contain the same provider. This is not a platform issue, and is related to the Outage detection algorithm specifics. Please see the Outage detection↑ section for more details
3.4.10 Providers overall
3.4.11 Provider performance
- a Best (hypothetical) provider that estimates what might be possible to achieve on your network in terms of loss and average latency,
- classification of destinations by distance from your network with the option to review a category of interest,
- filtering by date range allowing review of past data or average performance over longer time intervals,
- a table view with exact details of the data in the report.
3.4.12 Cost overview
This report is available only if the system is running in Cost optimization mode (see Cost optimization↑).
3.4.13 Congestion and outages
- A problem on the specified AS-Pattern is suspected-
- The problem was not confirmed by additional re-probing -
- The problem was confirmed, and all related prefixes were rerouted -
- The problem was confirmed, but no better-performing route has been found
3.4.14 Top volume prefixes
3.4.15 Top volume AS
3.4.16 Top problem AS
3.4.17 Prefix statistics
3.4.18 AS statistics
3.4.19 Country statistics
3.4.20 Bandwidth by peer
3.4.21 Current inbound improvements
3.4.22 Inbound Improvements history
3.4.23 Probes today
3.4.24 Monitors status
3.5 Graphs
Unless otherwise noted, all graphs are plotted using 5 minute intervals.
3.5.1 Improvements by type
3.5.2 Performance improvements
3.5.3 Probed prefixes and Improvements
3.5.4 New and retry improvements
3.5.5 Improvements by probing source
3.5.6 Prefixes rerouted from provider
3.5.7 Prefixes rerouted to provider
3.5.8 Improvements by provider
Improvements by provider graph categorizes improvements by performance and cost. If cost mode is disabled this graph shows the same data as Prefixes rerouted to provider graph.
3.5.9 Performance improvements by provider
3.5.10 Commit improvements by provider
3.5.11 Total and Improved traffic
3.5.12 Bandwidth usage by provider
3.5.13 Providers bandwidth usage
3.5.14 Bandwidth usage and improvements
3.5.15 Total bandwidth usage
3.5.16 Inbound traffic distribution
3.6 Routing Policies
- Priority of a policy.
Priority specifies what policy to use in case of overlapping prefixes as might be the case of a large aggregate prefix policy extending over an ASN policy
- The prefix/ASN to which the policy was applied.
- A note to describe the policy.
- The ASN of the prefix to which the policy was applied.
- The status of the VIP reprobing (enabled/disabled).
- The type of the policy ( allow/deny/static).
- Providers which are affected by the policy.
- Time passed after the last probe was performed towards this prefix.
- The time left before the next scheduled probe towards this prefix.
- From and To details of an existing improvement relating to this policy.
-
The available actions for the policy. These include:
-
On-demand probing
-
Editing the routing policy
-
Enabling the routing policy
-
Disabling the routing policy
-
- Prefix/ASN: The prefix/ASN to which the policy is applied
- Note: A note to describe the policy
- Policy Type: The type of the policy (allow/deny/static)
- A community to mark improvements
- A flag to set if policy is VIP
- The policy status (enabled/disabled)
- A flag to indicate if an ASN policy should propagate to downstream ASN.
- A flag indicating if a global improvement allowed.
- Priority slider or text-box will set a policy’s priority.
- The Providers for which the policy should be respected
- Cascade flag for ASN policies that indicate if the policy should be enforced only for this AS or also for downstream AS. If cascading is enabled it ensures that the policy is enforced for all traffic that will eventually be routed through this AS.
3.7 Flowspec policies
Flowspec must be enabled for BGPd to announce them.
- A note to describe the policy.
- A source ASN/prefix and port(s) for matching packets.
- A destination prefix and port(s) for matching packets.
- DSCP traffic classification value.
- The policy action (Throttle, Drop, Redirect or Redirect IP).
- Redirect IP or Provider for redirect policies.
- Protocols of matching packets, for example TCP, UDP or ICMP.
- Rate limits in Mbps for Throttle policies.
- Notes to describe the policy
- Status to set if policy is Enabled or Disabled
- Source ASN/Prefix/Port(s): The source ASN/prefix andport(s) of the IP packets that match. A prefix in CIDR notation or a single IP address should be provided. Multiple valid TCP/UDP ports can be provided as well as port ranges.
One Flowspec rule is created for each of the prefixes in the designated AS. ASN Flowspec policies can be setup only on the source of IP packets.
- Destination Prefix/Port: The destination prefix/port attribute of the IP packets that match. Same rules as for Source Prefix/Port(s) apply.
- Protocols: Packet protocols that match the policy. Can be any combination of TCP, UDP and ICMP.
- Policy Type: The type of the policy (Throttle, Drop or Redirect)
- Provider specifies one of the provider identifiers where traffic will be redirected. The provider is set only for Redirect policies.
In order for Redirect policies to be implemented on routers a community value must be assigned to them and VRF must be configured on the router itself. Consult Noction support for details.
- Rate limits the allowed bandwidth usage for matching traffic. The value is set only for Throttling policies. The rate specifies a number in the range 1-4200 Mbps.
In case the provided Flowspec policy attributes are incomplete or invalid on attempting to submit it a warning will be raised similarly as depicted in the popup.
3.8 Throttling excessive bandwidth use with Flowspec
Flowspec must be enabled for BGPd to announce them.
3.9 Maintenance windows
- Current color-coded status of the maintenance window where Red and Orange depict unloading and actual maintenance phases while Blue and Green depict future planned windows and past finished windows correspondingly.
- Begin and End date-times of maintenance windows.
- Provider or router under maintenance.
- Withdraw Improvement option enables or disables withdrawal of existing Outbound Improvements to that provider.
- Seconds to Unload defines time interval in seconds prior to beginning of the maintenance window when IRP starts to unload outbound traffic from provider.
If Seconds to Unload/Seconds to Prepend time intervals set to zero IRP does not perform corresponding action.
When seconds to unload is specified it should be at least 5 minutes (300 seconds) long with larger time intervals allowing IRP more time to assess and reroute traffic flowing through provider with scheduled maintenance window. Very short time intervals might not have the desired effect since usually an IRP optimization cycle takes 2-3 minutes to finish.
- Seconds to Prepend defines time interval in seconds prior to beginning of the maintenance window when IRP announces all inbound prefixes with maximum prepends to provider in order to deflect inbound traffic towards other providers.
3.10 Events
3.11 Troubleshooting
3.11.1 Traceroute
3.11.2 Looking glass
3.11.3 Whois
- Hostname: fully qualified domain name, e.g: “domain.com”
- IP: valid IP address, e.g: “10.20.30.40”
- IP Block: any valid prefix, in CIDR format, e.g: “10.20.30.40/24”
- ASN: valid ASN, using the following format: “AS1234”
3.11.4 Prefix probing
3.12 Configuration editor
-
Text boxes, which can hold IP addresses, provider names and numerical values
-
Auto-complete boxes, used for parameters that can take a limited set of values
-
Auto-complete list boxes, usually containing a list of IPs / prefixes (in CIDR format) / ASNs
-
Buttons
-
Sliders, used to select a value from a predefined range
-
Drop-down lists
-
Toggle buttons (used for specific algorithms and BGP peers)
- Provider control buttons, can be used to suspend, resume, stop, or remove a provider
3.12.1 Global configuration
- Improvement mode (global.improve_mode↓)
- Management interface (global.master_management_interface↓)
- BGP mode (Intrusive / Non-intrusive, see global.nonintrusive_bgp↓)
- Probing interface(s). See global.master_probing_interface↓
- Prefix aggregation. If this parameter is enabled, the system operates at aggregate level, up to the Maximum aggregate mask (see: global.aggregate↓, global.agg_ipv4_max↓, global.agg_ipv6_max↓)
- prefixes(global.ignorednets↓),
- ASNs (global.ignored.asn↓),
- BGP Community attributes that mark prefixes/routes to ignore (global.ignored_communities↓).
Failover license is required for Failover tab to be available.
- Failover timer - time period in seconds during which master is considered alive and before slave becomes active if there are no announcements from master (global.failover_timer_fail↓).
- Failback timer - time period before slave node will release control back to master (global.failover_timer_failback↓). This is to protect from failover flapping between master and slave in case of master instability.
- Slave IPv4 address - indicates to master what is the slave node (global.failover_slave.ip↓). Master uses this address to setup SSH connections and sync its own configuration files.
- Slave SSH port - indicates the TCP port number for SSH on the slave node (global.failover_slave.port↓). Master uses this port to setup SSH connections and sync its own configuration files.
3.12.2 BGP and Routers configuration
-
BGPd parameters (See also: BGPd Configuration↑, BGPd settings↓):
- BGP mode intrusive/non-intrusive (global.nonintrusive_bgp↓)
- BGP monitor enabled/disabled, this option is useful during DoS/DDoS attacks. BGPd ICMP/SNMP monitors can be disabled on the fly, without restarting the BGPd daemon.
- AS-Path attribute a restore priority (bgpd.as_path↓)
- Remove prefixes on next-hop update (bgpd.improvements.remove.next_hop_eq↓)
- Remove prefixes on aggregate withdraw (bgpd.improvements.remove.withdrawn↓)
-
BGP monitoring settings (See also: BGP Monitoring↑):
- Guard time (bgpd.mon.guardtime↓)
- Holdtime (bgpd.mon.holdtime↓)
- Keepalive (bgpd.mon.keepalive↓)
-
General settings:
- Router name
- ASN to be used for the iBGP session (bgpd.peer.X.as↓)
- Announced local-pref value (bgpd.peer.X.master_localpref↓)
- Local IP address (bgpd.peer.X.master_our_ip↓, bgpd.peer.X.master_our_ipv6↓)
- Neighbor IP address, usually the router’s IP (bgpd.peer.X.peer_ip↓, bgpd.peer.X.peer_ipv6↓)
-
Advanced settings:
- Announced communities to be appended to the Community attribute (bgpd.peer.X.master_communities↓)
- Keepalive (bgpd.peer.X.keepalive↓)
- Announced MED value (bgpd.peer.X.med↓)
- Router ID, mandatory for IPv6 only (bgpd.peer.X.slave_router_id↓)
- Update split feature (More details: bgpd.updates.split↓)
-
Failover settings - the same set of parameters shall be setup for both master and slave nodes. Use the toggle to switch between them.
- Announced communities to be appended to Community attribute (bgpd.peer.X.slave_communities↓, bgpd.peer.X.slave_communities↓)
- Announced LocalPref value (bgpd.peer.X.master_localpref↓, bgpd.peer.X.slave_localpref↓)
- Local IPv4 address (bgpd.peer.X.master_our_ip↓, bgpd.peer.X.slave_our_ip↓)
- BGP session password (bgpd.peer.X.master_password↓, bgpd.peer.X.slave_password↓)
3.12.3 Collector configuration
-
Global collector settings:
- Top volume prefixes per cycle (collector.export.volume.high.top_n↓)
- Minimal traffic volume (collector.export.volume.min↓)
- Minimal traffic volume (%) (collector.export.volume.min_pct↓)
-
Flow collector settings:
- UDP port to listen for NetFlow or sFlow packets (collector.flow.listen.nf↓, collector.flow.listen.sf↓)
- Flow sources (collector.flow.sources↓)
-
SPAN collector settings:
- Capture interfaces (collector.span.interfaces↓)
- Mindelay algorithm enable/disable (collector.span.min_delay↓)
- Mindelay probing queue slots (collector.span.min_delay.probing_queue_size↓)
3.12.4 Core configuration
- Max IPv4 improvements (core.improvements.max↓, core.improvements.max_ipv6↓)
- Standard reprobing period (core.improvements.ttl.retry_probe↓) - the time period after which a specific improvement is being scheduled for re-probing.
- VIP reprobing period (core.vip.interval.probe↓) - defines the VIP prefixes probing interval, in seconds.
- Minimal probe lifetime (core.probes.ttl.min↓) - Ordinary probing will not be performed for a specific prefix if its probe age is lower than this value.
- Allowed latency worsening (core.cost.worst_ms↓)
- Exploring queue slots (core.eventqueuelimit↓)
- Top-N relevant volume prefixes (core.improvements.retry_probe.volume_top_n↓)
- Relevant loss for loss-based improvements (core.performance.loss_pct↓) - a prefix will be improved based on a loss cause only if the packet loss can be decreased by this value (in %)
- Relevant RTT difference (core.performance.rtt.diff_ms↓)
- Relevant RTT difference (%) (core.performance.rtt.diff_pct↓)
- Maximum probe lifetime (core.probes.ttl.max↓)
- Overusage interval (core.overusage.check_interval↓) sets the frequency in seconds of checking for excessive bandwidth use.
- Overusage rule retention (core.overusage.hold_timer↓) sets how much time a rule is kept after bandwidth use returns to normal.
- Prefix BW average time (core.overusage.out.average.period↓) sets the number of hours used to determine the average bandwidth use of a prefix.
- Prefix relevant BW (core.overusage.out.average.relevant_min↓) sets the relevant bandwidth use in Mbps by a prefix before considering any rules for it.
- Overusage throttle multiplier (core.overusage.out.threshold.throttle↓) sets the multiplier to apply to average prefix bandwidth use when setting a rule.
- Overusage threshold multiplier (core.overusage.out.threshold.trigger↓) sets the threshold multiplier used to determine excessive bandwidth use.
- Delta loss to shutdown (core.circuit.high_loss_diff↓) sets threshold to initiate shutting down a provider with circuit issues as a difference between examined provider’s average loss and overall average loss during the given time horizon. Shutdown is attempted only for providers marked accordingly.
- Delta loss to warn (core.circuit.warn_loss_diff↓) sets threshold to raise a warning regarding issues with a provider as difference between examined provider’s average loss and overall average loss during the given time horizon. Usually this threshold is significantly lower than the shutdown threshold.
- Delta loss to restore (core.circuit.recover_loss_diff↓) sets low loss level threshold when IRP will restore full functionality over provider that had circuit issues.
- Issues time horizon (core.circuit.hist_interval↓) sets how many minutes in the past IRP looks for probes with loss over both analyzed provider and all the other providers on the network.
- Withdraw improvements on warn (core.circuit.withdraw_on_warn↓) instructs IRP to withdraw outbound improvements over provider with circuit issues when warning threshold is reached. By default improvements are withdrawn only when shutdown threshold is exceeded.
- Restore after (core.circuit.recover_hold_time↓) sets the interval in seconds after which IRP should re-evaluate a provider’s circuit loss and attempt restoring it to normal function. This will be performed only for providers that are configured to attempt to restore after shutdown.
- Restore interval (core.circuit.recover_monitored_intervals↓) sets the interval in minutes during which IRP will periodically re-evaluate a provider’s circuit loss and attempt restoring it to normal function. This will be performed only for providers that are configured to attempt to restore after shutdown.
3.12.5 Commit Control configuration
If NetFlow is used to collect statistics Routers MUST be configured to export statistics every minute (or as often as possible). Some router models have default export intervals for either inactive or active flows of up to 1800 seconds. Big delays cause IRP to react very slowly to increased load and reduce the effectiveness of Commit Control feature.
If NetFlow is used to collect statistics Routers MUST be configured to export statistics every minute (or as often as possible). Some router models have default export intervals for either inactive or active flows of up to 1800 seconds. Big delays cause IRP to react very slowly to increased load and reduce the effectiveness of Commit Control feature.
- Commit Control probing queue slots (core.commit_control.probing_queue_size↓)
- Minimal prefix bandwidth in Mbps (core.commit_control.agg_bw_min↓)
3.12.6 Explorer configuration
- Infrastructure IPs (explorer.infra_ips↓)
- Explorer worker threads (explorer.maxthreads↓)
- Probing algorithms and Traceroute algorithms (explorer.probe.algorithm↓, explorer.trace.algorithms↓)
- High volume task precedence (explorer.high_vol_precedence↓)
- Process max collected IPs (explorer.max_collector_ips↓)
- First probing packets amount (explorer.probing.sendpkts.min↓)
- Adaptive probing packets count (explorer.probing.sendpkts.adaptive_max↓)
- ICMP timeout (explorer.timeout↓)
- Traceroute retry packets and packets per hop (explorer.traceroute.sendpkts↓, explorer.traceroute.retrypkts↓)
- Traceroute minimum and maximum ttl (explorer.traceroute.ttl.min↓, explorer.traceroute.ttl.max↓)
3.12.7 Providers and Peers configuration
The sections below describe the most common groups of provider configuration parameters. Some parameters are repeated on more than one of these groups for convenience.
3.12.7.1 Providers configuration
-
General settings:
- Provider short name (peer.X.shortname↓)
- Router (peer.X.bgp_peer↓)
- Probing IPv4 address (peer.X.ipv4.master_probing↓) or Probing IPv6 address (peer.X.ipv6.master_probing↓)
- Provider’s routing domain (peer.X.rd↓)
- Provider cost per Mbps (peer.X.cost↓)
- Maximum load per interface (peer.X.limit_load↓)
- Provider description (peer.X.description↓)
- Flow agents (peer.X.flow_agents↓)
- Circuit issues detection (peer.X.circuit.control↓) indicating how IRP should react to excessive persistent loss over a particular provider.
-
Commit Control configuration:
- Provider cost per Mbps (peer.X.cost↓)
- Maximum load per interface (peer.X.limit_load↓)
- Provider 95th percentile (peer.X.95th↓)
- Provider inbound 95th percentile (peer.X.95th.in↓)
- Provider 95th calculation mode for inbound traffic (95th calculation modes↑)
- Commit Control status for this provider (peer.X.cc_disable↓)
- CC provider precedence - used for Commit Control and grouping (peer.X.precedence↓)
- Performance/Cost improvements within provider group flag in case Provider load balancing↑ is configured, (peer.X.improve_in_group↓, peer.X.precedence↓)
- Provider billing day (peer.X.95th.bill_day↓)
- Centile value (peer.X.95th.centile↓)
- SNMP-related settings:
-
- Flag whether IPv4 or/and IPv6 is used
- Provider SNMP IPv4/IPv6 address (peer.X.snmp.ip↓, peer.X.snmp.ipv6↓)
- Provider SNMP community (peer.X.snmp.community↓)
- Provider SNMP interface name or index (peer.X.snmp.interface↓); the list of SNMP interfaces is automatically retrieved after Provider SNMP IPv4/IPv6 address field is filled
- SNMP version (peer.X.snmp.version↓)
-
SNMP v3 uses additional parameters depending on security services used for statistics collection:
- SNMP security services selects if Authentication and/or Privacy services are used (peer.X.snmp.seclevel↓)
- SNMP authentication password if authentication is used (peer.X.snmp.auth_password↓)
- SNMP authentication protocol if authentication is used (peer.X.snmp.auth_protocol↓)
- SNMP encryption password if privacy is used (peer.X.snmp.priv_password↓)
- SNMP encryption protocol if privacy is used (peer.X.snmp.priv_protocol↓)
- SNMP Username if authentication is used (peer.X.snmp.auth_username↓)
- SNMP version (peer.X.snmp.version↓)
-
External Monitor settings:
- External monitor status flags for IPv4 / IPv6 (peer.X.mon.enabled↓, peer.X.mon.ipv6.external.enabled↓)
- ICMP/UDP ping monitored IPv4 / IPv6 addresses (peer.X.ipv4.mon↓, peer.X.ipv6.mon↓)
-
Internal Monitor settings:
- Internal monitor status flags for IPv4 / IPv6 (peer.X.mon.enabled↓, peer.X.mon.ipv6.internal.enabled↓)
- BGP session monitoring IPv4 / IPv6 addresses (peer.X.mon.ipv4.bgp_peer↓, peer.X.mon.ipv6.bgp_peer↓)
- BGP MIBs for IPv4 / IPv6 (peer.X.mon.ipv4.internal.mode↓, peer.X.mon.ipv6.internal.mode↓)
- BGP Internal Monitor IPv4 / IPv6 addresses (peer.X.mon.snmp.ip↓, peer.X.mon.snmp.ipv6↓)
- BGP Internal Monitor SNMP Community (peer.X.mon.snmp.community↓)
- SNMP version used for monitoring (peer.X.mon.snmp.version↓)
- SNMP v3 uses additional parameters depending on security services used for monitoring:
-
- SNMP security services selects if Authentication and/or Privacy services are used (peer.X.mon.snmp.seclevel↓)
- SNMP authentication password if authentication is used (peer.X.mon.snmp.auth_password↓)
- SNMP authentication protocol if authentication is used (peer.X.mon.snmp.auth_protocol↓)
- SNMP encryption password if privacy is used (peer.X.mon.snmp.priv_password↓)
- SNMP encryption protocol if privacy is used (peer.X.mon.snmp.priv_protocol↓)
- SNMP Username if authentication is used (peer.X.mon.snmp.auth_username↓)
- SNMP version (peer.X.mon.snmp.version↓)
-
IPv4 / IPv6 settings:
- IPv4 / IPv6 diagnostic hops (peer.X.ipv4.diag_hop↓, peer.X.ipv6.diag_hop↓)
- Probing IPv4 / IPv6 address (peer.X.ipv4.master_probing↓, peer.X.ipv6.master_probing↓)
- Remote provider ASN (peer.X.ipv4.next_hop_as↓), used by the AS-Path restoration algorithm (bgpd.as_path↓)
- Router next-hop address (peer.X.ipv4.next_hop↓), that sets the next-hop value for injected routes related to this provider
3.12.7.2 Internet Exchanges configuration
It is recommended that Noction systems engineers guide you through Exchange configuration process.
- Once the Exchange is setup IRP will retrieve the routing table on the router in order to setup Exchange peering partners. IRP will require access to the router in order to do so.
- Probing IPs for Exchanges no longer require one IP address per peering partner since this number might be impractically big. Instead a combination of probing IP and DSCP value is used to configure the PBRs. A single probing IP in conjunction with DSCP can cover up to 64 peering partners. A sufficient number of probing IPs will be required in order to cover all peering partners on your exchange.
As a rule of thumb it is better to list the PBR rules for transit providers before the (large number of) rules for Internet Exchange peers. If the many PBR rules assigned to peers on a large Internet Exchange are placed at the beginning of the PBR list some routers evaluate all of them before finding the terms for transit providers and this consumes valuable router CPU resources.
- Once the Exchange is configured, IRP will need to reset its BGP session towards the router interconnecting with the Exchange in order to retrieve the required routing table information about all peering partners. Once the BGP session is restarted IRP will start fetching Exchange routing tables.
Give IRP sufficient time (~10 minutes) to fetch Exchange routing tables before continuing configuration.
- IRP offers peering partner autoconfiguration. It retrieves the list of Next Hops (peering partners) on the Exchange with the corresponding list of prefixes individual peers accept.
- Use the Autoconfiguration feature to create an initial configuration for IRP. Review Exchange peering partners before starting the Exchange. Consider enabling periodic auto re-configurations for selected IX in order to update periodically the value of BGP session monitoring IPv4 address from the Exchange and to add new peering partners. Refer global.exchanges.auto_config_interval↓ and peer.X.auto_config↓.
Keep in mind that Autoconfiguration might tamper with all the changes you’ve made directly within IRP config files for peering partners. So, use Autoconfiguration sparingly after you’ve applied manual changes or try avoiding direct configuration file changes altogether.
- Once the Exchange is configured correctly within IRP you will need to apply the PBR rules on the router(s). IRP includes the functionality to generate PBR rules for different router vendors. You will need to review the generated ruleset and apply it on the router manually.
- It is possible that the Autoconfiguration feature on the Exchange has been run with incomplete routing tables or that new peering partners have been connected. This is especially true for very big Exchanges. In this case it is possible that some peering partners are neither in IRP nor router configurations. When IRP detects such a case it raises a warning about newly discovered peering partners like in the image below. At this stage you will need to both re-autoconfigure IRP and extract the PBRs for the router.
- After its creation and up to its complete configuration the Exchange is kept in a Stopped state. When both IRP and the Router PBRs are configured IRP is ready to start optimizing Exchange traffic too. Keep in mind that starting the Exchange will require a BGP session restart.
We must mention that before applying changes to IRP configuration the changes are validated. If errors are detected these will be flagged and the previous good configuration will be kept intact so you will have the option to review the erroneous data and correct.
3.12.7.3 Switch a provider from one router to another
- Suspend the provider using IRP Frontend “Providers and Peers” configuration section. IRP withdraws all existing and stops new improvements towards shutdown provider(s).
- You can remove traffic from the provider (by denying incoming/outgoing announces in the BGP configuration) and then physically re-cable the provider from one router to another. Then configure BGP session towards the provider on new router.
- The PBR rule for the provider should be configured on new router (move provider’s PBR settings from the old router to the new one).
- Change IRP box local PBR rules if any.
- Check if PBR works properly using traceroute tool.
- Modify (/etc/noction/irp.conf) assigned router for the provider (refer to peer.X.bgp_peer↓).
- Modify (/etc/noction/irp.conf) SNMP interface/IP/community for the provider (refer to peer.X.snmp.ip↓, peer.X.snmp.ipv6↓, peer.X.snmp.interface↓, peer.X.snmp.community↓, peer.X.mon.snmp.ip↓, peer.X.mon.snmp.ipv6↓, peer.X.mon.snmp.community↓, peer.X.snmp.version↓, peer.X.snmp.seclevel↓).
- Reload BGPd configuration (affected BGP sessions could be reset).
- Re-activate the provider using IRP Frontend “Providers and Peers” configuration section
- Check IRP BGP Internal and External monitor states. They must be UP.
3.12.8 SNMP hosts configuration
Starting with version IRP 3.7 SNMP is configured as SNMP hosts and provider specific SNMP settings are being deprecated.
-
SNMP-related settings:
- Flag indicating SNMP supported version (snmp.X.version↓)
- SNMP host short name that assigns a recognizable name of the SNMP host in IRP (snmp.X.name↓)
- SNMP host IPv4/IPv6 address (snmp.X.ip↓)
-
SNMP v2 uses additional parameter:
- SNMP host community (snmp.X.community↓)
-
SNMP v3 uses additional parameters depending on security services used:
- SNMP security level selects if Authentication and/or Privacy services are used (snmp.X.seclevel↓)
- SNMP authentication password if authentication is used (snmp.X.auth_password↓)
- SNMP authentication protocol if authentication is used (snmp.X.auth_protocol↓)
- SNMP encryption password if privacy is used (snmp.X.priv_password↓)
- SNMP encryption protocol if privacy is used (snmp.X.priv_protocol↓)
- SNMP Username if authentication is used (snmp.X.auth_username↓)
3.12.9 Notifications and Events
- Configure event parameters and channels
- Subscribe for event notifications
3.12.9.1 Configure notification and events
Only SMTP servers without authentication are currently supported.
- SMS gateway - choose one of the supported gateways.
- Account ID - the public identifier assigned to your account by the SMS gateway. The following figure highlights this value for Plivo.
- Max message size - the maximum length of the SMS text. The SMS will be trimmed by IRP before sending. Subsequently the SMS gateway will split the SMS into multiple parts if required.
- Secret - the secret identifier assigned to your account by the SMS gateway. The following figure highlights this value for Plivo.
- From phone number - the phone number that shows as sender on the receiver’s mobile device. Use a phone number supported by the SMS gateway.
Some SMS gateways enforce the From phone number and will reject numbers that do not comply with their policy.
- Webhook URL - the unique URL the team is assigned by Web hook provider. An example for Slack.com is shown.
- Avatar icon URL - optional parameter that designates an icon (usually PNG or JPEG image are supported) assigned to the Webhook bot in the channel.
- Avatar emoji - an alternative avatar specified in the form of an emoji in “:robot-face:” format.
- Bot name - optional bot name assigned to Webhook bot.
Web hooks support has been tested and verified to work for Slack.com API.
3.12.9.2 Subscriptions
- Topic - the title given to subscription in Notification page and also a textual part of email and SMS notifications.
If SMS notifications are used it is advised to keep the topic short so that there is enough space left to include details about the event.
- Interval between notifications - sets a rate limit of how often an email and/or SMS notification is sent. Value ’No limit’ for the interval depicts no rate limits and all events will trigger a notification.
SNMP Traps notification are not constrained by the interval between notifications. SNMP Traps are sent immediately as they are raised.
The rate limit is enforced per subscription so it is still possible to receive multiple notifications if the subscribed events are part of different subscriptions.
- Destinations - IP address of a trap receiver for SNMP Trap notifications, email addresses, phone numbers and webhook channels. Multiple destinations of same type can be provided. At least one valid destination must be provided per subscription.
IRP parses and recognizes whether a provided destination is a valid IP address, email address, phone number or web hook channel. Web hook channels for example a recognized by detecting that first character of a channel name is the “#” mark.
- Event filters - allows filtering of events by textual description or by IRP component. Remove the filters to see all the subscribed events.
- Subscribed events - the full list of events supported by IRP and tick marks for the events in this subscription. At least one event is required for a valid subscription.
3.12.9.3 Notification text
- IRP server name
- Subscription topic as specified in the subscription
- From email address - as configured in email channel
- Time - date-time of the last event that caused the notification. In case of rate limitation this might be older than the time of the email.
- Textual description of the event and any relating details.
- Older events in this subscription that have been retained due to rate limitations. Keep in mind that all past events are aggregated into a single email or SMS message.
3.12.10 Security Configuration
3.12.10.1 Allowed ranges of IP addresses
3.12.10.2 Users and user directories
3.12.10.3 LDAP and Active Directory
All operations with DNs (initial bind DN, group DNs, user names) are case insensitive and also strip redundant whitespace.
- User directory name - the name assigned to the directory within IRP,
- User directory type - one of the supported User Directories,
- Enabling or disabling a user directory,
- Order specifies when this user directory will be examined by IRP compared to other user directories,
- User directory hostname in the form of either IP address or domain name
- User directory port
- Initial binding user name that IRP uses to authenticate itself,
- Initial bind password assigned to IRP,
Usually bind passwords are not required to access directories. If a password is required and configured via IRP Frontend, it will be scrambled in IRP configuration files. If the password is specified directly in IRP configuration it is provided in clear-text with the condition that it does not start/end with scrambled password encapsulation characters.
- Timeout before failing a connection to this user directory,
- TLS use,
- Certificate verification and
- CA certificate used to verify server’s certificate.
- Base DN and User DN specifies the root distinguished name and user subtree
IRP recognizes BOTH short and full user identifiers. Examples below are both valid directory
entries that will match user "chris" with long name "Mr. Chris Smith":
cn: ops uniqueMember: chris
and
cn: ops uniqueMember: cn=Mr. Chris Smith,ou=employees,ou=People,dc=ops,dc=org
- Admin role groups are user directory objects that list users with Administrator privileges within IRP as compared to all users. Both short and full paths are accepted for Admin role groups.
- User role, Username, Email and Common name fields map User Directory attributes to IRP user attributes,
- User filters can specify any valid LDAP search criteria (without outside parenthesis).
3.12.10.4 TACACS+ directory
- User directory name - the name assigned to the directory within IRP,
- User directory type - one of the supported User Directories in our case TACACS+,
- Enabling or disabling a user directory,
- Order specifies when this user directory will be examined by IRP compared to other user directories,
- User directory hostname in the form of either IP address or domain name
- User directory port
- A shared secret used by IRP and TACACS+ host to secure communications.
3.12.10.5 Internal user directory
User management for external user directories is performed outside IRP using designated tools. The Internal directory is used when external user directories are not available or their use is not desirable.
3.12.11 Frontend configuration
The default currency is “USD - U.S. Dollar”.
3.12.12 Inbound configuration
SPAN does not carry details about the specific interface packets enter your network and as such it is impossible to distribute inbound traffic targeting Inbound prefixes by upstream provider.
3.12.12.1 Inbound prefixes
Note that optimization of transiting traffic feature does not rely on manually configured transit prefixes. Instead filters by ASN and/or prefix are used to constrain the specific prefixes that can be improved.
Splitting larger prefixes into subprefixes offers IRP the opportunity to better control the granularity of traffic shaping changes enabling improvement of smaller chunks of overall traffic. At the same time original prefixes can be announced as before and they will guarantee continuity of the prefix for cases when improvements announced by IRP become unavailable for some reason (for example if smaller prefixes are filtered in some networks).
- prefix belonging to the network (inbound.rule.X.prefix↓),
- router(s) where announcements are sent (inbound.rule.X.bgp_peer↓),
- prefixstatus as each prefix can be disabled in order to exclude from furhter inbound optimization (inbound.rule.X.enabled↓),
- next hop used by improvements for this prefix (inbound.rule.X.next_hop↓),
- an option to instruct IRP whether to fully control the prefix or to only announce improvements when there are any. Refer the section Inbound prefixes full control↓ for further details.
- providers for which this inbound prefix can be optimized (inbound.rule.X.providers↓). It must be noted that if no provider is selected then the prefix is optimized for all providers. Otherwise, the prefix will be optimized only through selected providers.
Inbound prefixes can be found both via Inbound main menu or Configuration → Collectors
- always announces the prefix to the network even if no improvements are made for it and
- marks the prefix/route for all allowed providers accordingly.
3.12.12.2 Inbound prepends
IRP uses 8 prepend levels. This means that base community should be chosen to allow additional 7 values without intersecting with other community values.
Inbound base communities are assigned for each individual provider Configuration → Providers and Peers
3.12.12.3 Routers configuration for Inbound
Complete sample configurations for Cisco, Juniper, Brocade and Vyatta will be provided by Noction Support on request.
3.12.12.4 Inbound Commit Control
Inbound commit control can be found both via Inbound main menu or Configuration → Commit Control
- whether inbound commit control is on or off
- whether review and moderation feature is enabled or disabled
- what is the bandwidth estimation algorithm for inbound and
- high and low limits for inbound in case the 95th mode warrants independent inbound vs outbound optimization.
3.12.12.5 Optimization of transiting traffic
Inbound commit control can be found both via Inbound main menu or Configuration → Commit Control
- Transiting traffic toggle that enables or disables the feature (global.inbound_transit↓)
- Transit Improvements Max sets the maximum number of transit improvements (core.improvements.inbound_transit.max↓)
- Transit ASNs and Transit prefixes specify those segments of the Internet that IRP monitors and optimizes (bgpd.prefixlist.asn↓, bgpd.prefixlist.prefixes↓)
- Transit Improvements TTL min and max set the lower and upper bounds in seconds to keep a transit improvement (core.improvements.inbound_transit.ttl.min↓, core.improvements.inbound_transit.ttl.max↓)
Note that traffic belonging to a specific prefix that fragments a large transit prefix is collected as belonging only to the specific prefix and excluded from the larger prefix traffic statistics. If the specific prefix is also filtered from IRP configuration as for example is the case of a /26 prefix, then the specific prefix will be excluded from optimization of transiting traffic and will not show up in any of the subsequent decisions or reports.
- Transit Top N prefixes sets the number of transit prefixes that are collected each cycle and considered for optimization (collector.flow.export.inbound_transit.topn↓)
- Match transit at egress enables or disable statistics collection for transit prefixes when packets exist the network (collector.flow.process_transit_in_outbound↓)
3.12.13 Wizards
3.12.13.1 Initial Setup
- Specify Infrastructure IP addresses and list of analyzed networks
- Enable and configure Flow or Span Collector to gather network statistics
- Set IRP Improvement mode
- Setup the management interface
- Indicate interfaces that IRP uses for active probing
-
Basic Setup
- Setup Infrastructure IP addresses (explorer.infra_ips↓)
- Setup Analyzed networks (collector.ournets↓)
-
Configure Collector:
-
Irpflowd
- Irpflowd enable/disable(collector.flow.enabled↓)
- NetFlow UDP port(collector.flow.listen.nf↓)
- sFlow UDP port(collector.flow.listen.sf↓)
- Flow Sources(collector.flow.sources↓)
-
Irpspand
- Irpspand enable/disable (collector.span.enabled↓)
- Irpspand interfaces (collector.span.interfaces↓)
- Mindelay status (collector.span.min_delay↓)
- Mindelay probing queue slots (collector.span.min_delay.probing_queue_size↓)
-
Irpflowd
- Improvement mode (global.improve_mode↓)
- Set the managements interface (global.master_management_interface↓)
- Set the probing interface (global.master_probing_interface↓)
-
Providers Setup
- Add a router, see Add Router ↓
- Add two providers, see Add Provider ↓
3.12.13.2 Add Router
- Identify the router and its AS
- Router IP address to setup BGP session
- BGP announcement attributes to distinguish and prioritize IRP improvements on this router
- Router name assigned within IRP for easy identification and
- Autonomous System number of the network (bgpd.peer.X.as↓)
-
Router IPv4 addresses
- Local router IPv4 address (bgpd.peer.X.master_our_ip↓)
- Router IPv4 address (bgpd.peer.X.peer_ip↓)
-
Router IPv6 addresses
- Local router IPv6 address (bgpd.peer.X.master_our_ipv6↓)
- Router IPv6 address (bgpd.peer.X.peer_ipv6↓)
- Router ID (bgpd.peer.X.slave_router_id↓)
-
Router announcement attributes for IRP improvements
- Announced LocalPref value (bgpd.peer.X.master_localpref↓)
- Announced communities(bgpd.peer.X.master_communities↓)
- Announced MED value (bgpd.peer.X.med↓)
3.12.13.3 Add Provider
- Router - Identify the router and routing domain where the provider interconnects with your network
- Provider - Specify what is a provider ASN, short name and description
- IP addresses - Specify and assign provider network addresses that IRP will use
- Commit Control - Optionally set provider usage thresholds to be used for Commit Control
- SNMP host - Specify the SNMP host for this provider
- External monitor - Indicate if an External monitor is used and designated external IP addresses used to verify this provider link status
- Internal monitor - Indicate if an Internal monitor based on BGP session with provider will be used and the corresponding SNMP resource
- Pre-checks - Validate given provider parameters before submitting them
- Choose a Router (peer.X.bgp_peer↓)
-
Provider name
- Provider short name (peer.X.shortname↓)
- Provider description (peer.X.description↓)
-
Provider IPv4 addresses
- Probing IPv4 address (peer.X.ipv4.master_probing↓)
- IPv4 diagnostic hop (peer.X.ipv4.diag_hop↓)
- Router next-hop address (peer.X.ipv4.next_hop↓)
- Router ASN (peer.X.ipv4.next_hop_as↓)
-
Provider IPv6 addresses
- Provider probing IPv6 address (peer.X.ipv6.master_probing↓)
- IPv6 diagnostic hop (peer.X.ipv6.diag_hop↓)
- Router nex-hop IPv6 address (peer.X.ipv6.next_hop↓)
- Router ASN (peer.X.ipv6.next_hop_as↓)
-
Provider Commit Control
- Provider 95th percentile (peer.X.95th↓)
- Provider cost per Mbps (peer.X.cost↓)
- Commit Control provider precedence (peer.X.precedence↓)
- Maximum allowed load per interface (peer.X.limit_load↓)
- Commit Control status for this provider (peer.X.cc_disable↓)
- Allow Performance/Cost Improvements within provider group members (peer.X.improve_in_group↓)
-
Provider Monitoring setup IPv4
- Provider SNMP interface (peer.X.snmp.interface↓)
- Provider SNMP IPv4 address (peer.X.snmp.ip↓)
- Provider SNMP community (peer.X.snmp.community↓)
-
Provider Monitoring setup IPv6
- Provider SNMP interface (peer.X.snmp.interface↓)
- Provider SNMP IPv6 address (peer.X.snmp.ipv6↓)
- SNMP community (peer.X.snmp.community↓)
-
External Monitor setup IPv4
- External Monitor enable/disable (peer.X.mon.enabled↓)
-
Router monitoring IPv4 address(peer.X.ipv4.mon↓)
-
External Monitor setup IPv6
- External Monitor enabled/disabled (peer.X.mon.enabled↓)
-
Router monitoring IPv6 addresspeer.X.ipv6.mon↓)
-
Internal Monitor setup
- Internal Monitor enable/disable (peer.X.mon.enabled↓)
-
Monitoring IPv4 address (peer.X.mon.ipv4.bgp_peer↓)
3.12.13.4 Setup Commit Control
- Commit control enables/disables the feature for a specific provider(peer.X.cc_disable↓)
- 95th target specifies the contracted bandwidth usage target in Mbps (peer.X.95th↓)
- Link upper limit specifies the maximum allowed bandwidth on the link in Mbps (peer.X.limit_load↓). This represents ~80-90% of interface capacity and will be pre-populated for you. Change it as appropriate.
- Provider name (peer.X.shortname↓)
- Commit control status for a specific provider (peer.X.cc_disable↓)
- Configured 95th (peer.X.95th↓)
- Upper limit (peer.X.limit_load↓)
- Load balancing for groups
- Improve in group (peer.X.improve_in_group↓)
- Precedence (peer.X.precedence↓)
3.12.13.5 Setup Failover wizard
- Failover status (global.failover_role↓)
- Slave IP address (global.failover_slave.ip↓)
- Slave SSH port (global.failover_slave.port↓)
- Failover timer in seconds (global.failover_timer_fail↓)
- Failback timer in seconds (global.failover_timer_failback↓)
- Local IP address for both master and slave (bgpd.peer.X.master_our_ip↓, bgpd.peer.X.slave_our_ip↓)
- BGP session password for master and/or slave if any (bgpd.peer.X.master_password↓, bgpd.peer.X.slave_password↓)
- LocalPref for master and slave (bgpd.peer.X.master_localpref↓, bgpd.peer.X.slave_localpref↓)
- Communities for master and slave (bgpd.peer.X.master_communities↓, bgpd.peer.X.slave_communities↓)






