Help with Ethernet shield world wide IP

Hello!!!

I have make light controller with the Ethernet shield and it just have an local IP-adress. How do I give it an world wide IP, so I can control my light world wide and not just in my home. How do I do that???

Thanks!!!

PS: Sorry for my bad English:)

Public IP addresses aren't portable. Portable IP address are not public.

The way it is usually done is to have a public server act as a gateway. Your device uses a local IP address and connects to the public server at a fixed public IP address. The server will then accept connections on another port and forward traffic in both directions between the client and your device.

Since your device is making an outgoing connection to a known public address it doesn't need a public address of its own.

Since the server doesn't move around it doesn't need a portable address.

In a home network, the gateway that johnwasser refers to is typically the router that you use to connect to the internet. What you're asking for would be implemented by setting up port forwarding on the router so that it will accept incoming messages for your ethernet shield and forward them to the correct address. From the outside world, the web server accepting connections via your ethernet shield would appear to be available on some other port on your router. Sometimes your router's IP address is fixed and you can simply rely on knowing the fixed IP address and port to connect to it from the general internet. Other times your internet provider may provide you with a dynamic address in which case you can use a dynamic DNS service to enable clients to find out what your current address is.

I've used the free version of no-ip.com below for years. It will work with an arduino server setup.

http://dyn.com/dns/

Public IP addresses aren't portable. Portable IP address are not public.

By use BGP (Border Gateway Protocol) and work with ARIN, by meet ARIN requirement min /21 IP block plus other conditions, we could make Public IP addresses "portable/Multi-homing".

By use BGP (Border Gateway Protocol) and work with ARIN, by meet ARIN requirement min /21 IP block plus other conditions, we could make Public IP addresses "portable/Multi-homing".

No, we could make a network of over 2000 IPs portable and not a single one. That's a notable difference in my opinion. And tell me how you plan to implement BGP into an Arduino.

pylon:

By use BGP (Border Gateway Protocol) and work with ARIN, by meet ARIN requirement min /21 IP block plus other conditions, we could make Public IP addresses "portable/Multi-homing".

No, we could make a network of over 2000 IPs portable and not a single one. That's a notable difference in my opinion. And tell me how you plan to implement BGP into an Arduino.

Once ip port to cisco router,then game start. BGP (Border Gateway Protocol) as name is router/gateway protocol is not much to do with device behind router such as server/work station/arduino...

Once ip port to cisco router,then game start. BGP (Border Gateway Protocol) as name is router/gateway protocol is not much to do with device behind router such as server/work station/arduino...

You're writing about stuff you don't understand. With BGP you announce IP networks not single IPs, the Internet routing table is big enough without silly thing like you are suggesting here. BGP is used by Internet Service Providers and bigger companies (if they have multiple inter-network connections) to make their internet connection more fail safe. I'm quite sure you won't get an AS number (this is necessary to take part in the worldwide BGP community) just to make your Arduino "portable".

pylon:

Once ip port to cisco router,then game start. BGP (Border Gateway Protocol) as name is router/gateway protocol is not much to do with device behind router such as server/work station/arduino...

You're writing about stuff you don't understand. With BGP you announce IP networks not single IPs, the Internet routing table is big enough without silly thing like you are suggesting here. BGP is used by Internet Service Providers and bigger companies (if they have multiple inter-network connections) to make their internet connection more fail safe. I'm quite sure you won't get an AS number (this is necessary to take part in the worldwide BGP community) just to make your Arduino "portable".

I agree to make one or few Arduino to portable/multi-homing by using BGP is silly. However I read whole thread I can not find any place I did such suggestion.
Let review what BGP does here, It design for portable/multi-homing, but lately people could extended it for Geoip or other purpose.
BGP will apply min /21 i.e. 2048 ip addresses. People once implement it, the whole network will be benefit. if you have one Arduino behind router there is no reason not leave it as the way for multi-homing.

The company I work has multi-home( inbound only) and meet /21, but since network guy already make a big deal about ip address utilize rate for single home. I would say no multi-homing. I am silly from time to time but not always. double homing will make double big deal. I could do that math. :slight_smile:

my 2 cents suggestions for OP

  1. Sign public ip to arduino tcp/ip shield. direct connect. ( make sure turn firewall at tcp/ip shield)
  2. Put arduino tcp/ip shield into DMZ zone of firewall.
  3. Set port forwarding at firewall, forwarding port number.
  4. Set VPN client at arduino tcp/ip shield.
  5. Set Reverse SSH Tunneling at arduino tcp/ip shield.
  6. If you already have BPG/multi-homing, leave it alone and let Arduino have portable ips.

some kind of bridge, tunneling, porting...

Let review what BGP does here, It design for portable/multi-homing

No. Border Gateway Protocol - Wikipedia
Multi-homing and portable in this context means something completely different than you writing about here. Portable means you can keep your IP addresses when you change your internet provider. Multi-homing means you can have multiple internet providers and manage yourself which traffic you want to have over which connection.

