packages feed

network-builder-0.1.0: README.md

# network-builder : Linux Network NameSpace Builder for test

[![Hackage version](https://img.shields.io/hackage/v/network-builder.svg?style=flat)](https://hackage.haskell.org/package/network-builder)  [![Build Status](https://travis-ci.org/junjihashimoto/network-builder.png?branch=master)](https://travis-ci.org/junjihashimoto/network-builder)

network-builder makes network using Linux Network NameSpaces and tunnels.

## Getting started

Install this from Hackage.

    cabal update && cabal install network-builder

## Usage

When you create network,
put network-builder.yml on current directory.
The yaml format is below.

```
nss:
- - ip: 192.168.10.1/24
    name: br1
  - - - ip: 192.168.10.2/24
        name: veth-2
      - name: server2
        nss:
        - - ip: 192.168.11.1/24
            name: br1
          - - - ip: 192.168.11.4/24
                name: veth-3
              - name: server3
    - - ip: 192.168.10.3/24
        name: veth-4
      - name: server4
        nss:
        - - ip: 192.168.12.1/24
            name: br1
          - - - ip: 192.168.12.4/24
                name: veth-5
              - name: server5
```

When you create tunnel for server2 of namespace
put yaml file(just example) below.

```
- name: server2
- tag: gretunnel
  Name: gre2
  LocalIp: 192.168.10.2
  RemoteIp: 192.168.10.3
  RemoteNetwork: 192.168.12.0/24
  GreDeviceIp: 192.168.11.254/24
```


## Commands

### create network

```
network-builder create
```

### destroy network

```
network-builder destroy
```

### create tunnel

```
network-builder create-tunnel "yaml-file"
```

### destroy tunnel

```
network-builder destroy-tunnel "yaml-file"
```