Projet

Général

Profil

Iproute2

Liens

ADSL multiple

En cas de multiples box ADSL en mode routeur, activer la redirection 2222 vers localIP:22 pour pouvoir acceder a la machine derriere les box, il faut aussi faire du source routing :

# Orange routing, local IP 10.0.0.221
ip route add 10.0.0.0/24 dev eth0 table 253
ip route add default via 10.0.0.253 table 253
ip rule add from 10.0.0.221 table 253

# FDN routing, local IP 192.168.88.221
ip route add 192.168.88.0/24 dev eth0 table 88
ip route add default via 192.168.88.2 table 88
ip rule add from 192.168.88.221 table 88

# Free routing, local IP 192.168.89.221
ip route add 192.168.89.0/24 dev eth0 table 89
ip route add default via 192.168.89.1 table 89
ip rule add from 192.168.89.221 table 89

# via VPN tap
ip link set tapbackup up
# openvpn...
ip addr add 172.30.30.3/31 dev tapbackup
ip route add default via 172.31.30.2 table 15
ip rule add from 172.30.30.3 table 15

Ensuite "openvpn --local 10.0.0.221 --lport 0" passera par Orange, "openvpn --local 192.168.88.221 --lport 0" par FDN, etc... idem pour toute appli qui bind une socket sur l'IP locale de son choix

Note : IPv6 via la freebox donne une IPv6 publique.

Routage via tun

Par rapport a un device "tap" un device "tun" permet d'economiser des IP d'interconnexion et un peu de débit car les headers ethernet ne sont plus transmis, seul IP passe sur le device.

Pour simplifier les regles entre iptables et iproute2 on donne le meme noms aux tables qu'au device a la table :

# /etc/iproute2/rt_tables
101 tunadsl1
102 tunadsl2
103 tunadsl3

Creation d'un tun sur adsl :

openvpn --mktun --dev-type tun --dev tunadsl1
ip link set tunadsl1 up
openvpn --dev-type tun --dev tunadsl1 --comp-lzo yes --cipher none --proto udp  --verb 3 --daemon --keepalive 10 30 --persist-tun \
 --local $ip_lan_modem --remote $server_ip _server_port --secret mykey.key \
 --log-append mylog.log --mssfix 1400 --fragment 1400 --lport 0
ip route add default dev tunstg table tunstg
ip route add $prefix_private dev $dev_private table tunadsl1

Ajout SNAT/DNAT et routage entre $ip_public et $ip_private sur le tun $dev

ip a add $ip_public/32 dev lo
iptables -t nat -A PREROUTING -d $ip_public -j DNAT --to-destination $ip_private -i $dev
iptables -t nat -A POSTROUTING -s $ip_private -j SNAT --to-source $ip_public -o $dev
ip rule add from $ip_public table $dev
ip rule add from $ip_private table $dev