GithubHelp home page GithubHelp logo

zehome / mlvpn Goto Github PK

View Code? Open in Web Editor NEW
518.0 46.0 129.0 1.91 MB

Multi-link VPN (ADSL/SDSL/xDSL/Network aggregation / bonding)

Home Page: http://www.mlvpn.fr/

License: BSD 2-Clause "Simplified" License

Shell 3.28% C 91.81% Makefile 0.95% M4 3.29% Nix 0.68%

mlvpn's People

Contributors

alkorin avatar congelli501 avatar davhau avatar flisk avatar flohoff avatar iblech avatar jedisct1 avatar justinburger avatar nbraud avatar nesro avatar ocochard avatar philpep avatar stapelberg avatar stevenleadbeater avatar tmolitor-stud-tu avatar zehome avatar zoobab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mlvpn's Issues

Integration with systemd

Hi,
For me, using an /etc/default/mlvpn file to which config files to read at startup is very convenient idea.

When playing with MLVPN on a Debian Jessie systemd enabled box, I had to type a "systemctl enable mlvpn" command to have MLVPN started at boot time.

Does it make sense to integrate this systemctl command within MLVPN installation script ?
Regards

Drop des privilèges

Permettre de lancer le soft, puis faire en sorte qu'il se drop ses privilèges!

Raspberry PI 2 et serveur Debian (kimsufi OVH)

Bonjour,

je n'arrive pas à faire fonctionner tout ça ;)
un peu d'aide serait super.

Sur le raspberry, j'ai installé en suivant cette procédure :

apt-get install build-essential make autoconf libev-dev git -y
cd /tmp
wget --no-check-certificate https://download.libsodium.org/libsodium/releases/libsodium-1.0.4.tar.gz
tar -zxvf libsodium-1.0.4.tar.gz
cd libsodium- et tab
./configure
make
make check
make install
ldconfig
cd /tmp
rm -Rf ./libsodium et tab
rm -Rf ./libsodium et tab

git clone https://github.com/zehome/MLVPN.git
cd MLVPN
./autogen.sh ou autoreconf -i
./configure
make

make install

sur le serveur debian wheezy 7.9 :
même procédure (pour avoir la même version)
le ./autogen.sh me donne :

configure.ac:26: error: possibly undefined macro: AC_DEFINE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:46: error: possibly undefined macro: AC_CHECK_LIB
configure.ac:54: error: possibly undefined macro: AC_CHECK_HEADERS
configure.ac:91: error: possibly undefined macro: AC_MSG_ERROR
autoreconf: /usr/bin/autoconf failed with exit status: 1

Une idée ?

Introduction volontaire d'une latence sur un lien... Fausse bonne idee?

Bonjour,

D'apres mes constatations, lorsque 2 lignes n'ont pas la meme qualite de latence (ex : ping 40ms et 58 ms, chez moi depuis qu'une de mes lignes est passee de free a OVH) la bande passante globale de l'interface est a la peine.

Ne serait-il pas interessant de pouvoir introduire une latence artificiellement sur la ligne la plus reactive pour la mettre au meme niveau que l'autre?

Ca pourrait commencer par un parametre, associe a un lien, dans le fichier mlvpn.conf puis eventuellement etre "calcule", si on s'apercoit que c'est interessant, non?

Encore merci pour ce super soft et a bientot...

[FR] Erreurs lors du make sur pfSense 2.3

Bonjour,

Je tentais de compiler MLVPN sur pfSense 2.3 (FreeBSD 10.3-RC1) mais voici ce qui apparait lors du make:
make: "/usr/share/mk/bsd.port.mk" line 32: Cannot open /usr/ports/Mk/bsd.port.mk
make: "/root/mlvpn/Makefile" line 43: Malformed conditional (! ${PORT_OPTIONS:MCONTROL})
make: "/usr/share/mk/bsd.port.mk" line 32: Cannot open /usr/ports/Mk/bsd.port.mk
make: Fatal errors encountered -- cannot continue
make: stopped in /root/mlvpn

Y a-t-il une solution ?

Merci
Avec tous mes encouragements

securité dans mlpvn

Bonjour,

Serait-ce envisageable d'ajouter lors de l'initialisation de la connexion, une authentification (par clé par exemple).

Le soucis, lorsque l'on a pas d'ip fixe, est que l'on doit laisser ouvert le port ouvert sans filtrage possible, et du coup n'importe qui peut s'y connecter.
De même, si une connexion est déjà initialisée, et que l'on tente depuis un autre serveur de se connecter, mlvpn serveur accepte la connexion (et cela crée des reconnections permanentes..)

Bind to device

I figured a ticket would help track this, I tried the bindztodev branch, and as you predicted, it doesn't work, for a number of reasons I haven't got to the bottom of it, but for a start, you need to run as root it seems which isn't ideal. Apart from that the branch works (but you need the same branch on both ends due to crypto).

Cheers

Mark.

Actions on rtunnel up/down

To handle default route setting, for example on 2 MLVPN hosts, there is a need to do something when:

  • At least 1 rtunnel is up (ONLINE)
  • All rtunnels are down (OFFLINE)

[FR] Bandes passantes asymétrique

Bonsoir,

J'ai 2 ADSL: une qui synchronise à 2 Mbps, l'autre à 3 Mbps, en download.
En pratique, j'obtiens 2 + 2 = 4 Mbps avec MLVPN...
J'imagine que si j'avais un ADSL à 2 et un 4G à 50, je n'obtiendrais que 4 Mbps ?

Comment obtenir une bande passante totale de 5 Mbps dans mon cas ?

Merci

bizzare bizzare :)