You suggestion number 3 is the only one that will work and what I would suggest to the OP.

The others don't make sense:

  1. No Arduino TCP/IP shield has a built-in firewall (to my knowledge).
  2. Putting the Arduino into the DM zone alone doesn't make it available on the Internet.
  3. Arduino isn't able to do SSH let alone SSH tunneling.
  4. Arduino isn't able to do VPN

Now you start to argument context means?

The others don't make sense:

  1. No Arduino TCP/IP shield has a built-in firewall (to my knowledge).
  2. Putting the Arduino into the DM zone alone doesn't make it available on the Internet.
  3. Arduino isn't able to do SSH let alone SSH tunneling.
  4. Arduino isn't able to do VPN

There are ton of threads at this forum talking about some kind of opensource/linux base Arduino TCP/IP shield.

Here is some but incomplete list;

  1. OpenWrt

  2. DD-WRT

  3. Pogoplug

  4. Raspberry Pi
    ...

  5. No Arduino TCP/IP shield has a built-in firewall (to my knowledge).
    build in at above shield, one command to turn, one to turn off.

  6. Putting the Arduino into the DM zone alone doesn't make it available on the Internet.
    I do those thing all the time however only for test purpose, and not for Arduino, for some thing else. I am not supposed to do that. but I have root password. Ok you tell me what else make it available on the Internet?

  7. Arduino isn't able to do SSH let alone SSH tunneling.
    either build in or one command to install, need modify config file since we need Reverse SSH Tunneling not standard SSH Tunneling.

  8. Arduino isn't able to do VPN
    one command to install, one on, one off.

There are ton of threads at this forum talking about some kind of opensource/linux base Arduino TCP/IP shield.

OpenWRT is not an Arduino TCP/IP shield but an operating system for a WiFi access point/router.
Raspberry Pi is complete ARM-PC with a Linux operating system and also not an Arduino shield.

build in at above shield, one command to turn, one to turn off.

None of that list is an Arduino shield.

I do those thing all the time however only for test purpose, and not for Arduino, for some thing else. I am not supposed to do that. but I have root password. Ok you tell me what else make it available on the Internet?

I just told that putting it into a DM zone is not sufficient to make it available on the public Internet.

  1. Arduino isn't able to do SSH let alone SSH tunneling.
    either build in or one command to install, need modify config file since we need Reverse SSH Tunneling not standard SSH Tunneling.

  2. Arduino isn't able to do VPN
    one command to install, one on, one off.

I get the impresion, you have absolutely no clue about what an Arduino is. An embedded Linux box is not an Arduino!

I get the impresion, you have absolutely no clue about what an Arduino is. An embedded Linux box is not an Arduino!

You got that right! 8)

zoomkat:
I've used the free version of no-ip.com below for years. It will work with an arduino server setup.

Managed DNS Services - 100% DNS Uptime - No-IP

My Dyn Account

Have you used the noip.com with the Arduino server? How does noip.com find out if a dynamic IP has changed on the remote Arduino???

Sounds like a sweet solution to a project I am beginning to work on; an Arduino in a remote location connected to the internet to report back to home base what's up and to take some commands. The remote will have a dynamic IP address which is(was) a problem !

D. Garrison
Gaithersburg, MD

How does noip.com find out if a dynamic IP has changed on the remote Arduino???

A client request is made to on-ip.com, which identifies the current IP address being used by the client/server.

zoomkat:

How does noip.com find out if a dynamic IP has changed on the remote Arduino???

A client request is made to on-ip.com, which identifies the current IP address being used by the client/server.

I understand that no-ip.com has a Dynamic Update Client available for Windows, etc, but how do we do this with the remote Arduino? Have you written some code to do this?

Thanks and best regards

D. Garrison

sierrasmith71:

zoomkat:

How does noip.com find out if a dynamic IP has changed on the remote Arduino???

A client request is made to on-ip.com, which identifies the current IP address being used by the client/server.

I understand that no-ip.com has a Dynamic Update Client available for Windows, etc, but how do we do this with the remote Arduino? Have you written some code to do this?

Thanks and best regards

D. Garrison

I believe there is a specific URL you can go to, so you just have the arduino make a connection. I ran into trouble with no-ip free though, my IP address didn't change for a long period of time, so they deleted my url and returned it to the pool. I started using http://freedns.afraid.org/ instead. afriad.org free DNS does have an update URL that you can use. It is available in your control panel.

I understand that no-ip.com has a Dynamic Update Client available for Windows, etc, but how do we do this with the remote Arduino? Have you written some code to do this?

There is arduino client code that can make the ip update request to no-ip.com. The free no-ip service sends an email to the subscriber every 30 days that must be responded to for the free account to remain active. $15 is the yearly paid fee for the service with some other features.