IPv6 router solicitation, Link-Local gateway, Ubuntu and a bit of WTF…

I have been using RHEL/CentOS lineage Linuces for a good while  now, and I believe the strength and distro mindset is their dedication to package dependencies.  Some packages or software that require bleeding edge or even not so recently updated/released libraries/CPAN perl modules etc don’t behave well or won’t install/compile without breaking those dependencies without installing source packages.  This paradoxally is the weakness of RHEL/CentOS, their dedication to dependencies runaway  They occasionally are a bit behind when it comes to the latest and greatest, and you cat get handcuffed if you want to remain within the confines of the dependancy sandbox.

 

In any case I wanted to toy with some software that clearly seems written for Ubuntu (first tell-tale sign is that you need to add a bunch of user-contributed repositories so you can install it….)  This software requires IPv6 connectivity so I decided to trash a BIND virtual server I was using and replace it with Ubuntu 14.04 from the .ISO.  I am not totally foreign to Ubuntu as I use Ubuntu desktop on a couple laptops, however in a server environment I have never bothered to consider it out of laziness, mostly.  Here are a few observations, some of which I am still trying to wrap my head around.

 

BIND startup

My first challenge was getting BIND to start correctly.  I usually use “listen-on-v6” to specify what interfaces I allow BIND to bind to, and was seeing this incredibly annoying message on bootup and BIND was not binding to any IPv6 addresses, defeating the purpose of running BIND on this server in the first place:


yet 2001:db8:9::37/64 is statically configured in my interface config (!!):


 

apparently, Ubuntu is in such a hurry to boot that it starts daemons before the interface init is even finished (!)  Major-wtf.  So it would seem that it is prudent (and necessary?) to put the IPv6 definition of eth0 inet6 *before* IPv4.  Guess that is good to know doh  Once thats done, BIND starts correctly and we can move on.


IPv6 default gateway gong-show

My next hurdle was not far away.  Even if I manually set the gateway, for some reason Ubuntu seems to feel it necessary to send a router solicitation… My network has regular router advertisements disabled, just because I don’t want SLAAC to work in that particular test environment.  So even if I statically configure Ubuntu with a prefix, mask and gateway, it still seems to feel a need to go exploring for routers and sends out an ICMPv6 router solicitation…so when I check the routing table:


now wait a minute!  My network does not send periodic RAs, I have statically defined my gateway, and Ubuntu overrides whatever I defined with auto-learned crap??  surprised  After 500 seconds, the RS-learned gateways disappear and whatever I defined as default then remains, and sometimes no gateway at all…..

Link-Local Gateway

Remember I mentioned above the bit about putting the IPv6 config before IPv4?  My network uses HSRP as first-hop redundancy, and IOS didn’t allow for global addressing (and some supported IOS trains do not have this feature) until “recently”.  In any case, I want to use a link-local address as a gateway.  For some reason, if the IPv6 interface in Ubuntu is defined *after* the IPv4 address, the LL gateway sometimes is ignored (what?runaway)  So not only do I get possibly bogus gateways via ICMPv6 router solicitation, I might end up with no gateway at all once those RAs lifetime is up.  not good.

The solution is to disable router-advertisement learning in /etc/sysctl.conf by adding the following:


and contrary to RHEL/CentOS (and pretty much any environment where a link-local is used to route something that I have seen), it is not necessary to specify the interface – I suppose Ubuntu is doing some logic there:

 


 


So we note the absence of %device.  I would have to test if with multiple NICs this still works.  Hopefully it does pc

 

Network restart broken

 

My last adventure was trying to restart networking in some controlled way after making changes.  I believed I had broken my install when I got the following as a result:


After some googling, apparently this is known.   So shucks, another thing that will hopefully get fixed wassat   At the rate Ubuntu seems to update packages, I suppose it might not be a long wait pc

 

 

 

New domain….

So apparently, its possible to have a .NINJA tld .  So I haz one now 🙂  And this site is renamed!

When I registered it I got a popup telling me there was a trademark on the “COMMANDLINE”.  As this site or any activity surrounding it is neither my livelyhood, nor is it commercial, I am going to risk registering it.  I can’t imagine I would be sued for a blog using this domain name that nobody reads and that doesn’t generate any $$$.    Until that happens I will be enjoying http://commandline.ninja/ http://www.freewebspace.net/forums/images/smilies/emoticons//smiley_ninja.gif

dot ninja logo

 

 

