Skip to content

Commit fe0f841

Browse files
committed
- implement forwarding - implement random CIDR Signed-off-by: Jasmin Fazlic <[email protected]>
1 parent 631f361 commit fe0f841

18 files changed

+1095
-75
lines changed

Dockerfile.artifact

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ ARG DEBIAN_VERSION=10
33

44
FROM --platform=$TARGETPLATFORM debian:${DEBIAN_VERSION} AS build
55
ENV DEBIAN_FRONTEND=noninteractive
6-
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev git ninja-build python3-pip
6+
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev libssl-dev git ninja-build python3-pip
77
RUN pip3 install meson
88
RUN git clone https://gitlab.freedesktop.org/slirp/libslirp.git /libslirp
99
WORKDIR /libslirp

Dockerfile.buildtests

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ ARG LIBSLIRP_COMMIT=v4.6.1
22

33
# Alpine
44
FROM alpine:3 AS buildtest-alpine3-static
5-
RUN apk add --no-cache git build-base autoconf automake libtool linux-headers glib-dev glib-static libcap-static libcap-dev libseccomp-dev libseccomp-static git meson
5+
RUN apk add --no-cache git build-base autoconf automake libtool linux-headers glib-dev glib-static libcap-static libcap-dev libseccomp-dev openssl-dev openssl-libs-static libseccomp-static git meson
66
RUN git clone https://gitlab.freedesktop.org/slirp/libslirp.git /libslirp
77
WORKDIR /libslirp
88
ARG LIBSLIRP_COMMIT
@@ -14,7 +14,7 @@ RUN ./autogen.sh && ./configure LDFLAGS="-static" && make && cp -f slirp4netns /
1414
# Ubuntu
1515
FROM ubuntu:18.04 AS buildtest-ubuntu1804-common
1616
ENV DEBIAN_FRONTEND=noninteractive
17-
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev git ninja-build python3-pip
17+
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev libssl-dev git ninja-build python3-pip
1818
RUN pip3 install meson
1919
RUN git clone https://gitlab.freedesktop.org/slirp/libslirp.git /libslirp
2020
WORKDIR /libslirp
@@ -32,7 +32,7 @@ RUN ./configure && make && cp -f slirp4netns /
3232

3333
# openSUSE (dynamic only)
3434
FROM opensuse/leap:15 AS buildtest-opensuse15-common
35-
RUN zypper install -y --no-recommends autoconf automake gcc glib2-devel git make libcap-devel libseccomp-devel ninja python3-pip
35+
RUN zypper install -y --no-recommends autoconf automake gcc glib2-devel git make libcap-devel libseccomp-devel libopenssl-devel ninja python3-pip
3636
RUN pip3 install meson
3737
RUN git clone https://gitlab.freedesktop.org/slirp/libslirp.git /libslirp
3838
WORKDIR /libslirp

Dockerfile.tests

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ ARG LIBSLIRP_COMMIT=v4.6.1
22

33
FROM ubuntu:20.04 AS build
44
ENV DEBIAN_FRONTEND=noninteractive
5-
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev git ninja-build python3-pip
5+
RUN apt update && apt install -y automake autotools-dev make gcc libglib2.0-dev libcap-dev libseccomp-dev libssl-dev git ninja-build python3-pip socat
66
RUN pip3 install meson
77
RUN git clone https://gitlab.freedesktop.org/slirp/libslirp.git /libslirp
88
WORKDIR /libslirp

Makefile.am

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,16 @@ noinst_LIBRARIES = libparson.a
77
AM_TESTS_ENVIRONMENT = PATH="$(abs_top_builddir):$(PATH)"
88
TESTS = tests/test-slirp4netns-api-socket.sh \
99
tests/test-slirp4netns-cidr.sh \
10+
tests/test-slirp4netns-cidr6.sh \
1011
tests/test-slirp4netns-configure.sh \
1112
tests/test-slirp4netns-dhcp.sh \
1213
tests/test-slirp4netns-disable-dns.sh \
1314
tests/test-slirp4netns-disable-host-loopback.sh \
1415
tests/test-slirp4netns-exit-fd.sh \
16+
tests/test-slirp4netns-hostfwd.sh \
17+
tests/test-slirp4netns-hostfwd4.sh \
18+
tests/test-slirp4netns-hostfwd6.sh \
19+
tests/test-slirp4netns-ipv6.sh \
1520
tests/test-slirp4netns-macaddress.sh \
1621
tests/test-slirp4netns-nspath.sh \
1722
tests/test-slirp4netns-outbound-addr.sh \
@@ -47,7 +52,7 @@ libparson_a_CFLAGS = $(AM_CFLAGS) -I$(abs_top_builddir)/vendor/parson
4752
libparson_a_SOURCES = vendor/parson/parson.c
4853

