I have an ARM Linux (kernel 3.17) for field use and it has multiple NIC, say eth0, eth1, and wlan0. On the left side, I need to use a PC0 to configure the ARM Linux so that it can change it's behavior, like how often to log data, power on a channel and so on. It also allows field people to configure eth1's IP address so customer's devices can read data from the ARM Linux system. I should listen to eth0, as well as eth1 to perform simple data retrieving (such as ftp).
PC0 <---left side---> [eth0 ARM Linux eth1]<---right side:a bunch of devices>
- We use eth0 to configure, not a serial port, USB, to simplify coding. So we are using two Ethernet (and a Wi-Fi). Eth0 IP is assigned statically using a script when booting Linux.
- We can't predict what IP customer will specify on eth1. They use our GUI software on PC0 to specify that. They don't use DHCP server.
- There is only one PC0 on the left side. there are many other devices on right side. Customer may not want us to even participate on right side using a PC. So we have to use eth0 to configure the ARM Linux device, not using eth1.
- Left side should never reach right side. They should be isolated networks. They both are local area networks. None will reach the Internet. ARM Linux is not a bridge or router.
- ARM Linux application only listens, and then respond when requested. It never initiates any thing. The reply should only go through the same NIC that the request comes in.
Since we predefine the IP for eth0 and PC0, it is possible that our customer accidentally uses the same subnet for their network. We have a lot of customers so this may happen.
- Will Linux and TCP stack be confused? Is there a way to still make it working smoothly?
- What if our PC0 accidentally has same IP with one of device on the right side? Will Linux and TCP stack be confused now and is there any way to make it work?
- What if my eth0 has same IP address with one of the devices on the right side?
- What if eth0 has same IP as eth1?
I know the situation sounds stupid, but I am just thinking out loud so that I can foresee any problems and avoid them. So if there is a lot of problems for eth0 and eth1 (and Wi-Fi) that need isolation to be in same subnet, I may just tell our customer we reserve a special subnet and they should not use it.