A few months ago, I received two test SIM cards for Orange Poland’s new IPv6 network.
The interesting thing about this network is that it’s running IPv6 in a fairly unusual configuration and it was interesting to see how to get that work on Ubuntu.
This network uses two separate APNs, one for IPv4 (internet) and one for IPv6 (internetipv6).
Using two separate APNs is certainly easier on the carrier’s infrastructure side as they can get IPv6 online without actually changing anything on the IPv4 equipement, however that means that any client wanting to use both protocols at once needs to use multiple PDP contexts.
I’m now going to detail how to manually configure ppp to connect to such a network:
noauth connect "/usr/sbin/chat -e -f /etc/ppp/peers/orange-connect" /dev/ttyACM0 460800 +ipv6
TIMEOUT 5 ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO ANSWER' ABORT DELAYED ABORT ERROR '' \nAT TIMEOUT 12 OK ATH OK ATE1 OK 'AT+CGDCONT=1,"IP","internet"' OK 'AT+CGDCONT=2,"IPV6","internetipv6"' OK ATD*99# CONNECT ""
Then all that’s needed is a good old:
And a few seconds later, I’m getting the following on ppp0:
ppp0 Link encap:Point-to-Point Protocol inet addr:188.8.131.52 P-t-P:10.6.6.6 Mask:255.255.255.255 inet6 addr: 2a00:f40:2100:ac9:8c1e:da60:93e2:c234/64 Scope:Global inet6 addr: 2a00:f40:2100:ac9::1/64 Scope:Global inet6 addr: fe80::1/10 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:13 errors:0 dropped:0 overruns:0 frame:0 TX packets:23 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:354 (354.0 B) TX bytes:767 (767.0 B
This config should work for any mobile network using a similar setup (likely to become more and more popular as the various RIRs are running out of IPv4).
Sadly ModemManager/NetworkManager don’t support mutliple PDP contexts yet, though it’s being discussed upstream, so we can hope to see something land soon.
Apparently multiple PDP contexts support is also dependant on hardware. In my case, I’ve been using an “old” Nokia E51 over USB as I didn’t have any luck getting that to work with an Android phone. My Nokia N900 also worked but required a custom kernel to be installed first to properly handle IPv6.