4954
slirp4netns_SOURCES = main.c slirp4netns.c api.c sandbox.c seccompfilter.c
50-
slirp4netns_LDADD = libparson.a @GLIB_LIBS@ @SLIRP_LIBS@ @LIBSECCOMP_LIBS@ -lpthread
55+
slirp4netns_LDADD = libparson.a @GLIB_LIBS@ @SLIRP_LIBS@ @LIBSECCOMP_LIBS@ -lpthread -lcrypto
5156
man1_MANS = slirp4netns.1
5257

5358
generate-man:

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# slirp4netns: User-mode networking for unprivileged network namespaces
1+
# slirp4netns: User-mode networking for unprivileged network namespaces
22

33
slirp4netns provides user-mode networking ("slirp") for unprivileged network namespaces.
44

@@ -73,7 +73,7 @@ Also available as a package on almost all Linux distributions:
7373
* [Arch Linux](https://www.archlinux.org/packages/community/x86_64/slirp4netns/)
7474
* [openSUSE (since Leap 15.0)](https://build.opensuse.org/package/show/openSUSE%3AFactory/slirp4netns)
7575
* [SUSE Linux Enterprise (since 15)](https://build.opensuse.org/package/show/devel%3Akubic/slirp4netns)
76-
* [Debian GNU/Linux (since 10.0)](https://packages.debian.org/buster/slirp4netns)
76+
* [Debian GNU/Linux (since 10.0)](https://packages.debian.org/buster/slirp4netns)
7777
* [Ubuntu (since 19.04)](https://packages.ubuntu.com/search?keywords=slirp4netns)
7878
* [NixOS](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/networking/slirp4netns)
7979
* [Gentoo Linux](https://packages.gentoo.org/packages/app-emulation/slirp4netns)
@@ -126,7 +126,7 @@ starting slirp, MTU=65520
126126
link/ether c2:28:0c:0e:29:06 brd ff:ff:ff:ff:ff:ff
127127
inet 10.0.2.100/24 brd 10.0.2.255 scope global tap0
128128
valid_lft forever preferred_lft forever
129-
inet6 fe80::c028:cff:fe0e:2906/64 scope link
129+
inet6 fe80::c028:cff:fe0e:2906/64 scope link
130130
valid_lft forever preferred_lft forever
131131
(namespace)$ echo "nameserver 10.0.2.3" > /tmp/resolv.conf
132132
(namespace)$ mount --bind /tmp/resolv.conf /etc/resolv.conf
@@ -169,13 +169,13 @@ The latest revision of slirp4netns is regularly benchmarked (`make benchmark`) o
169169
Build dependencies (`apt-get`):
170170

171171
```console
172-
$ sudo apt-get install libglib2.0-dev libslirp-dev libcap-dev libseccomp-dev
172+
$ sudo apt-get install libglib2.0-dev libslirp-dev libcap-dev libseccomp-dev libssl-dev
173173
```
174174

175175
Build dependencies (`dnf`):
176176

177177
```console
178-
$ sudo dnf install glib2-devel libslirp-devel libcap-devel libseccomp-devel
178+
$ sudo dnf install glib2-devel libslirp-devel libcap-devel libseccomp-devel openssl-devel
179179
```
180180

181181
Installation steps:
@@ -187,7 +187,7 @@ $ make
187187
$ sudo make install
188188
```
189189

190-
* [libslirp](https://gitlab.freedesktop.org/slirp/libslirp) needs to be v4.1.0 or later.
190+
* [libslirp](https://gitlab.freedesktop.org/slirp/libslirp) needs to be v4.1.0 or later. Using v4.5.0 or later is recommended.
191191
* To build `slirp4netns` as a static binary, run `./configure` with `LDFLAGS=-static`.
192192
* If you set `--prefix` to `$HOME`, you don't need to run `make install` with `sudo`.
193193

Vagrantfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Vagrant.configure("2") do |config|
2020
yum install -y \
2121
autoconf automake make gcc gperf libtool \
2222
git-core meson ninja-build \
23-
glib2-devel libcap-devel \
24-
git-core libtool iproute iputils iperf3 nmap jq
23+
glib2-devel libcap-devel openssl-devel \
24+
git-core libtool iproute iputils iperf3 nmap jq socat
2525
2626
# TODO: install udhcpc (required by test-slirp4netns-dhcp.sh)
2727

0 commit comments

Comments
 (0)