https://github.com/smithclay/rlinklayer
Richard Linklayer: experimental TCP/IP over Amazon Cloudwatch Logs (and tags)
https://github.com/smithclay/rlinklayer
aws-lambda netstack serverless-framework
Last synced: 5 months ago
JSON representation
Richard Linklayer: experimental TCP/IP over Amazon Cloudwatch Logs (and tags)
- Host: GitHub
- URL: https://github.com/smithclay/rlinklayer
- Owner: smithclay
- License: isc
- Created: 2019-05-01T23:37:29.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-05-01T23:42:56.000Z (almost 7 years ago)
- Last Synced: 2024-04-14T09:26:28.533Z (almost 2 years ago)
- Topics: aws-lambda, netstack, serverless-framework
- Language: Go
- Size: 28.3 KB
- Stars: 60
- Watchers: 6
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
## Richard Linklayer (rlinklayer)
experimental userspace network overlay designed for serverless functions that tunnels through Amazon Cloudwatch Logs or AWS Lambda tags that uses Google's [netstack](https://github.com/google/netstack) library.
You could use this library to:
* Run non-privilged servers inside of AWS Lambda and access them over TCP/IP (slowly)
* Establish a (slow) TCP or UDP connection between function(s)
* Bridge a network running inside of AWS Lambda functions with a normal network.
The current state of this project is proof-of-concept/experimental. This isn't meant for anything production.
### running on AWS Lambda
Currently, this is only supported with a custom runtime. See `examples/template.yaml` for a sample function that runs an HTTP server in node.js.
A publicly-deployable AWS Lambda Layer is also provided for running with your own functions.
### running locally on Mac OS X
Special permissions are needed in Docker to create a tun or tap network interface. Because AWS Services are used as a link layer transport, AWS credentials are needed:
First, build the docker image:
```sh
docker build -t smithclay/rlinklayer .
```
Next, run the container with AWS credentials that can write and read to Amazon Cloudwatch Logs.
The `start-server.sh` script automatically creates a tun or tap network interface in the docker container, if one does not exist.
```sh
docker run --env AWS_ACCESS_KEY_ID=<> env AWS_SECRET_ACCESS_KEY=>--name richard-linklayer --privileged smithclay/rlinklayer ./start-server.sh
```
Then, run do networking stuff that interacts with an IP address that's a running function.
```sh
docker exec -ti richard-linklayer ping 192.168.1.21
```
### examples
Examples are in the `examples` directory.