Lenovo Ideapad K1 – AOSP Ice Cream Sandwich 4.0.4 goodness (keeping your apps!)

Back around January 2012 I picked up a cheap Android tablet, a Lenovo Ideapad K1.  I didn’t really see the point of having a tablet, to be frank, but I figured I might as well get a cheap one to tinker with.  Its a glorified Kindle really 🙂    In any case, I did do a bit of shopping to get something I had hopes would not be EOL right away.  I should have known that if it was 329$ at Futureshop, something was up…..anyway…

I had done some reading and at that time in 2012, Lenovo was promising an upgrade to ICS (I would link to that site however Lenovo was smart enough to destroy the online presence of those claims!) so I figured I would be covered for future functionality.

Well in June 2012, Lenovo discontinued the K1, so my 32GB tablet seemed stuck with Honeycomb 3.1.x.  That was until a sometimes whiny thread on the Lenovo support forum coaxed Lenovo into releasing a “vanilla” version of ICS.  This release however, does not include any of the Lenovo apps or customizations, and more importantly, has no Google Play or anything else to make installing more apps other than by copying them with the USB cable.  Yuck!

The vanilla release by Lenovo was useless to the K1 userbase, yet it likely paved the way for a number of alternatives, fathered by the now notorious Khanning88.   With apparently the blessing of Lenovo, he greatly contributed to the release of a Vanilla ICS for the K1 with GooglePlay, as well as my ROM of choice, an AOSP 4.0.4 version that installed flawlessly.  There are a few minor issues (auto brightness seems broken and a few other cosmetics) but overall I am happy with ICS 4.0.4.  It is certainly faster than the Lenovo HC, and the WiFi doesn’t freeze up like it used to in HC3.1.  Score!

Now my significant other was quite alarmed to learn that her precious Battleship clone game “Warships” was no longer on the tablet since the Khanning88 version as well as the vanilla ICS provided by Lenovo did not include the apps and customizations.  Luckily I was able to find a Lenovo honeycomb stock version for the K1.  I downloaded the .zip file and unzipped it, copying the userdata.img file to a Linux machine.  At that point, it is possible to mount the .img and copy the .ipk apps from it!!!   Like so;

[root@panel K1]# unzip K1_Stock_120109.zip
Archive:  K1_Stock_120109.zip
  inflating: flash-windows.bat
  inflating: flash-linux.sh
  inflating: files/flash.cfg
  inflating: files/userdata.img
  inflating: files/android-info.txt
  inflating: files/blob
  inflating: files/bootloader.bin
  inflating: files/flash.bct
  inflating: files/flash.cfg~
  inflating: files/flash_fuse.cfg
  inflating: files/libnv3p.dll
  inflating: files/libnvaes_ref.dll
  inflating: files/libnvapputil.dll
  inflating: files/libnvboothost.dll
  inflating: files/libnvdioconverter.dll
  inflating: files/libnvflash.dll
  inflating: files/libnvos.dll
  inflating: files/libnvusbhost.dll
  inflating: files/nvflash
  inflating: files/nvflash.exe
  inflating: files/ramdisk.img
  inflating: files/README.txt
  inflating: files/boot.img
  inflating: files/recovery.img
  inflating: files/system.img
   creating: files/backup/

