Wanpipe Multi-Link PPP

    The Linux PPP/Multi-Link PPP solution is comprised of:

    1. Linux PPPD daemon
    2. Sangoma AFT A101/2/4/8 T1/E1 & AFT S518/ADSL cards

    Sangoma has updated the PPPD Linux daemon to properly support Multi-Link PPP protocol.  The original pppd-2.4.4 has a major architectual bug that caused it to fail on PPP recovery.   This document will describe how to install and configure Multi-Link PPP with Sangoma cards.

    1. PPPD Release ........................ ppp-2.4.4.5.tgz (2008-06-11)
    2. Installation
    3. Configuration
    4. Operation
    5. pppmon options
    6. Cisco Multilink PPP Configuration

     


    Wanpipe Installation

    1. Download latest STABLE wanpipe release
      -->Dowload wanpipe release
    2. Untar wanpipe releaes
      --> tar xfz wanpipe-<ver>.tgz
    3. Install wanpipe release
      --> cd wanpipe-<ver>
      --> ./Setup install
            Use all default options
    4. Confirm successfull install
      --> wanrouter version
      --> wanrouter hwprobe

     


    pppd Installation

    1. Untar pppd release into /usr/src directory
      --> tar xfz pppd-<ver>.tgz
    2. Compile PPPD
      --> make
    3. Install PPPD
      --> make install

     


    Configuration

    3. Wanpipe Setup/Configuration

    Configure Sangoma Card for TTY mode
        /usr/sbin/wancfg

    Select Card Type: 
        A10x, A30x or S51x          
             
    Choose Protocol:
        TTY

    Configure interface:
        Select TTY MINOR number
        TTY MINOR represents a TTY port.
        Options: 0,1,2 - 8 
        Default: 0

        It binds a WANPIPE device driver to the /dev/ttyWPX device, where X=(0,1,2,..).
           
    For example MINOR number 0 binds a Wanpipe TTY driver to /dev/ttyWP0. Thus, when pppd daemon opens the /dev/ttyWP0 it will reach the device driver whose Minor number is 0.

    Note: TTY_MINOR must differ for each Wanpipe device.

    Save and Exit

    4. Start wanpipe:
    wanrouter start wanpipe1

    Check /var/log/messages.
        You should see this event:
        ...
        w1g1: TTY Driver Init: Major 240, Minor Range 0-7
        w1g1: TTY Sync Dev Minor 0 : /dev/ttyWP0
        ...
       
        Now the driver is ready for pppd connection.

    5. PPPD Setup 

    Create a device node:
    To interface a PPPD daemon to the WANPIPE TTY driver a /dev/ttyWPX X={0,1,3...) device must be created.
       
        ex: mknod -m 666 /dev/ttyWP0 c 240 0
              mknod -m 666 /dev/ttyWP1 c 240 1       
              mknod -m 666 /dev/ttyWP2 c 240 2
                ...
               
            Note: 240 is the Major Number; 0,1,2... are the Minor Numbers

            Note: On newer Linux releases, this is done for you automatically

    Configure PPP Daemon options:
        Create a text file in /etc/ppp/options
        Copy and Paste the following:

        -------CUT HERE ----------------------
        persist
        defaultroute
        asyncmap 0
        sync
        lcp-echo-interval 1
        lcp-echo-failure 5

        nobsdcomp
        nodeflate
        nopcomp
        novj
        novjccomp
        noaccomp -am

        multilink

        #On some CISCO routers we must
        #be in silent mode
        #silent

        #DEBUG Only should be commented out in production
        #nodetach
        #debug
        #kdebug 2

        -------CUT HERE ----------------------


    Bind Wanpipe device to PPP Daemon
    Create a text file /etc/ppp/peers/isp_wanpipeX (X=1 to 16)

        -------CUT HERE----------------------
        ttyWP0          #Bind to WANPIPE device wanpipe1
        sync
        multilink
        #201.1.1.1:201.1.1.2       #Enter IP Address for PPP link here

        #user bonded-isp-username

        -------CUT HERE----------------------
    NOTE: The text files must be the same for all the wanpipe devices being binded.
     

    6. PPPD Operation
    All wanpipe devices should be started before pppd is started.
       wanrouter start

    Once the Wanpipe device is started, PPP connection can be established by calling the pppd call script (created by wancfg):
        pppmon isp_wanpipe1


    Operation

    1. pppmon startup utility

      The pppmon utility is used to start the pppd process in Multi-Link Mode. It will monitor the pppd processes and restart them if certain conditions are reached.  pppmon is critical to multilink reliability.

      --> pppmon isp_wanpipe1 isp_wanpipe2 isp_wanpipe3
       
    2. ppp utility applications 

      --> pppstart
      (first kills pppmon/pppd  and then starts pppmon from init script...)

      --> pppstop
      (kills pppmon pppd)

      --> pppstate
      (sends signal to pppd and greps the logs: displays state of each ppp link)

     


    pppmon Options

    To adjust pppmon options one should open pppmon using vi.  After modifying pppmon options, run make install to re-install new pppmon.
    -> cd ppp-<ver>/
    -> vi scrips/multilink/pppmon
    -> make install
     
    #Enable log rotate/truncate
    #on a specific log file.  If the log file
    #reaches maximum size the file will be
    #truncated.
    #LOGROTATE_FILE=/tmp/log
    #LOGROTATE_MAX_SIZE=5000 #KB


    PING_CHECK_TIMEOUT=120          #Ping check frequency (s)
    PING_CONFIRM_CHECK_TIMEOUT=20    #Ping timeout before confirming ping
    PMON_LOOP_TIMEOUT=1        #E1 check

    #Restart wanrouter if all mlppp 
    #go down to indicate to other side
    #that all ports went down and
    #IPCP will be restarted
    #Options: 0: disable
    #         1: enable
    WANROUTER_RESTART_ON_ALL_DOWN=1   


    #Wanrouter restart timeout
    #before starting up the wanpipe ports
    #This option works in conjunction with
    #above option.
    WANROUTER_DOWN_TIMEOUT=10




    Sample Cisco 1600 Setup

     
     This example setup should be given to an ISP that doesn't
    know how to setup up Mulitlink PPP on a Cisco box :)

      Scenaraio:
     Two Wanpipe adapters connected back to back to a CISCO 1600 via two
    WAN T1 lines, running MULTILINK PPP, in order to bundle two T1 lines
    for geater than T1 throughput.

              1) Enter the CISCO configuration mode
                    Cisco>enable
                    Cisco>password: <enter password>
                    Cisco#
            2) Configure Global Mulitlink PPP protocol
                    Cisco# config
                    Cisco(config)# multilink virtual_template 1
                    Cisco(config)# exit
            3) Configure Serial0 device for Multilink PPP
                    Cisco# config
                    Cisco(config)# interface serial0
                    Cisco(config-if)# encapsulation ppp
                    Cisco(config-if)# no ip address
                    Cisco(config-if)# ppp multilink
                    Cisco(config-if)# no shutdown
                    Cisco(config-if)# exit
            4) Configure Serial1 device for Multilink PPP
                    Cisco(config)# interface serial1
                    Cisco(config-if)# encapsulation ppp
                    Cisco(config-if)# no ip address
                    Cisco(config-if)# ppp multilink
                    Cisco(config-if)# no shutdown
                    Cisco(config-if)# exit
            5) Configure virtual_template interface
                    Cisco(config)# interface virtual_template 1
                    Cisco(config-if)# encapsulation ppp
                    Cisco(config-if)# ip address <local ip> <netmask>
                    Cisco(config-if)# ppp multilink
                    Cisco(config-if)# exit
                    Cisco(config)# exit


    Back to Back situation
    ----------------------
    If you are setting up WANPIPE back to back Multilink
    against an external router:
            Interface (onboard FT1 CSU/DSU):
                    Cable: Back to Back T1 cable (Part number: 624).
            Interface (V35):
                    Cable: Back to Back V34 Cable (Part number: 609)
                    Clocking: Clocking must be set to INTERNAL on the
                              WANPIPE side.
            For all sangoma cables please refer to:
                    http://www.sangoma.com/faqcable.htm