Saturday, February 23, 2008

WAN Links - Sharing Load and Failover - TR069 based configuration

CPE devices provide a feature called 'WAN link load balancing and fail over' facility where they have multiple WAN links to reach Internet. These WAN links are either taken from one ISP or from different ISPs by offices/homes. They provide redundancy capability and also can be configured to provide load sharing.

As far as I know, DSL forum did not define profile for this. I tried to give profile and required configuration parameters needed to configure this feature in CPE from ACS using TR-069 standard.

What constitutes this feature:
  • Multiple WAN links in CPE.
  • WAN links grouped together into multiple bundles.
  • Each bundle having following properties
    • Share the TCP/IP connections load across links in the bundle or just use only one link, user others when current link fails.
    • In case of TCP/IP connections sharing, whether to bring up the all links always or bring up/down based on number of TCP/IP connections at that time - Define high threshold and low threshold in percentages. When number of TCP/IP connections reach high threshold, bring up new link in the bundle. When the connections reach low threshold, bring down one of the expensive links.
  • Each link having following properties
    • Method to use to check liveness : Ping, DNS resolution, None.
    • Domain name, if method chosen is Ping or DNS.
    • Liveness check interval in seconds: Liveness check is done using this interval period.
    • Number of times the livness check should fail before marking the link 'Down'.
    • Link status : UP, Down
    • Cost of the link : 1 to 10 - 1 being highest cost and 10 being lowest cost.
    • WAN interface: Interface identifier or logical identifier identifying the link.
    • Protocol Bindings: Yet time, it is required that some protocol traffic go through some particular link in the bundle. For example, if email server is hosted by one ISP, all email connections should be sent via that link. ISP may not accept emails coming from the site via other ISP links.
  • Each protocol exception record takes following parameters
    • Destination IP address - Range of IP addresses.
    • Protocol - UDP, TCP or UDP & TCP and any other protocol value.
    • Port range: Valid in case of TCP and UDP.
Inner workings:
  • Route dictates the outbound interface for packets.
  • If outbound interface is WAN link, bundle is determined.
  • If this is first packet of connection, then least loaded link is chosen in the bundle. If needed new link is brought up. IP address of chosen link is used for SNAT. Consider protocol bindings in choosing the link.
  • When there are multiple WAN bundles, it is expected that ACS configures routes with source IP address - Source based routing. It enables usage of multiple WAN bundles. Note that there would be multiple default routes - one for each bundle. It is expected that ACS configures source based routes to make use of multiple bundles.
Profile as per above description:
  • internetGatewayDevice.WanSharingBundle.{i}
    • Enable
    • Share or Failover only?: Indicates whether the load is expected to shared or use multiple links for failover only.
    • HighThreshold
    • LowThreshold
    • NumberOfLinksInThisBundle
    • internetGatewayDevice.WanSharingBundle.{i}.link.{i}
      • Enable
      • LinkStatus
      • LivenessMethod : None, Ping, DNS
      • DomainName : If ping or DNS is chosen as liveness method.
      • Liveness interval
      • FailureCount
      • WanInterface : This is Full Qualified WANIPConnection or WANPPPConnection instance under WANDevice.
      • CostOfLink
      • NumberOfProtocolBindings
      • internetGatewayDevice.WanSharingBundle.{i}.link.{i}.ProtocolBinding.{i}
        • Enable
        • MinSourceIPAddress
        • MaxSourceIPAddress
        • MinDestIPAddress
        • MaxDestIPAddress
        • Protocol
        • MinPort
        • MaxPort
These are my high level thoughts. More thinking should go in to make it more generic. I hope that it provided decent introduction for further work.

No comments: