GithubHelp home page GithubHelp logo

shubham0704 / gatekeeper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from altramayor/gatekeeper

0.0 3.0 0.0 41 KB

First open source DoS protection system

License: GNU General Public License v3.0

Makefile 4.03% C 91.52% Shell 4.45%

gatekeeper's Introduction

Gatekeeper

How to Set Up

Install and Configure Dependencies

Install the following software dependencies:

$ sudo apt-get update
$ sudo apt-get -y -q install git clang doxygen hugepages build-essential linux-headers-`uname -r`

To use DPDK, make sure you have all of the environmental requirements: http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html#running-dpdk-applications.

Note that DPDK requires the use of hugepages; instructions for mounting hugepages are available in the link above.

Once the software dependencies have been installed and the hugepages have been configured, you are ready to build gatekeeper.

Obtain Source

Upon cloning the gatekeeper repository, change directory to the dpdk submodule and initialize it:

$ cd dpdk
$ git submodule init
$ git submodule update

(Note: these initialization steps are not needed if you clone the gatekeeper repository using git clone --recursive ....)

Compile

While in the gatekeeper directory, run the setup script:

$ ./setup.sh

This script compiles DPDK and loads the needed kernel modules. It also sets two environmental variables: RTE_SDK and RTE_TARGET. They must be set before gatekeeper will compile. After running the setup script, you may want to save the environmental variables in your shell's preferences file. For example, in Bash, you can do:

$ echo "export RTE_SDK=${RTE_SDK}" >> ${HOME}/.profile
$ echo "export RTE_TARGET=${RTE_TARGET}" >> ${HOME}/.profile

Otherwise, each time you login you will need to set these environmental variables again.

Once DPDK is compiled and the variables are set, gatekeeper can be compiled:

$ make

Configure Network Adapters

Before gatekeeper can be used, the network adapters must be bound to DPDK. For this, you can use the script dpdk/tools/dpdk-devbind.py. For example:

$ sudo dpdk/tools/dpdk-devbind.py --bind=uio_pci_generic enp131s0f0

This command binds the interface enp131s0f0 to the uio_pci_generic driver so that frames can be passed directly to DPDK instead of the kernel.

How to Run

Once gatekeeper is compiled and the environment is configured correctly, run:

$ sudo ./build/gatekeeper

gatekeeper's People

Contributors

cjdoucette avatar altramayor avatar mengxiang0811 avatar

Watchers

James Cloos avatar Shubham Bhardwaj avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.