[root@panel K1]# cd files
[root@panel files]# mount -o loop userdata.img /mnt
[root@panel files]# cd /mnt
[root@panel mnt]# cd app
[root@panel app]# ls -al
total 524604
drwxr-xr-x 2 root root      4096 Mar 21 19:39 .
drwxr-xr-x 3 root root      4096 Dec 31  1969 ..
-rw-r--r-- 1 root root  49054253 Jan 10  2012 01-Accuweather.apk
-rw-r--r-- 1 root root   1672560 Jan 10  2012 02-amazonmp.apk
-rw-r--r-- 1 root root  16205288 Jan 10  2012 03-AngryBirdsHD.apk
-rw-r--r-- 1 root root  23426456 Jan 10  2012 04-BackgammonLenovo.apk
-rw-r--r-- 1 root root  41814965 Jan 10  2012 06-DP30Lenovo.apk
-rw-r--r-- 1 root root   5670102 Jan 10  2012 07-DTGFull.apk
-rw-r--r-- 1 root root   1888591 Jan 10  2012 08-ebuddy.apk
-rw-r--r-- 1 root root  23297425 Jan 10  2012 09-EuchreLenovo.apk
-rw-r--r-- 1 root root    799746 Jan 10  2012 10-FileBrowser.apk
-rw-r--r-- 1 root root   4038616 Jan 10  2012 11-GOF2Lenovo.apk
-rw-r--r-- 1 root root  23373538 Jan 10  2012 12-HeartsLenovo.apk
-rw-r--r-- 1 root root   4915710 Jan 10  2012 13-Kindle.apk
-rw-r--r-- 1 root root    933775 Jan 10  2012 14-KongregateArcade.apk
-rw-r--r-- 1 root root  12479897 Jan 10  2012 15-LenovoIME.apk
-rw-r--r-- 1 root root    423102 Jan 10  2012 18-mSpotMovie.apk
-rw-r--r-- 1 root root   1786115 Jan 10  2012 19-MobileSecurity-24.apk
-rw-r--r-- 1 root root    657252 Jan 10  2012 20-mSpotMusic.apk
-rw-r--r-- 1 root root   3691126 Jan 10  2012 21-ooVoo.apk
-rw-r--r-- 1 root root    355690 Jan 10  2012 22-PokeTALK.apk
-rw-r--r-- 1 root root   1205274 Jan 10  2012 23-PrinterShare.apk
-rw-r--r-- 1 root root   1298896 Jan 10  2012 24-slackerradio.apk
-rw-r--r-- 1 root root  24607966 Jan 10  2012 25-SolitaireLenovo.apk
-rw-r--r-- 1 root root  26826532 Jan 10  2012 26-TalkingTomFree.apk
-rw-r--r-- 1 root root   2420289 Jan 10  2012 27-VendettaOnline.apk
-rw-r--r-- 1 root root   7036976 Jan 10  2012 28-VortexHD.apk
-rw-r--r-- 1 root root 102670289 Jan 10  2012 29-NFSShift.apk
-rw-r--r-- 1 root root  23416563 Jan 10  2012 30-SpadesLenovo.apk
-rw-r--r-- 1 root root   4426679 Jan 10  2012 31-flash10-android.apk
-rw-r--r-- 1 root root  11986764 Jan 10  2012 32-warships.apk
-rw-r--r-- 1 root root  51858089 Jan 10  2012 35-UserHelp.apk
-rw-r--r-- 1 root root   7390418 Jan 10  2012 36-Netflix.apk
-rw-r--r-- 1 root root  14505602 Jan 10  2012 A01-eReader.apk
-rw-r--r-- 1 root root   6753383 Jan 10  2012 A02-mediagallery.apk
-rw-r--r-- 1 root root   4242141 Jan 10  2012 A03-music.apk
-rw-r--r-- 1 root root   1786831 Jan 10  2012 A04-musicserver.apk
-rw-r--r-- 1 root root   3038175 Jan 10  2012 A05-VideoPlayer.apk
-rw-r--r-- 1 root root   4675181 Jan 10  2012 A06-MovieStory.apk
-rw-r--r-- 1 root root   4415718 Jan 10  2012 A07-ArcWorkshop4.6.apk
-rw-r--r-- 1 root root   8401969 Jan 10  2012 A08-PSP.apk
-rw-r--r-- 1 root root   3482357 Jan 10  2012 A09-ArcSyncForLenovo.apk
-rw-r--r-- 1 root root   3210094 Jan 10  2012 A10-FaceService.apk
-rw-r--r-- 1 root root    473935 Jan 10  2012 A11-SMService.apk
-rw-r--r-- 1 root root    482779 Jan 10  2012 A12-DRMPlayer.apk

 

Voila!!!!   the precious “32-warships.apk” is recovered.  I downloaded Astro File Manager , copied the files to the K1, and tapped them in Astro.  Click install and I can now enjoy my AOSP ICS, and my significant other can keep playing her games.

Truth in advertising?

So I happen to glance at a local paper’s full-page advert for discount electronics at “Distribution Price Buster”, and my eye catches the ads for 7 inch and 10 inch android tablets.   I am always curious what Chinese company has made low-cost tablets for the masses at ridiculously low prices.

 

79$ for 7 inch tablet???    !!!129$ for a 10 inch android tablet!!!!  WOW indeed!  I wonder how much storage they have?   But wait a second – what version of Android is that?  Honeycomb?  Ice Cream Sandwich?  Gingerbread?!  Looking closely….

 

Its apparently iOS!   As seen on TV!

 

Hopefully it runs Angry Birds.

 

🙂 🙂