[ECOS] RE: The DNS negotiation problem on PPP over GPRS connection
Weili Yao
weili_yao@trimble.com
Wed Sep 22 23:45:00 GMT 2010
Hello, there:
I am wondering if anyone has seen this problem, but we do see this problem in New Zealand (ISP: 2Degrees and Vodafone) and USA (ISP: AT&T). The problem is that the ECOS PPP is only negotiating DNS once, and if it is rejected, the DNS negotiation will be turned off and we will never get DNS IP address from PPP connection and the connection is always useless. In New Zealand, almost 80% the first DNS request will be rejected and 100% the second DNS request is taken. In USA AT&T, most of time the first DNS request is taken, but some time(rarely), the first request is rejected and the second retry is taken.
Here is the problem:
In the ppp/current/src/ipcp.c , look at #ifdef CYGOPT_PPP_NS_NEGOTIATE
When the IPCP started, by default (in function ipcp_init())
wo->neg_dns1 = 1;
wo->neg_dns2 =1;
If the IPCP options are rejected by peer, we then turn off negotiation (in function ipcp_rejci()). But the problem is that some of the ISPs (such as 2Degrees in New Zealand and AT&T in USA) are rejecting some other options (e.g. option "Van Jacobson Compressed") along with DNS requests. Without retry, when the DNS options are rejected, we will never get DNS IP address. But it seems that for these ISPs, instead of turning off the DNS negotiation options after rejected, if I put retry (only once), it would always work and we will always get correct DNS IP addresses (both Primary and Secondary).
Does anybody see this issue? Or does anybody have solutions other than retrying?
Another question is why we repeat sending the same requests? (see below)
Thank you for your attention!
Weili
------------- Following is the detail decoding For New Zealand 2Degrees ISP ------------
1) ff 03 c0 21 01 01 00 14 02 06 00 00 00 00 05 06 05 c3 02 72 07 02 08 02
Sent To Peer:
C0 21: LCP Protocol
01 : code ("Conf Request")
01 : ID
00 14: Len (including code, ID, len) followed by data
02 : (LCP Option: ACCM (Asynchronous Control Character Map))
06 : length of ACCM
00 00 00 00: (ACCM data)
05 : (Type: Magic Number)
06 : length of Magic Number
05 c3 02 72: (the actual magic number)
07 : Type: Protocol Field Compression (PFC),
02 : length of PFC
08 : Type:Address Control Field Compression (ACFC)
02 : length of ACFC
2) ff 03 c0 21 02 01 00 14 02 06 00 00 00 00 05 06 05 c3 02 72 07 02 08 02
received from peer:
C0 21: LCP Protocol
02 : code ("Conf Ack")
01 : ID
00 14: Len (including code, ID, len) followed by data
02 : (Option: ACCM)
06 : length
00 00 00 00: (ACCM data)
05 : (Type: Magic Number)
06 : length of Magic Number
05 c3 02 72: (the actual magic number)
07 : Type: Protocol Field Compression (PFC),
02 : length of PFC
08 : Type:Address Control Field Compression (ACFC)
02 : length of ACFC
3) ff 03 c0 21 01 02 00 1c 01 04 06 40 03 04 c0 23 05 06 d1 fc fe a6
02 06 00 00 00 00 07 02 08 02
Received from peer:
C0 21: LCP Protocol
01 : code ("Conf Request")
02 : ID
00 1c: length
01 : LCP option: MRU (Max Receive Unit)
04 : length
06 40: (MRU = 1600 decimal)
03 : LCP Option: Authentication Protocol
04 : length
c0 23: (PAP)
05 : LCP Option: Magic Number
06 : length
d1 fc fe a6: (actual magic number)
02 : LCP Option: ACCM
06 : len
00 00 00 00: ACCM
07 : Type: Protocol Field Compression (PFC),
02 : length of PFC
08 : Type:Address Control Field Compression (ACFC)
02 : length of ACFC
4) ff 03 c0 21 02 02 00 1c 01 04 06 40 03 04 c0 23 05 06 d1 fc fe a6
02 06 00 00 00 00 07 02 08 02
Sent to peer:
C0 21: LCP Protocol
02 : code ("Conf Ack")
02 : ID
00 1c: length
01 : LCP option: MRU (Max Receive Unit)
04 : length
06 40: (MRU = 1600 decimal)
03 : LCP Option: Authentication Protocol
04 : length
c0 23: (PAP)
05 : LCP Option: Magic Number
06 : length
d1 fc fe a6: (actual magic number)
02 : LCP Option: ACCM
06 : len
00 00 00 00: ACCM
07 : Type: Protocol Field Compression (PFC),
02 : length of PFC
08 : Type:Address Control Field Compression (ACFC)
02 : length of ACFC
5) ff 03 c0 21 09 00 00 08 05 c3 02 72
Sent to peer:
C0 21: LCP Protocol
09 : code (Echo Request: optionally sent to test PPP connection)
6) ff 03 c0 23 01 01 00 06 00 00
Sent to peer:
c0 23: Authentication Protocl (PAP)
01 : code (Conf Req)
01 : ID
00 06: length
00 : username len
00 : password len
7) ff 03 c0 21 0a 00 00 08 d1 fc fe a6
received from peer:
C0 21: LCP Protocol
0a : code (Echo Reply)
8) ff 03 c0 23 02 01 00 27 22 54 54 50 20 43 6f 6d 20 50 50 50 20 2d 20 50 61 73
73 77 6f 72 64 20 56 65 72 69 66 69 65 64 20 4f 4b
Received from peer:
c0 23: Authentication Protocl (PAP)
02 : code (Conf Ack)
01 : ID
00 27: length
22 : message length
data: TTP Com PPP - Password Verified OK
9) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
Sent to peer:
80 21: PPP IPCP protocol
01 : code (Conf Req)
01 : ID
00 1c: length
03 : Option: IP Address
06 : length
00 00 00 00:
02 : Option: IP Compression Protocol (IPCP)
06 : length
00 2d 0f 01: Van Jacobson Compressed TCP/IP
81 : Option: Pri DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default Pri-DNS IP)
83 : Option: Secondary DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default)
10) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again to peer
11) ff 03 80 21 01 01 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again to peer
12) ff 03 80 21 04 01 00 16 02 06 00 2d 0f 01 81 06 00 00 00 00 83 06 00 00 00 00
received from peer:
80 21: PPP IPCP protocol
04 : Conf Reject
01 : ID
00 16: length
02 : IP Compression Protocol
06 : length
00 2d 0f 01: Van Jacobson Compressed TCP/IP
81 : Option: Pri DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default Pri-DNS IP)
83 : Option: Secondary DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default)
-----above is the first reject and following is the retry that I put -------
13) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again to peer as 9) above
14) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again!
15) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again!
16) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again!
17) ff 03 80 21 01 02 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent again!
18) ff 03 80 21 04 02 00 0a 02 06 00 2d 0f 01
received from peer
80 21: PPP IPCP protocol
04 : Conf Reject
02 : ID
00 0a: length
02 : IP Compression Protocol
06 : length
00 2d 0f 01: Van Jacobson Compressed TCP/IP
19) ff 03 80 21 01 03 00 1c 03 06 00 00 00 00 02 06 00 2d 0f 01 81 06 00 00 00 00
83 06 00 00 00 00
sent to peer:
same as 9) above
20) ff 03 80 21 01 01 00 0a 03 06 0a 00 00 01
received from peer:
80 21: PPP IPCP protocol
01 : Conf Req
01 : ID
00 0a: length
03 : IP Address
06 : length
0a 00 00 01: IP Address 10.0.0.1
21) ff 03 80 21 02 01 00 0a 03 06 0a 00 00 01
sent to peer: (confirm the IP address)
22) ff 03 80 21 04 02 00 0a 02 06 00 2d 0f 01
received from peer: conf-reject as 18)
23) ff 03 80 21 04 03 00 0a 02 06 00 2d 0f 01
received from peer: conf-reject as 18)
24) ff 03 80 21 01 04 00 16 03 06 00 00 00 00 81 06 00 00 00 00 83 06 00 00 00 00
sent to peer:
80 21: PPP IPCP protocol
01 : Conf Req
04 : ID
00 16: length
03 : Option: IP Address
06 : len
00 00 00 00: IP address
81 : Option: Pri DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default Pri-DNS IP)
83 : Option: Secondary DNS Server Address (RFC 1877)
06 : length
00 00 00 00 (default)
25) ff 03 80 21 03 04 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
received from peer:
80 21: PPP IPCP protocol
03 : Config NAK
04 : ID
00 16: len
03 06 76 94 a0 2a: IP Address: 118.148.160.42
81 06 76 94 01 0a: Pri DNS IP Address
83 06 76 94 01 14: Second DNS IP Address
26) ff 03 80 21 01 05 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
sent to peer
80 21: PPP IPCP protocol
01 : Config Req
04 : ID
00 16: len
03 06 76 94 a0 2a: IP Address: 118.148.160.42
81 06 76 94 01 0a: Pri DNS IP Address
83 06 76 94 01 14: Second DNS IP Address
27) ff 03 80 21 02 05 00 16 03 06 76 94 a0 2a 81 06 76 94 01 0a 83 06 76 94 01 14
received from peer
80 21: PPP IPCP protocol
03 : Config Ack
02 : ID
00 16: len
03 06 76 94 a0 2a: IP Address: 118.148.160.42
81 06 76 94 01 0a: Pri DNS IP Address
83 06 76 94 01 14: Second DNS IP Address
-------------- End ---
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list