Bonjour,

Après plusieurs jours d'utilisations, j'ai un bug, mais pour le moment je n'ai aucune idée de ce qui peut causer le problème.

J'ai donc 2 adsl, un débit de 26 mbps environ, 1.6 mbps en up.
Au bout d'un certain temps, plus ou moins aléatoire, l'upload tombe à quasiment 0; Résultat évidemment, si quasiment 0 upload, download instable... et mlvpn consomme 5 % de proc sur un athlon 2.4 X64
Quand c'est arrivé, j'ai bien vérifié coté serveur si ce n’était pas ce serveur qui avait un soucis de débit, rien.. Je redémarre mlvpn, relance les routes (coté client), et la le problème est résolu pour une durée de [un certain temps quoi!].

Une idée? si non, que puis je faire pour tenter de déboguer mlvpn sans le redémarrer ? (strace -p PID) ?

ne ping pas.... probleme de configuration

salut,
J'ai suivi la doc, mais je n'arrive pas a avoir le default via 192.168.1.1 dev eth0 et le ping ne passe pas:

root@mlvpn:/# ip rule list
0: from all lookup local
32764: from 192.168.2.0/24 lookup adsl2
32765: from 192.168.1.0/24 lookup adsl1
32766: from all lookup main
32767: from all lookup default

root@mlvpn:/# ip route show table adsl1
192.168.1.0/24 dev eth0 scope link

root@mlvpn:/# ip route show table adsl2
192.168.2.0/24 dev eth0 scope link

root@mlvpn:/# ip route show table main
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.2
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.6
default via 192.168.0.254 dev eth0

root@mlvpn:/# ping -c2 -n -I192.168.1.1 ping.ovh.net
bind: Cannot assign requested address

Et voici mon /etc/networks/interfaces

auto eth0
iface eth0 inet static
address 192.168.0.6
netmask 255.255.255.0
post-up /usr/local/sbin/source_routing.sh

auto eth0:adsl1
iface eth0:adsl1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.0.254

auto eth0:adsl2
iface eth0:adsl2 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.0.254

Je suis sous proxmox 2.6, et l'adress 192.168.0.6 est celle qui permet d'aller sur internet via vmbr2 l'hote et son /etc/networks/interfaces est:

network interface settings

auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

auto vmbr0
iface vmbr0 inet static
address 62.210.x.x
netmask 255.255.255.0
gateway 62.210.x.1
bridge_ports eth0
bridge_stp off
bridge_fd 0

auto vmbr2
iface vmbr2 inet static
address 192.168.0.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

Je pense que c'est un probleme de configuration dans mon /etc/networks/interfaces qui heberge mlvpn

...

MLVPN sur accès en IP Publique

Bonjour,

Est-il possible d'utiliser MLVPN sur des accès en Publique plutôt que sur des accès NATés ?

Plutôt que d'avoir :

WAN1 => Modem-Routeur (NAT) => }
WAN1 => Modem-Routeur (NAT) => } MLVPN Client

Avoir :

WAN 1 => Modem (RFC 1483 ou HalfBridge/Transparent Mode) => }
WAN 2 => Modem (RFC 1483 ou HalfBridge/Transparent Mode) => } MLVPN Client

