title: pppd: peer refused to agree to our IP address
body: <p>I'm trying to access data through Telit modem which is connected to embedded Linux board(without Network-manager) CC3200 via USB.</p>
  
  <p>I have inserted all needed drivers and I'm using PPP daemon to connect this ttyACM0 device to ppp interface so that I can access the network through ppp interface.</p>
  
  <p>Two days back I'm able to successfully connect to network and ping google.com.
  But I failed to figure out what actually makes it work and unfortunately I lost the working setup.</p>
  
  <p>Now ppp peer is refusing to agree on IP.</p>
  
  <p>I followed this link for ppp setup: <a href="http://www.techytalk.info/manage-gsm-mobile-broadband-connections-without-network-manager-ubuntu-mint-debian/" rel="nofollow noreferrer">http://www.techytalk.info/manage-gsm-mobile-broadband-connections-without-network-manager-ubuntu-mint-debian/</a>
  I'm trying without authentication.
  I also added 'nodeflate nomagic and demand' in option file. </p>
  
  <p>following is the pppd log:</p>
  
  <pre><code>May  6 13:45:58 (none) daemon.notice pppd[1564]: pppd 2.4.6 started by root, uid 0
  May  6 13:45:58 (none) daemon.info pppd[1564]: Using interface ppp0
  May  6 13:45:58 (none) daemon.notice pppd[1564]: local  IP address 10.64.64.64
  May  6 13:45:58 (none) daemon.notice pppd[1564]: remote IP address 10.112.112.112
  May  6 13:45:58 (none) daemon.info pppd[1564]: Starting link
  May  6 13:46:02 (none) daemon.debug pppd[1564]: Script /usr/local/sbin/chat -v -f /etc/chatscripts/ispname finished (pid 1589), status = 0x0
  May  6 13:46:02 (none) daemon.info pppd[1564]: Serial connection established.
  May  6 13:46:02 (none) daemon.debug pppd[1564]: using channel 1
  May  6 13:46:02 (none) daemon.notice pppd[1564]: Connect: ppp0 &lt;--&gt; /dev/ttyACM0
  May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfReq id=0x1 &lt;asyncmap 0x0&gt; &lt;magic 0x52181044&gt; &lt;pcomp&gt; &lt;accomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfReq id=0x1 &lt;asyncmap 0x0&gt; &lt;accomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfRej id=0x1 &lt;magic 0x52181044&gt; &lt;pcomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfAck id=0x1 &lt;asyncmap 0x0&gt; &lt;accomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfReq id=0x2 &lt;asyncmap 0x0&gt; &lt;accomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfAck id=0x2 &lt;asyncmap 0x0&gt; &lt;accomp&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP EchoReq id=0x0 magic=0x0]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [CCP ConfReq id=0x1 &lt;bsd v1 15&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x1 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 0.0.0.0&gt; &lt;ms-dns2 0.0.0.0&gt;]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP EchoRep id=0x0 magic=0x0]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ProtRej id=0x3 80 fd 01 01 00 07 15]
  May  6 13:46:03 (none) daemon.debug pppd[1564]: Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x1 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 0.0.0.0&gt; &lt;ms-dns2 0.0.0.0&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfReq id=0x1]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfNak id=0x1 &lt;addr 10.112.112.112&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfRej id=0x1 &lt;addr 0.0.0.0&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x2 &lt;addrs 0.0.0.0 10.112.112.112&gt; &lt;ms-dns1 0.0.0.0&gt; &lt;ms-dns2 0.0.0.0&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfReq id=0x2 &lt;addr 10.112.112.112&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfAck id=0x2 &lt;addr 10.112.112.112&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfRej id=0x2 &lt;addrs 0.0.0.0 10.112.112.112&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x3 &lt;ms-dns1 0.0.0.0&gt; &lt;ms-dns2 0.0.0.0&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfNak id=0x3 &lt;ms-dns1 125.22.47.102&gt; &lt;ms-dns2 59.144.144.46&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x4 &lt;ms-dns1 125.22.47.102&gt; &lt;ms-dns2 59.144.144.46&gt;]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfAck id=0x4 &lt;ms-dns1 125.22.47.102&gt; &lt;ms-dns2 59.144.144.46&gt;]
  May  6 13:46:06 (none) daemon.err pppd[1564]: Peer refused to agree to our IP address
  May  6 13:46:06 (none) daemon.info pppd[1564]: Connect time 0.2 minutes.
  May  6 13:46:06 (none) daemon.info pppd[1564]: Sent 549 bytes, received 238 bytes.
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP TermReq id=0x5 "Refused our IP address"]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP TermReq id=0x3 "Could not determine remote IP address"]
  May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP TermAck id=0x3]
  May  6 13:46:06 (none) daemon.info pppd[1564]: Hangup (SIGHUP)
  May  6 13:46:06 (none) daemon.notice pppd[1564]: Modem hangup
  May  6 13:46:06 (none) daemon.notice pppd[1564]: Connection terminated.
  </code></pre>
  
  <p>Why Protocol-reject is receiving. How to overcome it. nodeflate doesn't help.
  why peer is refusing to agree on IP. In the working state peer itself was suggesting the IP in range 100.xxx.xxx.xxx.</p>
  
  <p>following is the route output</p>
  
  <pre><code>~ # route
  Kernel IP routing table
  Destination     Gateway         Genmask         Flags Metric Ref    Use 
  Iface
  10.112.112.113  *               255.255.255.255 UH    0      0        0 ppp0
  127.160.0.0     *               255.255.255.252 U     0      0        0 eth0
  192.xxx.xxx.xx  *               255.255.255.0   U     0      0        0 eth0
  default         *               0.0.0.0         U     0      0        0 ppp0
  </code></pre>
  
  <p>following are options in effect for pppd command:</p>
  
  <pre><code>~ # /mnt/mmc/pppversions/pppd-6 dryrun
  pppd options in effect:
  debug           # (from /etc/ppp/options)
  holdoff 5               # (from /etc/ppp/options)
  persist         # (from /etc/ppp/options)
  demand          # (from /etc/ppp/options)
  dryrun          # (from command line)
  noauth          # (from /etc/ppp/options)
  /dev/ttyACM0            # (from /etc/ppp/options)
  115200          # (from /etc/ppp/options)
  lock            # (from /etc/ppp/options)
  connect /usr/local/sbin/chat -v -f /etc/chatscripts/ispname             # (from                                                                                                                                                                                              /etc/ppp/options)
  crtscts         # (from /etc/ppp/options)
  modem           # (from /etc/ppp/options)
  asyncmap 0              # (from /etc/ppp/options)
  nomagic         # (from /etc/ppp/options)
  nopcomp         # (from /etc/ppp/options)
  lcp-echo-failure 50             # (from /etc/ppp/options)
  lcp-echo-interval 65535         # (from /etc/ppp/options)
  lcp-max-configure 50            # (from /etc/ppp/options)
  novj            # (from /etc/ppp/options)
  novjccomp               # (from /etc/ppp/options)
  noipdefault             # (from /etc/ppp/options)
  defaultroute            # (from /etc/ppp/options)
  usepeerdns              # (from /etc/ppp/options)
  nodeflate               # (from /etc/ppp/options)
  ~ #
  </code></pre>