I needed to test IPv6 overlay on DMVPN. Easy enough; there are plenty of DMVPN configuration guides out there and even some on IPv6. I tested on a version of 12.4T on 7200-series routers in GNS3 and the config was really as simple as taking my working IPv4 DMVPN setup and adding the same commands with an "ipv6" prefix, using IPv6 addresses and adding IPv6 EIGRP.
Tuesday, November 24, 2015
Tuesday, August 25, 2015
Perl Automation Saves the Day - 6 of them in fact!
How does one analyze 182,000+ lines of Excel looking for correlations? I suppose there may be some Excel magic, but when IP addresses are involved - and I know Excel hasn't had an out-of-the-box IP network sort order, methinks I'm in for a long slog.
The background: I have an export from a customer IP address management tool and we needed to verify the block type assignments were correct. To do this, I needed to understand the top-level aggregates (IP network and mask) for each top-level container (site). There were around 50 aggregates in each of 6 containers. I then needed to verify if the 30,000+ subnetworks in each container did or didn't fall within the 50 associated aggregate blocks.
Where to begin? Looking at, analyzing and deciding on 1 line per second would still take almost 6 and a half working days (8 hours / per day); and 1 per second is a gross underestimate of the actual time required. I needed to automate this somehow.
Friday, August 21, 2015
Notepad++, DBGP and ... Python!
My recent work with Notepad++ got Perl debugging working with the DBGP Plugin. Originally written for PHP debugging, I did a little tweaking on the Perl side and got it working.
I don't know a lick of Python, but could I get Python to work with the DBGP Plugin too? Worth a shot!
Thursday, August 13, 2015
++ for Notepad++
I've been doing some work lately with Notepad++ to get Perl debugging working. I used NppExec to automate a debug command from the Macro menu. But why stop there?
I dove headfirst into customizing Notepad++ into a full fledged Integrated Development Environment (IDE) for coding. I mainly do Perl, but also some C work and lots of Windows batch files. I added an NppExec script to "Compile", "Compile and Run" and "Clean" in build directories. It points to a pretty complex and branching Windows batch file that determines the correct action based on provided arguments and the current file extension.
How does this all work?
Wednesday, August 05, 2015
Debugging Perl Debugger: Part 3 - Automation
We have Perl debugging integrated with Notepad++. We fixed variable values so they show up in watch lists. Now we want to automate the use of Perl debugging directly from Notepad++ while editing a Perl script.
NppExec is a plugin with powerful automation features for Notepad++. The documentation showed it had all I needed to get this to work.
Tuesday, August 04, 2015
Debugging Perl Debugger: Part 2 - Variable Values Vindicated
In yesterday's post, I described how I got Perl debugging integrated with Notepad++. I had issues with watch variables only showing the variable name and type, not the value. I had source code from both the DBGp plugin and the Komodo Perl debugger. My only real option was to change the Perl debugger source as the plugin was written in a language I'm unfamiliar with and didn't have a compiler for.
The DBGp plugin offers a cool button labeled "DBG" which pops up a window with the raw XML messages sent between the debugger and the plugin. Like a packet capture trace file, this was a great place to start. Adding a watch variable and querying it's state showed the XML exchange and specifically where the value was returned:
... <property name="$VERSION" fullname="$VERSION" encoding="base64" type="scalar" constant="0" children="0" size="25" > <value encoding="base64"> <![CDATA[MS4wIC0gMjkgSlVMIDIwMTU=]]> </value> </property> ...
So it was getting sent. Why couldn't the plugin read and display it?
Monday, August 03, 2015
Debugging Perl Debugger: Part 1 - Notepad++ Integration
I use Notepad++ for most of my Windows text-based editing including Perl scripts. Every once in a while I'm stuck and need debugging, but I was too lazy to learn the Perl debugger command line. I had a simple Perl-specific IDE laying around solely to use for the integrated debugging in its Graphical User Interface (GUI). The ideal solution would be Perl debugger integration with Notepad++.
Google searches revealed there was no Perl-specific debugger integration in Notepad++; however, there was a debugger plugin - DBGP Plugin listed on the Notepad++ Plugins list. It was originally written for PHP and Xdebug integration. Further searches and the README lead me to believe it may support other programming languages as long as they supported the DBGP - common debug protocol. Could Perl work this way?
Tuesday, July 28, 2015
Comcast PWP is Dead, Long Live VinsWorld.com
With Comcast discontinuing the Personal Web Page (PWP) service as of this October, I needed an alternative to host VinsWorld.com.
From https://publish.comcast.net/splash/, which soon may no longer return a page or even resolve:
-
Please Note:
Effective October 8, 2015, the Personal Web Page service (feature of XFINITY Internet) will no longer be available. Please retrieve all content currently saved on your site before October 8, 2015 to avoid permanently losing your files and information.
Customers who have activated this feature, please check your email for a special offer.
Monday, July 27, 2015
What a Difference 2 Years Makes
Two years ago, I was using Talkatone to make calls with Google Voice on Wi-Fi while traveling abroad to avoid roaming fees with my cellular carrier.
One year ago, I was using Talkatone as a standalone service to make Wi-Fi calls while on vacation in the mountains - a veritable carrier dead zone - after Google pulled the plug on third-party apps using the Google Voice API.
Now, two years after the first go around, one year later in the same mountain getaway, I changed my "Forward Unreachable" setting to my Google Voice number and could receive calls from anyone on my carrier number via the Hangouts app - provided I was in the cabin where Wi-Fi was strong.
Two years is an eternity in tech and waiting for this Google Voice / Hangouts integration was frustratingly long; however, the pay off was worth it. Next stop, carrier Wi-Fi calling on AT&T ... any bets on how long that one will take?
Tuesday, July 07, 2015
Friday, June 19, 2015
Internet of Stuff(-it Marketing Fluff)
I've attended a lot of Internet of Things (IoT) talks and webinars lately as it's one of the tech buzz words you'll need to know in 2015. While this is an emerging concept to the discussion as of late, the term itself has been around since 1999 and has been defined, redefined, coopted and usurped by many a vendor to flog their old product with new marketing material.
When it comes to technology marketing, I need three things:
- Vision - sweeping future statement (optionally includes rainbows and unicorns)
- Definition - what does the technology do
- Architecture - how does it do it
When any of the above are not well-defined, vendor slide decks start to look like Swiss cheese.
Wednesday, May 27, 2015
Tuesday, May 12, 2015
Changing MAC Address on Windows
In testing wireless across a conference center, I do a few different things.
- Scanning tools like Vistumbler (laptop) and Wifi Analyzer (Android phone) to discover access points
- Throughput testing with Speedtest
- Connecting the wireless card on the laptop to the network to force splash screen authentication
The last part is challenging as after the first connection, repeated disconnects and reconnects will provide the same IP address through DHCP and bypass the splash screen. This is because most systems cache MAC addresses so repeated authentication isn't required for the duration of the lease.
Changing MAC addresses will present as a new device and thus a new IP address is issued and authentication via the splash screen is required. But how to easily change a MAC address in Windows?
Thankfully, it can be done. Unfortunately, it's a bit of obsured registry hacking that does it.
Enter MACChanger.bat. This Windows batch file uses 'reg', 'wmic' and 'netsh' to query the registry and set the appropriate keys to change the MAC address of the specified adapter. It's pretty easy, but does require Administrator privileges.
If you set the wireless network to automatically connect, then a simple:
C:\> macchanger.bat "Wireless Network Connection" -r
Changes the MAC address to a random value and reconnects to the network.
MACChanger.bat can be found on my Software page.
Tuesday, March 31, 2015
Netcat Proxy on Windows: Part 2 - v4/v6 Translation
In my previous post I looked at a Netcat proxy on Windows using named pipes to emulate how it works on *nix. Now that I got it working in the straightforward case, I decided to see if Netcat could be used as an IPv4 / IPv6 translation proxy.
This of course requires a Netcat that has IPv6 capabilities and because of my setup - works on Windows. Luckily, I have just the thing - nc64 which you can grab here.
The setup is more or less the same as for the IPv4-only test case last discussed: start the named pipe server, start the Netcat proxy, then connect. However, in this case, the Netcat proxy setup is slightly different. We'll need to listen on IPv4 and forward to IPv6 and vice versa for the opposite test case. Let's look at IPv4 to IPv6 first.
Monday, March 30, 2015
Netcat Proxy on Windows: Part 1 - Named Pipes
Using Netcat as a proxy has been well documented and is pretty straightforward on *nix:
> mkfifo backpipe > nc -l 3000 0<backpipe | nc www.google.com 80 1>backpipe
However, I'm running Windows and the concept of named pipes (mkfifo) is a bit different. There isn't a Windows command to create a named pipe; rather, it must be programmatically done. Also, it operates a bit different so even with a Windows named pipe, the above command didn't work for me.
There are workarounds, using the '-e' option but I couldn't get those to send data back to me. So I figured it was time to find out how named pipes work and see what I could do with that.
Wednesday, March 25, 2015
Defeating Lollipop Longing with KitKat Kustomizations
Even with a third-party ROM, I won't be getting Lollipop on my long-in-the-tooth Samsung Galaxy S3. It runs fine, doesn't give me any real troubles, gets app updates from the Play Store - just no operating system updates.
And of course, that's the issue.
Some of the new features of Lollipop - most notably notifications and smart lock - are missing from KitKat (4.4.2 is what my GS3 is running). And I need them!
Developers to the rescue!
Notifications
For notifications, I looked at a few options and first settled on Heads-up notifications. It was easy to set-up and use, offered a clean and smooth user interface and did what I wanted - mostly. It didn't offer multiple notifications, only the latest one. Feature requests were made but it seems the developer doesn't want that in this app. From the open-source repository:
-
"I ran a poll on my website a while ago, where over 1,000 users voted. Roughly 50% of the users wanted support for multiple notifications. [...] (this option should probably be implemented in a separate app as it kills the whole point of non-intrusive notifications)."
Since "Android app developer" isn't on my resume and my limited programming chops couldn't make heads or tails of the open source code, I needed to find something else.
Enter Floatify. This app does the same but allows for multiple notifications. However, you'll need the ProKey ($2.49) to enable all features. I sprung for it and am pretty happy so far.
Smart Lock
Like notifications, I looked at a few options and settled on Dislock. This allowed me to set up my home WiFi network as a trusted location and disable the lockscreen while at home. I previously used the pattern unlock but this app (and most others of this kind to be fair) only supports PIN and password mode. So I had to switch and get used of using PIN to unlock; not a big deal.
This app too has a paid-for mode ($2.99) with an in-app purchase to allow more than one trusted "device". Since I've set up my home WiFi, I can't set up my Bluetooth headset or car Bluetooth also without the purchase. For now, skipping the lockscreen at home is fine.
Another note is that when this app installs and activates, it changes the default lockscreen security to "None" when on the trusted network. This means pressing any button on my phone (power or home) activates the home screen. This can lead to accidental app opening or other issues since there isn't the intermediate swipe to get to the home screen. I tried setting the default lockscreen security to "Swipe" and it WORKED! Now, at home, pressing a button activates the swipe to unlock screen (no security). And when I'm away, PIN to unlock appears to maintain security in untrusted locations. Works a treat!