Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    GSM Failover with IPv6

    Scheduled Pinned Locked Moved Routing and Multi WAN
    14 Posts 2 Posters 3.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      risotto
      last edited by

      Hi folks,

      I'm setting up an LTE failover for a primary Cable uplink. The LTE failover is using an MC7355 card, which works perfectly stand-alone. I'm having two issues with configuring a dynamic failover:

      I've added the LTE PPP interface and main ethernet interface (for cable) to a Gateway group. I have a group for IPv4 so far.

      The first issue is that my LAN interface also provides IPv6 connectivity by tracking the WAN interface (the cable uplink). When the failover occurs, IPv4 works correctly, but DNS resolution is down because it favors IPv6. Question:

      • Can the DNS forwarder be configured to favor IPv4 when a failover occurs?

      • Or alternatively, what's a recommended way to deal with this issue?

      In addition to the question above, I'm also having trouble configuring IPv6 on the LTE link (TMobile, they provide IPv6 connectivity). I specified a CGDCONT string specifying IPV4V6 for the APN configuration, but PPP seems to fail configuring an IPv6 interface address.

      I see from the PPP logs that we're attempting to configure the interface, but IPV6CP fails with some errors:

      Dec 10 08:45:27	ppp: [opt2] IPV6CP: LayerFinish
      Dec 10 08:45:27	ppp: [opt2] IPV6CP: state change Req-Sent --> Stopped
      Dec 10 08:45:27	ppp: [opt2] IPV6CP: parameter negotiation failed
      Dec 10 08:45:25	ppp: [opt2] IPV6CP: SendConfigReq #10
      Dec 10 08:45:23	ppp: [opt2] IPV6CP: SendConfigReq #9
      Dec 10 08:45:21	ppp: [opt2] IPV6CP: SendConfigReq #8
      Dec 10 08:45:19	ppp: [opt2] IPV6CP: SendConfigReq #7
      Dec 10 08:45:17	ppp: [opt2] IPV6CP: SendConfigReq #6
      Dec 10 08:45:15	ppp: [opt2] IPV6CP: SendConfigReq #5
      Dec 10 08:45:13	ppp: [opt2] IPV6CP: SendConfigReq #4
      Dec 10 08:45:11	ppp: [opt2] IPV6CP: SendConfigReq #3
      Dec 10 08:45:09	ppp: [opt2] IPV6CP: SendConfigReq #2
      Dec 10 08:45:09	ppp: [opt2] IFACE: Rename interface ng32 to ppp0
      Dec 10 08:45:09	ppp: [opt2] IFACE: Up event
      Dec 10 08:45:09	ppp: [opt2] 29.117.53.7 -> 10.64.64.0
      Dec 10 08:45:09	ppp: [opt2] IPCP: LayerUp
      Dec 10 08:45:09	ppp: [opt2] IPCP: state change Ack-Sent --> Opened
      
      • How is IPv6 properly enabled on an LTE PPP link? What's the right configuration for it?

      Would really appreciate some pointers for the above.

      Thanks!

      1 Reply Last reply Reply Quote 0
      • ?
        Guest
        last edited by

        On mine I don't use IPv6 but I do see it in the log. You have specified on the OPT2 interface to use DHCP6 for IPv6 configuration type?

        1 Reply Last reply Reply Quote 0
        • R
          risotto
          last edited by

          Yes, I have. I also noticed that MPD wasn't using my custom modem init string because the CGDCONT thingy uses quotes. Said quotes need to be escaped in order to work. That was keeping the modem from requesting the right PDP context. It now successfully sets IPV4V6, but MPD still won't configure the opt interface with an IPv6 address. I've definitively tried DHCPV6. Should that work? Somehow I thought MPD would use IPV6CP to set the interface's address, but still failed to enable that properly.

          1 Reply Last reply Reply Quote 0
          • R
            risotto
            last edited by

            I guess there should be a PPP setting for the IPv6 address configuration of the interface, just like there is for IPv4, but there isn't.

            1 Reply Last reply Reply Quote 0
            • ?
              Guest
              last edited by

              I am not much help on these topics. I am wondering about your hardware. Did you have to change the PID or was it working OOB?

              1 Reply Last reply Reply Quote 0
              • ?
                Guest
                last edited by

                Maybe even try the "Track Interface" setting for IPv6

                1 Reply Last reply Reply Quote 0
                • R
                  risotto
                  last edited by

                  Tracking the interface will not do what I think it should do, as it would track another interface, not the WWAN interface itself. I'm using a genuine MC7355, with VID 1199, so no need to get the VID/PIDs changed and the card unlocked.

                  Here's some more logs from my attempt to configure IPv6 with MPD. Note that I had to change the modem init command in the advanced PPP settings to```
                  +CGDCONT=1,"IPV4V6","fast.t-mobile.com"

                  
                  There are 10 SendConfigReq, which all seem to time out and not get a response back. I've reached a bit of an impasse here, as I'm not sure how the peer is supposed to respond and whether the sequence is correct. The address 020d:b9ff:fe3a:496d is made up from my LAN interface's mac address. I think this is correct, as it is not specifying a desired prefix towards the peer, but rather just configuring the link address part of the IPv6 address.
                  
                  

                  Dec 12 09:09:17 gw ppp: [opt2] IPV6CP: SendConfigReq #10
                  Dec 12 09:09:17 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:17 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:17 gw ppp:    ff ff 80 57 01 0a 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:17 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:19 gw ppp: [opt2] IPV6CP: parameter negotiation failed

                  
                  Full log:
                  
                  

                  Dec 12 09:08:59 gw ppp: [opt2] Bundle: Interface ng0 created
                  Dec 12 09:08:59 gw ppp: [opt2_link0] Link: OPEN event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: Open event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: state change Initial --> Starting
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: LayerStart
                  Dec 12 09:08:59 gw ppp: [opt2_link0] device: OPEN event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: running script at label "DialPeer"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 65: set $CallingID ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 66: set $CalledID $Telephone
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 67: if $Telephone == 00000 goto DialNullModem
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 68: set $optimize $OptimizeNextTime
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 69: set $OptimizeNextTime no
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 71: if $optimize == yes goto DialPeer2
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 72: call ModemFind
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1325: set $ErrorMsg ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1326: call ModemFind4
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1370: set $modemCmd ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1371: set $modemCmdTimeout 1
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1372: call ModemCmd0
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1436: print "AT$modemCmd^M "
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: sending
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  41 54 0d 0a                                      AT..           
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1437: match "OK^M " ModemCmdOk
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1438: match ERR ModemCmdErr
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1439: wait $modemCmdTimeout
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0d                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a 4e 4f 20 43 41 52 52 49 45 52 0d              .NO CARRIER.   
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a 0d                                            ..             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a 4f 4b 0d                                      .OK.           
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: matched set "", goto label "ModemCmdOk"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1445: set $modemCmdResult OK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1446: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1373: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1327: if $modemCmdResult == OK return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1327: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 73: if $ErrorMsg == "" goto DialPeer1
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 73: goto DialPeer1
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 77: set $ModTelephone $Telephone
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 78: call ModemIdent
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 347: set $ModemDescription ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 348: set $ModemSetupFunc ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 349: set $ModemAnsSetupFunc ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 350: set $ModemDetectRing ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 351: set $ModemIsAnalog yes
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 352: if $InitString != "" goto ModemIdentCustom
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 352: goto ModemIdentCustom
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 405: set $ModemDescription "Custom modem"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 406: set $ModemSetupFunc CustomSetup
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 407: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 79: if $ModemDescription != "" goto DialPeer2
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 79: goto DialPeer2
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 84: log "Detected $ModemDescription."
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: Detected Custom modem.
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 85: call $ModemSetupFunc
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 499: set $noDialToneSubr GenericNoDialtone
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 500: set $modemCmd ${InitString}
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 501: call ModemCmd2
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1460: call ModemCmd
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1434: set $modemCmdTimeout 3
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1436: print "AT$modemCmd^M "
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: sending
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  41 54 2b 43 47 44 43 4f 4e 54 3d 31 2c 22 49 50  AT+CGDCONT=1,"IP
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  56 34 56 36 22 2c 22 66 61 73 74 2e 74 2d 6d 6f  V4V6","fast.t-mo
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  62 69 6c 65 2e 63 6f 6d 22 0d 0a                bile.com"..   
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1437: match "OK^M " ModemCmdOk
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1438: match ERR ModemCmdErr
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1439: wait $modemCmdTimeout
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0d                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a 4f 4b 0d                                      .OK.           
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: matched set "", goto label "ModemCmdOk"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1445: set $modemCmdResult OK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1446: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1461: if $modemCmdResult == OK return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 1461: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 502: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 86: log "Dialing server at $Telephone..."
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: Dialing server at 99#...
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 87: call ModemDial
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 143: set $dialResult FAIL
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 144: set $ConnectionSpeed ""
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 145: if $ConnectTimeout == "" set $ConnectTimeout 45
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 145: set $ConnectTimeout 45
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 146: print "AT${DialPrefix}${ModTelephone}^M "
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: sending
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  41 54 44 54 2a 39 39 23 0d 0a                    ATDT
                  99#..     
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 147: log AT${DialPrefix}${ModTelephone}
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: ATDT99#
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 148: match "NO CARRIER" DialAbortNoCar
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 149: match "NO DIAL" DialAbortNoDial
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 150: match BUSY DialAbortBusy
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 151: regex "CONNECT ([0-9]).
                  $" DialConnect
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 152: match ERR DialError
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 153: wait $ConnectTimeout
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0d                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a 43 4f 4e 4e 45 43 54 20 31 30 30 30 30 30 30  .CONNECT 1000000
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  30 30 0d                                        00.           
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: read
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT:  0a                                              .             
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: matched set "", goto label "DialConnect"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 175: set $ConnectionSpeed $matchedString1
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 176: set $dialResult OK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 177: return
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 88: if $dialResult == OK goto DialPeerOK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 88: goto DialPeerOK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 93: if $ConnectionSpeed == "" log "Connected at an unknown speed."
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 94: if $ConnectionSpeed == "" goto DialPeer3
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 95: log "Connected at $ConnectionSpeed."
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: Connected at 100000000.
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 97: if $LoginScript == yes call AutoLogin
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 98: set $OptimizeNextTime yes
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAT: line 99: success
                  Dec 12 09:08:59 gw ppp: [opt2_link0] MODEM: chat script succeeded
                  Dec 12 09:08:59 gw ppp: [opt2_link0] device: UP event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] Link: UP event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] Link: origination is local
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: Up event
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: state change Starting --> Req-Sent
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: phase shift DEAD --> ESTABLISH
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: SendConfigReq #1
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACFCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  PROTOCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACCMAP 0x000a0000
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MRU 1500
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MAGICNUM 969ca772
                  Dec 12 09:08:59 gw ppp: [opt2_link0] xmit frame to link proto=0xc021
                  Dec 12 09:08:59 gw ppp:    ff 03 c0 21 01 01 00 18 08 02 07 02 02 06 00 0a  ...!............
                  Dec 12 09:08:59 gw ppp:    00 00 01 04 05 dc 05 06 96 9c a7 72              ...........r
                  Dec 12 09:08:59 gw ppp: [opt2_link0] rec'd 27 bytes frame from link proto=0xc021
                  Dec 12 09:08:59 gw ppp:    c0 21 01 7e 00 19 02 06 00 00 00 00 03 05 c2 23  .!.~...........#
                  Dec 12 09:08:59 gw ppp:    05 05 06 4b 41 a4 49 07 02 08 02                ...KA.I....
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: rec'd Configure Request #126 (Req-Sent)
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACCMAP 0x00000000
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  AUTHPROTO CHAP MD5
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MAGICNUM 4b41a449
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  PROTOCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACFCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: SendConfigAck #126
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACCMAP 0x00000000
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  AUTHPROTO CHAP MD5
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MAGICNUM 4b41a449
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  PROTOCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACFCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0] xmit frame to link proto=0xc021
                  Dec 12 09:08:59 gw ppp:    ff 03 c0 21 02 7e 00 19 02 06 00 00 00 00 03 05  ...!.~..........
                  Dec 12 09:08:59 gw ppp:    c2 23 05 05 06 4b 41 a4 49 07 02 08 02          .#...KA.I....
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: state change Req-Sent --> Ack-Sent
                  Dec 12 09:08:59 gw ppp: [opt2_link0] rec'd 26 bytes frame from link proto=0xc021
                  Dec 12 09:08:59 gw ppp:    c0 21 02 01 00 18 08 02 07 02 02 06 00 0a 00 00  .!..............
                  Dec 12 09:08:59 gw ppp:    01 04 05 dc 05 06 96 9c a7 72                    .........r
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: rec'd Configure Ack #1 (Ack-Sent)
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACFCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  PROTOCOMP
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  ACCMAP 0x000a0000
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MRU 1500
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  MAGICNUM 969ca772
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: state change Ack-Sent --> Opened
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: phase shift ESTABLISH --> AUTHENTICATE
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: auth: peer wants CHAP, I want nothing
                  Dec 12 09:08:59 gw ppp:  EVENT: Stopping timer "LCP" FsmTimeout() at fsm.c:190
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: LayerUp
                  Dec 12 09:08:59 gw ppp: [opt2_link0] rec'd 10 bytes frame from link proto=0xc021
                  Dec 12 09:08:59 gw ppp:    c0 21 0b 7f 00 08 4b 41 a4 49                    .!....KA.I
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: rec'd Discard Request #127 (Opened)
                  Dec 12 09:08:59 gw ppp: [opt2_link0] rec'd 37 bytes frame from link proto=0xc223
                  Dec 12 09:08:59 gw ppp:    c2 23 01 01 00 23 10 ec 2b 57 d8 ea 01 05 43 04  .#...#..+W....C.
                  Dec 12 09:08:59 gw ppp:    cc c0 fd c2 9c 92 7c 55 4d 54 53 5f 43 48 41 50  ......|UMTS_CHAP
                  Dec 12 09:08:59 gw ppp:    5f 53 52 56 52                                  _SRVR
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAP: rec'd CHALLENGE #1 len: 35
                  Dec 12 09:08:59 gw ppp: [opt2_link0]  Name: "UMTS_CHAP_SRVR"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAP: Using authname "user"
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAP: sending RESPONSE #1 len: 25
                  Dec 12 09:08:59 gw ppp: [opt2_link0] xmit frame to link proto=0xc223
                  Dec 12 09:08:59 gw ppp:    ff 03 c2 23 02 01 00 19 10 10 20 7a f3 1e b3 67  ...#.......z...g
                  Dec 12 09:08:59 gw ppp:    93 fb 9b 01 2b cf 65 6c 35 75 73 65 72          ....+.el5user
                  Dec 12 09:08:59 gw ppp: [opt2_link0] rec'd 6 bytes frame from link proto=0xc223
                  Dec 12 09:08:59 gw ppp:    c2 23 03 01 00 04                                .#....
                  Dec 12 09:08:59 gw ppp: [opt2_link0] CHAP: rec'd SUCCESS #1 len: 4
                  Dec 12 09:08:59 gw ppp:  EVENT: Stopping timer "RespTimer" (void (*)(void *)) ChapSendResponse() at chap.c:437
                  Dec 12 09:08:59 gw ppp:  EVENT: Stopping timer "AuthTimer" AuthTimeout() at auth.c:688
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: authorization successful
                  Dec 12 09:08:59 gw ppp: [opt2_link0] LCP: phase shift AUTHENTICATE --> NETWORK
                  Dec 12 09:08:59 gw ppp: [opt2_link0] Link: Matched action 'bundle "opt2" ""'
                  Dec 12 09:08:59 gw ppp: [opt2_link0] Link: Join bundle "opt2"
                  Dec 12 09:08:59 gw ppp: [opt2] IFACE: setting ppp0 MTU to 1492 bytes
                  Dec 12 09:08:59 gw ppp: [opt2] Bundle: Status update: up 1 link, total bandwidth 100000000 bps
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: Open event
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: state change Initial --> Starting
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: LayerStart
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: Open event
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: state change Initial --> Starting
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: LayerStart
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: Up event
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: state change Starting --> Req-Sent
                  Dec 12 09:08:59 gw ppp: [opt2] IPCP: SendConfigReq #1
                  Dec 12 09:08:59 gw ppp: [opt2]  IPADDR 0.0.0.0
                  Dec 12 09:08:59 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8021
                  Dec 12 09:08:59 gw ppp:    ff ff 80 21 01 01 00 0a 03 06 00 00 00 00        ...!..........
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: Up event
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: state change Starting --> Req-Sent
                  Dec 12 09:08:59 gw ppp: [opt2] IPV6CP: SendConfigReq #1
                  Dec 12 09:08:59 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:08:59 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:08:59 gw ppp:    ff ff 80 57 01 01 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:08:59 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:00 gw ppp: [opt2] rec'd 3 bytes bypass frame link=0 proto=0x0003
                  Dec 12 09:09:00 gw ppp:    01 00 04                                        ...
                  Dec 12 09:09:00 gw ppp: [opt2_link0] rec'd unexpected protocol 0x0003, rejecting
                  Dec 12 09:09:00 gw ppp: [opt2] xmit bypass frame link=0 proto=0xc021
                  Dec 12 09:09:00 gw ppp:    00 00 c0 21 08 01 00 09 00 03 01 00 04          ...!.........
                  Dec 12 09:09:00 gw ppp: [opt2] rec'd 4 bytes bypass frame link=0 proto=0x8021
                  Dec 12 09:09:00 gw ppp:    01 38 00 04                                      .8..
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: rec'd Configure Request #56 (Req-Sent)
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: SendConfigAck #56
                  Dec 12 09:09:00 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8021
                  Dec 12 09:09:00 gw ppp:    ff ff 80 21 02 38 00 04                          ...!.8..
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: state change Req-Sent --> Ack-Sent
                  Dec 12 09:09:00 gw ppp: [opt2] rec'd 10 bytes bypass frame link=0 proto=0x8021
                  Dec 12 09:09:00 gw ppp:    03 01 00 0a 03 06 21 55 db 39                    ......!U.9
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: rec'd Configure Nak #1 (Ack-Sent)
                  Dec 12 09:09:00 gw ppp: [opt2]  IPADDR 33.85.219.57
                  Dec 12 09:09:00 gw ppp: [opt2]    33.85.219.57 is OK
                  Dec 12 09:09:00 gw ppp:  EVENT: Stopping timer "IPCP" FsmTimeout() at fsm.c:531
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: SendConfigReq #2
                  Dec 12 09:09:00 gw ppp: [opt2]  IPADDR 33.85.219.57
                  Dec 12 09:09:00 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8021
                  Dec 12 09:09:00 gw ppp:    ff ff 80 21 01 02 00 0a 03 06 21 55 db 39        ...!......!U.9
                  Dec 12 09:09:00 gw ppp: [opt2] rec'd 10 bytes bypass frame link=0 proto=0x8021
                  Dec 12 09:09:00 gw ppp:    02 02 00 0a 03 06 21 55 db 39                    ......!U.9
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: rec'd Configure Ack #2 (Ack-Sent)
                  Dec 12 09:09:00 gw ppp: [opt2]  IPADDR 33.85.219.57
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: state change Ack-Sent --> Opened
                  Dec 12 09:09:00 gw ppp:  EVENT: Stopping timer "IPCP" FsmTimeout() at fsm.c:190
                  Dec 12 09:09:00 gw ppp: [opt2] IPCP: LayerUp
                  Dec 12 09:09:00 gw ppp: [opt2]  33.85.219.57 -> 10.64.64.0
                  Dec 12 09:09:00 gw ppp: [opt2] IFACE: Connecting tcpmssfix
                  Dec 12 09:09:00 gw ppp: [opt2] IFACE: Add address 33.85.219.57/32->10.64.64.0 to ppp0
                  Dec 12 09:09:00 gw ppp: [opt2] system: /usr/local/sbin/ppp-linkup ppp0 inet 33.85.219.57/32 10.64.64.0 '-' '' '' '[226]'
                  Dec 12 09:09:00 gw ppp: [opt2] IFACE: Up event
                  Dec 12 09:09:00 gw ppp: [opt2] IFACE: Rename interface ng0 to ppp0
                  Dec 12 09:09:00 gw ppp: [opt2] IFACE: Change interface ppp0 flags: -0 +1
                  Dec 12 09:09:01 gw ppp: [opt2] IPV6CP: SendConfigReq #2
                  Dec 12 09:09:01 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:01 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:01 gw ppp:    ff ff 80 57 01 02 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:01 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:03 gw ppp: [opt2] IPV6CP: SendConfigReq #3
                  Dec 12 09:09:03 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:03 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:03 gw ppp:    ff ff 80 57 01 03 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:03 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:05 gw ppp: [opt2] IPV6CP: SendConfigReq #4
                  Dec 12 09:09:05 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:05 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:05 gw ppp:    ff ff 80 57 01 04 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:05 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:07 gw ppp: [opt2] IPV6CP: SendConfigReq #5
                  Dec 12 09:09:07 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:07 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:07 gw ppp:    ff ff 80 57 01 05 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:07 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:09 gw ppp: [opt2] IPV6CP: SendConfigReq #6
                  Dec 12 09:09:09 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:09 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:09 gw ppp:    ff ff 80 57 01 06 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:09 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:11 gw ppp: [opt2] IPV6CP: SendConfigReq #7
                  Dec 12 09:09:11 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:11 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:11 gw ppp:    ff ff 80 57 01 07 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:11 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:13 gw ppp: [opt2] IPV6CP: SendConfigReq #8
                  Dec 12 09:09:13 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:13 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:13 gw ppp:    ff ff 80 57 01 08 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:13 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:15 gw ppp: [opt2] IPV6CP: SendConfigReq #9
                  Dec 12 09:09:15 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:15 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:15 gw ppp:    ff ff 80 57 01 09 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:15 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:17 gw ppp: [opt2] IPV6CP: SendConfigReq #10
                  Dec 12 09:09:17 gw ppp: [opt2]  INTIDENT 020d:b9ff:fe3a:496d
                  Dec 12 09:09:17 gw ppp: [opt2] xmit bypass frame link=-1 proto=0x8057
                  Dec 12 09:09:17 gw ppp:    ff ff 80 57 01 0a 00 0e 01 0a 02 0d b9 ff fe 3a  ...W...........:
                  Dec 12 09:09:17 gw ppp:    49 6d                                            Im
                  Dec 12 09:09:19 gw ppp: [opt2] IPV6CP: parameter negotiation failed
                  Dec 12 09:09:19 gw ppp: [opt2] IPV6CP: state change Req-Sent --> Stopped
                  Dec 12 09:09:19 gw ppp: [opt2] IPV6CP: LayerFinish

                  1 Reply Last reply Reply Quote 0
                  • ?
                    Guest
                    last edited by

                    Sorry, I meant PID , So you bought a device with VID/PID of 1199/9041. That is what I was wondering. Yours is only the second mention I have heard of the device.  The other user sounded like he had to switch his to PID=9041.

                    I recently setup MPD5 and I think it would benefit you to make this work in FreeBSD first and then it will be easy to backtrack to pfSense. Probably just a mpd.script setting it needs. Have you looked at the mpd5 doc's regarding ?

                    I don't know that I have ever seen anyone manipulate the modem init string that way. I knew it was possible. There are also mechanisms in the modem which make me wonder too. Have you had a good look at the Sierra pdf for Extended AT commands. It is pretty crazy all the options available. IPv6 might be one of them.

                    That said it might be easier to confirm with a Live Linux CD that IPv6 is working right at the modem level.

                    Once again I am sorry I can't help more.

                    1 Reply Last reply Reply Quote 0
                    • ?
                      Guest
                      last edited by

                      One thing that comes to mind is this. I used Advanced PPP>Modem Init String> one time to make an Ericsson H5321 work. It involved simply adding CFUN=1 as init string. This AT command simply tells the modem to turn on, but what it was doing is bypassing part of the modem mpd5 script so that the modem would work. The default settings were not working correctly and this worked.
                      How does this relate to your case: Well notice there is no APN given in my example. The pfSense GUI settings for my APN sticks.
                      I wonder if your not trying to feed two set of settings to MPD5. One from the APN field in the pfSense GUI and one you are forcing with AT+CGDCONT and the init string. Can you not feed it just the IPv6 setting you need?

                      1 Reply Last reply Reply Quote 0
                      • R
                        risotto
                        last edited by

                        Appreciate the responses, but I think my modem configuration is fine. I enabled some extended logging to verify the CHAT script and that looks good. My init goes through and isn't overridden by other commands. I know because if I change the PDP context to say "IPV6", I no longer get an IPv4 address. Also, yes, my device is VID 1199 and PID 9041. When the PDP is "IP" instead, the modem connects properly but only gets an IPv4 address, as expected for that PDP. So the problem just persist with IPV4V6, to get both an IPv4 and IPv6 link address. IPV6CP does not have any configuration options in MPD5, so there's not much I can tweak there. As you can see, the log above shows some rather verbose debugging output, including the whole wire payload to configure the link in IPV6CP's finite state machine.

                        However, after some consideration, I found a couple issues with my initial setup:

                        First, since the LAN interface tracks the WAN interface for its IPv6 address, whenever the main Cable route goes down the LAN interface will have an unroutable address, as well as the whole subnet which was configured by tracking the WAN interface and advertising the /56 subnet given to the WAN link. I have to figure out something around getting an ISP independent IPv6 subnet that can be routed across both links. A tunnel with HE.net would be nice, but they don't support dynamic tunnel end-point addresses, as far as I know. If anyone would have a suggestion around that, that would be great. And no, BGP with our own ASN is a bit out of the question. As for IPv4, given that it's doing NAT, the same issue does not exist and is working fine.

                        Secondly, for getting local DNS resolution to work, I realized that I didn't have a floating firewall rule for tcp/udp port 53 to enable policy based routing over the gateway group. Once I added that, my DNS resolutions started working again, albeit only over IPv4.

                        1 Reply Last reply Reply Quote 0
                        • ?
                          Guest
                          last edited by

                          While researching another problem I found this command in the Sierra Extended AT Commands pdf and was thinking of you.

                          AT!CUSTOM="DHCP6ENABLE",1

                          You can run the command AT!CUSTOM? to show custom settings and AT!CUSTOM=? to show custom options.

                          1 Reply Last reply Reply Quote 0
                          • R
                            risotto
                            last edited by

                            Unfortunately, it doesn't look like my modem understands the DHCP6ENABLE option. Here's a list of valid options, as printed by AT!CUSTOM=?:

                            !CUSTOM: 
                                        "ISVOICEN"
                                        "STKUIEN"
                                        "PCSCDISABLE"
                                        "CMCLIENT"
                                        "SIMHOTSWAPDIS"
                                        "ADBENABLE"
                                        "NOROAM"
                                        "GPIOSARENABLE"
                                        "GPSENABLE"
                                        "GPSLPM"
                                        "REL8FASTDORMDIS"
                                        "RRCREL7CAPDIS"
                                        "FASTENUMEN"
                                        "GPSSEL"
                                        "WAKEHOSTEN"
                                        "AUTONETWORKMODE"
                                        "WIN7MBOPTIONS"
                                        "NMEAENABLE"
                                        "CFUNPERSISTEN"
                                        "UBISTENABLE"
                                        "GOBIIMEN"
                                        "GMMCAUSE7REMAP"
                                        "GPSREFLOC"
                                        "SINGLEAPNSWITCH"
                                        "USBDMDISABLE"
                                        "SIMLPM"
                                        "USBSERIALENABLE"
                                        "CSVOICEREJECT"
                            
                            OK
                            
                            1 Reply Last reply Reply Quote 0
                            • ?
                              Guest
                              last edited by

                              Do you know what firmware you are using. I don't think I saw a T-Mobile in the Sierra firmware package. Have your upgraded firmware at all? Maybe post your ATI command output and AT!UDINFO? Perhaps you have an older firmware..

                              I saw the command in the MC7700's list and looked it up in the pdf. I need to check again as maybe it is only Qualcom MDM9200 modems use that command.

                              1 Reply Last reply Reply Quote 0
                              • ?
                                Guest
                                last edited by

                                Updated my device and have some more settings now.

                                
                                OK
                                ati
                                Manufacturer: Sierra Wireless, Incorporated
                                Model: MC7700
                                Revision: SWI9200X_03.05.29.03ap r6485 CNSHZ-ED-XP0031 2014/12/02 17:53:15
                                IMEI: 01262600105xxxx
                                IMEI SV: 23
                                FSN: CDC1373192710
                                3GPP Release 8
                                +GCAP: +CGSM
                                
                                OK
                                
                                at!custom=?
                                !CUSTOM:
                                            "MEPLOCK"
                                            "NOROAM"
                                            "NOGPRS"
                                            "PUKPRMPT"
                                            "MEPCODE"
                                            "NOAUTOC"
                                            "ADVPROF"
                                            "ISVOICEN"
                                            "DISPLDUN"
                                            "DATADISP"
                                            "SCANPROF"
                                            "DISSTACK"
                                            "HSDPATEST"
                                            "CSPMANDIS"
                                            "STKUIEN"
                                            "ATINDMASK"
                                            "PRLREGION"
                                            "PCSCDISABLE"
                                            "DISFDNPDPCHK"
                                            "HPPLMNSCDIS"
                                            "GPSENABLE"
                                            "CSDOFF"
                                            "OSPWWANENABLE"
                                            "AUTONETWORKMODE"
                                            "SWOCENABLE"
                                            "HSICON"
                                            "STARTLPM"
                                            "USBMSENABLE"
                                            "CSVOICEREJECT"
                                            "CUSTOMER"
                                            "WAPPUSHDATA"
                                            "USBDMDISABLE"
                                            "SIMLPM"
                                            "CPASCWRINGIND"
                                            "TRUFLOWDISABLE"
                                            "USBSERIALENABLE"
                                            "WIN7MBOPTIONS"
                                            "GPSLPM"
                                            "GPSREFLOC"
                                            "DHCP6ENABLE"
                                            "RDENABLE"
                                            "GPSSEL"
                                            "BBENABLE"
                                            "WIND"
                                            "PCNOTIFY"
                                            "CMCLIENT"
                                            "ROAMRATDIS"
                                            "SINGLEAPNSWITCH"
                                            "WAKEHOSTEN"
                                            "CFUNPERSISTEN"
                                            "MIMOCAPEN"
                                            "RRCREL7CAPDIS"
                                            "GPIOSARENABLE"
                                            "WIN8OOSACT"
                                            "LTESMS"
                                            "DHCPRELAYENABLE"
                                
                                OK
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post
                                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.