Iproute2¶
Liens¶
- cheat sheet http://baturin.org/docs/iproute2/
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