Search code examples
linuxppppppd

pppd: peer refused to agree to our IP address


I'm trying to access data through Telit modem which is connected to embedded Linux board(without Network-manager) CC3200 via USB.

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.

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.

Now ppp peer is refusing to agree on IP.

I followed this link for ppp setup: http://www.techytalk.info/manage-gsm-mobile-broadband-connections-without-network-manager-ubuntu-mint-debian/ I'm trying without authentication. I also added 'nodeflate nomagic and demand' in option file.

following is the pppd log:

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 <--> /dev/ttyACM0
May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x52181044> <pcomp> <accomp>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <accomp>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfRej id=0x1 <magic 0x52181044> <pcomp>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <accomp>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <accomp>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [LCP ConfAck id=0x2 <asyncmap 0x0> <accomp>]
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 <bsd v1 15>]
May  6 13:46:03 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
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 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
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 <addr 10.112.112.112>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfRej id=0x1 <addr 0.0.0.0>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x2 <addrs 0.0.0.0 10.112.112.112> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfReq id=0x2 <addr 10.112.112.112>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfAck id=0x2 <addr 10.112.112.112>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfRej id=0x2 <addrs 0.0.0.0 10.112.112.112>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x3 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfNak id=0x3 <ms-dns1 125.22.47.102> <ms-dns2 59.144.144.46>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: sent [IPCP ConfReq id=0x4 <ms-dns1 125.22.47.102> <ms-dns2 59.144.144.46>]
May  6 13:46:06 (none) daemon.debug pppd[1564]: rcvd [IPCP ConfAck id=0x4 <ms-dns1 125.22.47.102> <ms-dns2 59.144.144.46>]
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.

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.

following is the route output

~ # 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

following are options in effect for pppd command:

~ # /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)
~ #

Solution

  • I got the answer few day ago. I was using the pdp contex 1 which needs to be 2. like :

    'OK' 'AT+CGDCONT=2,"IP","ispapn"'
    

    because contex 1 is reserved.