Merci

[CRIT/config] file is group/other accessible

Bonjour,

Lorsque je lance mlvpn avec la line de command:
mlvpn --user mlvpn -c /etc/mlvpn/mlvpn0.conf

je recois le message d'erreur suivant:
2015-05-13T04:29:57 [CRIT/config] file is group/other accessible. Fix permissions

  • OS: debian 8, 64 bit
  • Permissions de /etc/mlvpn/*.sh (chmod 700 owned by root)

Merci

Latency_increase sur le code actuel

Bonjour,

J'ai récemment mis en place un setup de mlvpn (freebox+bbox) chez moi, et ça "fonctionne", j'ai toutefois pas mal de problèmes notemment vis à vis des connexions en HTTPS, et je pense que ça a un lien avec la différence de 20ms entre ces deux liens.

La documentation readthedocs parle du setting latency_increase, qui semble avoir disparu de la documentation et du code source depuis la version 2.

La gestion de la jigue est elle devenue automatisée? Si non quel settings faut-il utiliser?

FreeBSD and SO_SETFIB feature

For using source-routing on FreeBSD, I didn't found how to source-route packets generated by the system it-self.

This mean, if my FreeBSD-mlvpn-client is configured like that:

#Interface toward ISP-1
ifconfig_vtnet0="10.0.12.1/24 fib 1"
#Interface toward ISP-2
ifconfig_vtnet1="10.0.13.1/24 fib 2"
#Interface to internal LAN (default fib 0)
ifconfig_vtnet2="192.168.1.254/24"
static_routes="ISP1 ISP2"
route_ISP1="-fib 1 default 10.0.12.2"
route_ISP2="-fib 2 default 10.0.13.3"

Now I can't configure my firewall (ipfw) to says:

  • Put packet with source IP 10.0.12.1 into fib1
  • Put packet with source IP 10.0.13.1 into fib2

Then how to configure mlvpn to use different routing table ?

FreeBSD allow to setsockopt(2) with option SO_SETFIB:

  SO_SETFIB       set the associated FIB (routing table) for the
                  socket (set only)

Is possible (or easy for a newbie C dev) to add this feature to mlvpn ?
The idea is to configure mlvpn like that:

[dsl2]
bindhost = "10.0.12.1"
bindport = 5082
bindfib = 1
remotehost = "10.0.56.6"
remoteport = 5082

[dsl3]
bindhost = "10.0.13.1"
bindport = 5083
bindfib = 2
remotehost = "10.0.56.6"
remoteport = 5083

I believe this will simplify the source-route setup.

Howto to do mrtg on adsl1, adsl2, etc etc?

Bonjour,

Tout d’abords félicitations pour ce programme, il fonctionne a merveille !

Ma question est donc la suivante, comment faire des mrtg sur les liens adsl1, adsl2, etc... j'arrive à counter les paquets sur mlvpn0, mais malgré les règles iptables que j'ai mises, il ne compte rien du tout sur adsl1 & 2, à croire que aucun paquet ne passe par ces interfaces.

Voici ce que j'ai mis qui "aurait" du fonctionner:
iptables -N TRAFFIC_ACCT
iptables -I FORWARD -j TRAFFIC_ACCT

iptables -A TRAFFIC_ACCT -p tcp
iptables -A TRAFFIC_ACCT -p udp
iptables -A TRAFFIC_ACCT -p icmp

iptables -N TRAFFIC_ACCT_IN
iptables -N TRAFFIC_ACCT_OUT
iptables -I FORWARD -i eth0:adsl1 -j TRAFFIC_ACCT_IN
iptables -I FORWARD -o eth0:adsl1 -j TRAFFIC_ACCT_OUT
iptables -I FORWARD -i eth0:adsl2 -j TRAFFIC_ACCT_IN
iptables -I FORWARD -o eth0:adsl2 -j TRAFFIC_ACCT_OUT

ip interface adsl1, ip routeur 1.254

iptables -A TRAFFIC_ACCT_IN --dst 192.168.1.253
iptables -A TRAFFIC_ACCT_OUT --src 192.168.1.253

ip interface adsl2, ip routeur 2.254

iptables -A TRAFFIC_ACCT_IN --dst 192.168.1.253
iptables -A TRAFFIC_ACCT_OUT --src 192.168.1.253

une idée? une autre méthode pour les graphs?

Question about bandwidth aggregation

My use case is video streaming over RTMP.
Can I use MLVPN to double my upload speed over a single TCP connection by using two different ADSL link ?

Failover with zero packets lost

Hi,

In my scenario I have two WIFI connections, Ubuntu 15.10 and latest MLVPN.

When I test my configuration by connecting or disconnecting one of my WIFI routers I can see that several (2-3) ping packets are lost. At the same time all open tcp multimedia streams get disconnected.

My mlvpn.conf on both side (server and client) have such lines:

timeout = 3
reorder_buffer_size = 64
loss_tolerence = 1

Is it possible to build a "bulletproof" failover solution (zero packets lost)?

Thanks in advance.
Krzysztof

Vitesse de telechargement n'augmente pas.

Bonjour,

J'ai suivi toute la documentation.
Je fais un lien MLVPN avec deux liens Numericable 30Mbps/1Mbps.

Si je fais un proof.ovh.net mon upload est bien multiplié par 2 mais mon download reste autout de 28-29.

Lorsque je regarde sur mon routeur pfsense, les deux liens NC sont bien utilisés en parallèle, pour chacun 14-15Mbit.

Est ce normal ? Est une limite du concept, l'impossibilité d'aggreger des liens "rapide" ?

Dans tous les cas, le soft fait le job, bravo !

D'avance merci.

Guldil

Routage

Bonjour !

Je viens de trouver ton soft, je trouve ça juste génial, étant donné que j'ai deux lignes ADSL chez OVH et Free et que nous avons besoin chez nous d'avoir toujours au moins un lien actif.

J'ai déjà réussi à connecter un poste chez moi à mon serveur OVH mais maintenant j'aimerais que ce poste serve de routeur pour tout mon réseau et que tout sorte par le serveur OVH. En lisant tes quelques apparitions sur les forums et commentaires, j'imagine que c'est l'application que tu en fais. Est-ce que tu pourrais m'indiquer comment mettre en place un routage comme celui-ci ? J'ai déjà manipulé les iptables, mais c'était plus de la chance qu'autre choseue ça marche ;D

Merci d'avance !
Antoine.

segfault

Bonjour,

J'ai sur la dernière version un problème de crash coté serveur pour l'instant. C'est arrivé 2 fois déjà à quelques jours d'intervalle.

Jan 18 07:25:49 vpnssh kernel: mlvpn[4298]: segfault at 738aa02cc000 ip 000064957ca4960f sp 0000738aa02c8c78 error 4 in libsodium.so.13.0.2[64957ca39000+50000]
Jan 18 07:25:49 vpnssh kernel: grsec: Segmentation fault occurred at 0000738aa02cc000 in /usr/sbin/mlvpn[mlvpn:4298] uid/euid:1000/1000 gid/egid:100/100, parent /usr/sbin/mlvpn[mlvpn:4282] uid/euid:0/0 gid/egid:0/0

une idée?

Use strlcpy

Use strlcpy from OpenBSD instead of strcpy, strncpy

Partage de l'accès MLVPN

Bonjour, j'ai un serveur domestique sous centos et un serveur OVH, j'ai établi deux liens VPN grace a MLVPN, c'est plus performant que OpenVPN, le tunnel me permet d'accéder au web sans PB.

J'ai ADSL1 192.168.0.0/24 192.168.0.254
ADSL2 192.168.1.0/24 192.168.1.254

Quand je testais avec 192.168.0.1 en passerelle c'étais routé vers 192.168.0.254 j'ai donc pris le réseau 192.168.2.0/24 j'ai 10.42.42.2 en passerelle par défaut sur le Centos

Si je teste ping -n -I192.168.2.1 proof.ovh.net sur le centos ca fonctionne mais sur mon mac rien ne ping.

Je voudrais donc savoir comment partager 10.42.42.2 avec 192.168.X.0/24

J'ai un peux tout testé je ne sais pas ou est le problème j'utilise des VPN et iptables depuis pas mal de temps mais la je ne comprend pas pourquoi rien n'est routé

IPv6, genial...

Salut,
Je viens de voir que les 2 extremites du lien mlvpn pouvaient etre utilisees en IPv6, ca permet des possiblilites interessantes.

Par exemple, dans mon cas, j'ai un serveur physique chez OVH (un SYS...) dans lequel tourne un DOMU Xen qui accueille le lien MLVPN. Et bien depuis l'IPv6 de mon routeur MLVPN chez moi, j'arrive a pinguer l'IPv6 de mon serveur physique.

Je n'ai pas encore reussi a sortir sur Internet mais c'est une question de config, car depuis l'IPv6 de mon DOMU, je vais sur internet sans probleme...

Bref, c'est bien sympa, tout ca ;-)

A+

Client Raspberry 2 (Jessie)

Bonjour,

Après avoir eu du mal a complier via le git, libsodium qui ne voulait pas etc j'ai réussi a aller au bout sans erreur mais aucun fichier de conf présent dans /etc/mlvpn je l'ai ai donc crée et mis les bons droits sur l'utilisateur root mais quand je lance le client via la commande mlvpn --user root -c /etc/mlvpn/mlvpn.conf rien ne se passe, aucun fichier log de créer. (Si je n'indique rien ou le mauvais utilisateur j'ai bien des messages d'erreur).

Voici les fichiers de conf, une idée ?

mlvpn.conf :

statuscommand = "/etc/mlvpn/mlvpn_updown.sh"
mode = "client"
protocol = "udp"
mtu = 1444
tuntap = "tun"
loglevel = 4
interface_name = "mlvpn0"
timeout = 30
cleartext_data = 0
reorder_buffer_size = 64
loss_tolerence = 40

[adsl1]
bindhost = "192.168.1.222"
remotehost = "xx.xxx.xx.xxx"
remoteport = 5080

bandwidth_upload = 61440

bandwidth_download = 2200000

timeout = 25

latency_increase = 3

[adsl2]
bindhost = "192.168.4.222"
remotehost = "xx.xxx.xx.xxx"
remoteport = 5081

bandwidth_upload = 61440

bandwidth_download = 2500000

fallback_only = 1

Et mlvpn_updown.sh

!/bin/bash

error=0; trap "error=$((error|1))" ERR
tuntap_intf="$1"
newstatus="$2"
rtun="$3"
[ -z "$newstatus" ] && exit 1
(
if [ "$newstatus" = "tuntap_up" ]; then
echo "$tuntap_intf setup"
/sbin/ifconfig $tuntap_intf 10.42.42.2 netmask 255.255.255.252 mtu 1444 up
route add proof.ovh.net gw 10.42.42.2
elif [ "$newstatus" = "tuntap_down" ]; then
echo "$tuntap_intf shutdown"
route del proof.ovh.net gw 10.42.42.2
/sbin/ifconfig $tuntap_intf down
elif [ "$newstatus" = "rtun_up" ]; then
echo "rtun [${rtun}] is up"
elif [ "$newstatus" = "rtun_down" ]; then
echo "rtun [${rtun}] is down"
fi
) >> /var/log/mlvpn_commands.log 2>&1
exit $errors

mlvpn didn't detach from terminal by default

mlvpn on FreeBSD didn't detach from terminal:

[root@router]# mlvpn -c /usr/local/etc/mlvpn/mlvpn.conf -u mlvpn

=> start correctly but didn't give terminal back

Is a normal behavior ?

mlvpn [priv] : unable to chroot: No such file or directory

Lorsqu'on essaie de démarrer mlvpn via la commande suivante :
mlvpn --user mlvpn -c /etc/mlvpn/mlvpn0.conf
le message suivant apparait :
mlvpn [priv] : unable to chroot: No such file or directory
Cela est du au fait que le répertoire nécessaire /var/run/mlvpn est effacé à chaque redémarrage de la machine.
Si l'on crée le répertoire avant de lancer la commande, mlvpn démarre.

Documentation error ?

Is it me or a typo stepped in server-side mlvpn0_updown.sh script in http://www.mlvpn.fr/ ?

Instead of:
elif [ "$newstatus" = "tuntap_down" ]; then
/sbin/route add -net 192.168.0.0/24 gw 10.42.42.2

I would say:
elif [ "$newstatus" = "tuntap_down" ]; then
/sbin/route del -net 192.168.0.0/24 gw 10.42.42.2

Regards

About loss ratio computation

Hi
I have just setup mlvpn to aggregate 2 ADSL links and, as the performance is not the expected one (I have half the bandwidth of one link when I use mlvpn), I had a closer look at configuration and at verbose messages...

I have not fixed my bandwidth issue but a first remark is : As soon as I begin to download, the loss ratio of each tunnel reaches 50%

When looking at the code this is inherent to the way loss is computed : it counts (using seq number) how many packets are received among the 64 last ones per tunnel. As the sequence number is global, in a configuration with 2 tunnels, if we use evenly each tunnel then one packet out of 2 is sent in each tunnel and loss ratio is quickly computed as 50% while there is not a single "real" packet loss

I guess if we have 3 similar tunnels then it would stabilize around 66% and so on...

Is it the expected behavior ?

Regards
Stéphan

Problème avec les serveurs de cache

Bonjour

je viens de mettre en place une agrégat sur deux lignes adsl 2+. Lors des tests nous avons eu quelques problèmes d'accès sur des sites utilisant des cdn (cache) comme speedtest.net ou lemonde.fr : ils ne s'affichent pas ... ou à moitié.

un tshark montre :

8.097703 88.191.147.80 -> 93.184.221.133 HTTP GET /javascript/swfobject.js?v=2.2 HTTP/1.1
8.107406 88.191.147.80 -> 93.184.221.133 HTTP GET /javascript/extMouseWheel.js HTTP/1.1
8.114545 93.184.221.133 -> 88.191.147.80 TCP http > 54081 [ACK] Seq=1 Ack=863 Win=4978 Len=0
8.114671 93.184.221.133 -> 88.191.147.80 TCP [TCP Window Update] http > 54081 [ACK] Seq=1 Ack=863 Win=16384 Len=0
8.115271 93.184.221.133 -> 88.191.147.80 TCP [TCP segment of a reassembled PDU]
8.115303 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.115310 93.184.221.133 -> 88.191.147.80 TCP [TCP segment of a reassembled PDU]
8.115325 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.115330 93.184.221.133 -> 88.191.147.80 HTTP HTTP/1.1 200 OK (application/javascript)
8.115341 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.124655 93.184.221.133 -> 88.191.147.80 TCP http > 54082 [ACK] Seq=1 Ack=861 Win=4980 Len=0
8.124859 93.184.221.133 -> 88.191.147.80 TCP [TCP Window Update] http > 54082 [ACK] Seq=1 Ack=861 Win=16384 Len=0
8.125713 93.184.221.133 -> 88.191.147.80 TCP [TCP segment of a reassembled PDU]
8.125742 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.125813 93.184.221.133 -> 88.191.147.80 HTTP HTTP/1.1 200 OK (application/javascript)
8.125831 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.319704 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.319754 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.335540 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.335592 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.413284 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.413334 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.417942 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.417968 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.427548 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.427589 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.478008 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.478059 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.739724 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.739777 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
8.755511 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
8.755558 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
9.253370 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
9.253424 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
9.257954 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
9.257982 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
9.267540 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
9.267578 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
9.318003 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
9.318056 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)
9.589736 93.184.221.133 -> 88.191.147.80 TCP [TCP Retransmission] [TCP segment of a reassembled PDU]
9.589793 88.191.147.80 -> 93.184.221.133 ICMP Destination unreachable (Fragmentation needed)

le 93.184.221.133 étant un cache c.speedtest.net ..... une idée de piste ?

Merci

Implement "ifconfig" after tuntap init

Implémenter la gestion d'un ifconfig paramétrable via le fichier de config [general] pour mettre les paramètres réseau après l'initialisation du tuntap.

First attempts to use MLVPN (and shorewall)

I’m also in France (in the countryside, with poor ADSL)…
To make my life bearable, I use 2 ADSL links…

On my home router (a small Linux box), I run shorewall, and run the two ppp daemon’s. Hence I have 3 interfaces ppp0, ppp1 and eth0.

As an initial test, I installed mlvpn on both the server and the router (direct from the GIT in both cases).

I followed the instructions http://mlvpn.readthedocs.org/en/latest/linux_example.html - except I ONLY set up one VPN at this point - My intention is JUST to test the connection, not to attempt any aggregation yet!
So, I took your example config and scripts,
All I did was
1/ set mode = client/server on the client/server :-)
2/ set the client ip4 address to 10.42.42.2. Set the server ip4 address to 10.42.42.1 (/30 in both cases)
3/ set the mtg to 1432 (should this be the default?)
4/ set the password
5/ On the client, set an adsl connection binding the host to the address of one of the PPP endpoints - which should force things down one adsl path...
[Side note, if you use 0.0.0.0 as the bindhost, you get multiple connections being made to the server through the 2 different paths, which is fun to watch]
set port, and remote host to the server
6/ On the server side, I set the bind host to 0.0.0.0. In how ‘HowTo’ it does not mention a bindhost. If I do not set it, I get:
dsl1 getaddrinfo(,5091) failed: Unknown error

Thats it
I then start the server and the client. I’m happy to see:
2016-04-05T13:06:17 tunnel [dsl1] is up
2016-04-05T13:06:17 mlvpn0 up

Good. And I see plenty of keep alive packets going though if I do a -Dprotocol

So now I expect, on the client side, to be able to ‘ping’ the server. When I check the route, I do indeed have a 10.42.42. route:
10.42.42.0 0.0.0.0 255.255.255.252 U 0 0 0 mlvpn0

(and likewise on the server side)
I can ping myself - e.g. on the client I can ping 10.42.42.2 successfully. But I can not ping the other side

ping 10.42.42.1

Fails….. :-(

Where am I going wrong? (I thought this was the easy bit, I’ve still got to get the integration with shore wall working :-))) )

Cheers
Mark.

2 connexions & débits différents ?

Bonjour à tous,

Tout d'abord un gros bravo au développeur de cet outil.

Je n'ai pas trouvé un autre espace de discussion donc je poste ma demande ici.

Je dispose d'une connexion ADSL (limitée à 8 Mbit/s) et d'une connexion par Wifi à 10 Mbit/s symétrique.

Pour assurer un minimum de sécurité et compresser ce qui passe, j'ai mis en place Tinc (tinc-vpn.org) en dessous de MLVPN.

Tel quel, j'ai l'impression que MLVPN est limité au débit de la plus petite connexion. Est-ce bien prévu comme cela ?

Je constate par exemple que mes 2 connexions sont utilisées de manière identique autant en download qu'en upload (je suis donc limité à 1 Mbit/s en upload et je n'ai jamais 18 Mbit/s en down).

Je ne sais pas si c'est ma config qui est foireuse ou si c'est le comportement attendu.

Si c'est le comportement attendu, je ne vois pas trop du coup ce qu'apporte MLVPN par rapport à un bonding RR classique sur des interfaces tun d'un VPN (que j'ai déjà avec mon Tinc).

Peut-être justement que c'est l'ajout de cette couche qui me fait avoir ce effet mais je n'arrive pas à comprendre pourquoi.

En + de tout cela, mes 2 connexions sont particulièrement instables (l'ADSL dispose rarement du débit prévu faute d'uplink suffisant dans le village, et le Wifi a des périodes de coupures de 2-3 secondes de temps en temps dont je n'ai toujours pas trouvé l'origine).

Si quelqu'un pouvait m'éclairer, ça serait super :)

A+
Flo

Update man page

I've just discovered MLVPN and find it very interesting and promising.

Man page (from debian repo) version says mlvpn accepts only on parameter while example show 2 command line parameters (-c and --user).

Error binding socket mlvpn.sock: Permission denied

I'm trying MLVPN for the first time.

After issuing "mlvpn --user mlvpn -c /etc/mlvpn/mlvpn0.conf" on client, I'm seeing this in log files (Debian wheezy from repo):
[16:29:13][mlvpn.c:1465] Created tap interface mlvpn0
[16:29:13][control.c:114] Error binding socket mlvpn.sock: Permission denied
[16:29:13][mlvpn.c:320] Binding socket 6 to 192.168.64.13

Trying to reproduce provided example, I can't successfully ping proof.ovh.net.

Could it be possible to elaborate a bit further "Error binding socket mlvpn.sock: Permission denied", indicating for instance which resource is denying acces and which user is denied access ?

Changing /run/mlvpn ownership to mlvpn:root removes this error message.

Wrong data size when reading from TUN device\wrong size of data buffers

Hello! I have found small bug in code - when reading from TUN you need to add 4 bytes ip overhead (because when client for example send 1500 bytes packet, thats means that tun will add its 4 bytes IP header and real data size will be 1504 bytes).
so pktdata_t data size has to be (DEFAULT_MTU + 4) and when you reading from TUN

read(tuntap->fd, pkt->pktdata.data, (DEFAULT_MTU + 4));

or data will be corrupted.

don't know how much TAP is adding tho...

sorry for my bad english

ps thanks for this great project!

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.