Ask Slashdot: Best Way To Solve a Unique Networking Issue?
New submitter petro-tech writes: I work as a service technician, maintaining and repairing gas pumps and POS equipment. In my day to day activities, one that consumes a ton of time and is relatively regular is the process of upgrading the software on pumps. This is done by connecting to the pump via direct ethernet from my laptop, then running a manufacturer-provided program that connects to the device and pushes the new software. Some sites have 8+ pumps with 2 devices in each, and at 20-30 minutes apiece this can be quite time consuming. Unfortunately the devices are not actually on a network, and as such cannot be updated remotely, also since they are not on a network, they are all configured with the same IP address. Additionally the software doesn't allow you to specify the adapter to use. I would like to be able to get to a site, connect a cable to each pump, and load them all at the same time. The only way I can figure to accomplish this with the software we've been provided is to do this: Get a 16-port powered USB hub, with a usb-ethernet adaptor in each port; Set up 16 VM's with extremely stripped down XP running on each, with only one USB-ethernet adaptor assigned to each VM; Set XP to boot the application for loading software as its shell; and load each device that way at the same time. Is there a better way to accomplish this?
Have a question for Slashdot's readers? Take a look at other recent questions first to see if someone else has had a similar question. And if not, ask away! The more details and context you include, the more likely your question will be selected.
If you fix this problem they will more then likely fire you. Nobody likes a smart-ass. They know what your time is worth, likely not much. Just do it the slow way.
Seriously, you are an upgrade monkey.Just monkey on and look for a better job where you can use your skills and you will be _paid for them_.
Alternatively: If your employer is contracting to do the upgrades, figure out how to do it in 25% of the time and take the business from them. They don't own their clients, but likely think they do.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
OP said "day to day" activities. He's updating one pump at a time. What are the other pumps doing? Dispensing gasoline. To update all 16 pumps at once would render all 16 pumps out of service for half an hour. That is simply unacceptable for the station. They would not want to just shut everything down and eliminate a half-hour's worth of revenue from 15 pumps just so OP is not inconvenienced.
This is a typical IT viewpoint. We have a technical problem to solve, and to hell with the users. They're just in the way of our supreme elegance anyway.
How about a moderation of -1 pedantic.
I think what he's asking is whether or not he can network them together even though they all have the same IP address. And the answer is yes.
As a network engineer, I can think of a way with a Cisco catalyst switch, OR, a linux box with multiple ethernet ports:
For a Cisco switch, get a layer 3 switch, enable ip routing, put each switch port on a separate vlan, create an SVI for each vlan that is on a /30 subnet using the first address of that subnet. Create an access control list so that all traffic that goes ingress to the second IP address of the vlan subnet has its destination address changed to the static IP address of the equipment and the source address changed to be the IP address of the SVI, and then change all egress traffic from the second subnet IP to change the destination address to match that of your laptop and the source address to match that of the second IP address in the subnet.
For a linux box you'd do the same thing, only using SNAT and DNAT in iptables.
Effectively what you're doing is creating a NAT table that allows you to uniquely address each device, without actually changing the IP addresses themselves to become unique.
If you're not very affluent in networking, the above will sound VERY confusing, but trust me it can be done.
Crappy used laptops are cheap. You don't need 16. You need 4. The first one will be about done by the time you get the 4th one started.
I think you like many are missing the main question and would in fact be the only question I'd ask him and it would determine if you should continue or stop right there.
He offered me a problem, so I offered him a solution. I'm an engineer, I solve problems. He didn't ask for security (which this can be secured by the way, but that involves a bit more discussion, which I don't have enough information to counsel on.)
Are you paid by the hour? If yes, what the actual fuck are you thinking?
Have you ever heard of lean principles? Basically by reducing the number of steps it takes to perform a job, you reduce the chance of human error (thus increasing your product's quality) while also lowering costs. Managers who employ this technique love it when employees make suggestions like this that actually work.
Does his boss appreciate that kind of thing? I don't know, but if I was his boss, and he brought this kind of solution to me, that would gain him some extra brownie points. Instead of having him do that time wasting work, I'd maybe give him better jobs to do that may even pay more, if I had them available.
I think what he's asking is whether or not he can network them together even though they all have the same IP address. And the answer is yes.
As a network engineer, I can think of a way with a Cisco catalyst switch, OR, a linux box with multiple ethernet ports:
Yes, there are a few possible solutions, but I'm surprised that nobody has mentioned the biggest barrier to implementing any of them:
Trying to connect to 8+ pumps at the same time is going to require running 8+ ethernet cables from a central location to each pump. You're going to have cables all over the place, and unless it is done while the gas station is closed it means people driving over the cables, stepping on them, tripping on them and yanking them out of the socket, etc........
As a network engineer, I can think of a way with a Cisco catalyst switch, OR, a linux box with multiple ethernet ports:
That's way too much complication for what he needs.... Assuming each pump has a unique MAC, all you need to do is a bit of work with ARP tables. Collecting MAC's should be easy, cable up and try and ping the standard IP address... They will all reply to the ARP request. Scrape up the MAC's, dump them into his Virtual Machines running the update software to map that MAC to that IP in the VM and make the assignment never expire. Do your update, the software is unlikely to know the difference... For this approach, you only need a switch/hub and network cables.
My other idea was to build a VM box with a separate network segment for each VM, then map these all though a Linux VM that puts them on an 802.1q VLAN. Go buy a *cheap* managed switch (and I do mean cheap) and create one trunk port with each other port on a separate VLAN untagged. No need for an expensive Layer 3 switch... In fact, you could set it up on a cheap consumer router running OpenWRT as long as the switch supports VLANs, in which case the most expensive part of the hardware would be the network cabling..