Table des matières
IPv6
Proxy NDP ipv6: http://linux-attitude.fr/post/proxy-ndp-ipv6
Bonding
Liens:
Switchs:
Bonding ⇔ LACP (802.3ad) chez Cisco
# aptitude install ifenslave
/etc/network/interfaces
:
... auto bond0 iface bond0 inet static address 10.0.4.10 netmask 255.255.255.0 gateway 10.0.4.254 bond-slaves eth0 eth1 bond-mode <MODE> bond-miimon 100 bond-primary eth0 eth1
- bond-mode 0 ⇒ Round-robin policy (envoi alternativement d'une interface puis de l'autre)
- bond-mode 1 ⇒ Active-backup policy (active 1 slave, et passe au suivant en cas de defaillance)
- bond-mode 4 ⇒ IEEE 802.3ad Dynamic link aggregation
Autre exemple:
auto bond0 iface bond0 inet static address 10.21.4.11 netmask 255.255.255.0 network 10.21.4.0 broadcast 10.21.4.255 gateway 10.21.4.254 bond-slaves none bond-mode 4 bond-miimon 100 allow-hotplug eth0 iface eth0 inet manual bond-master bond0 bond-primary eth0 eth1 eth2 allow-hotplug eth1 iface eth1 inet manual bond-master bond0 bond-primary eth0 eth1 eth2 allow-hotplug eth2 iface eth2 inet manual bond-master bond0 bond-primary eth0 eth1 eth2
Pour les switchs, voir chez Cisco…
Sur le switch:
#conf t #interface range gi 1/0/3 - 4 #channel-group 1 mode <FLAG> #switchport mode access #switchport access vlan 6
Marche avec :
- channel-group 1 mode on ⇒ bond-mode 0
- channel-group 1 mode passive ⇒ bond-mode 1 (a verifier)
- channel-group 1 mode active ⇒ bond-mode 4 (LACP/802.3ad)
Un “port-channel 1” est créé:
#sh ru interface po1 Building configuration... Current configuration : 31 bytes ! interface Port-channel1 switchport access vlan 6 switchport mode access end
#sh etherchannel summary ... Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports ------+-------------+-----------+----------------------------------------------- 1 Po1(SU) LACP Gi1/0/3(P) Gi1/0/4(P)
Arp
local
Lien:
J'ai besoin de faire communiquer 2 équipements réseaux, avec des classes réseaux differentes , dans un même VLAN.
Hélas, un équipement réseau mal configuré (que je ne contrôle pas) a la mauvaise idée de s'approprier l'une des classes.
En clair:
# arping -i eth1 192.168.2.1
La réponse, c'est la MAC des 2 équipements:
- l'équipement réseau mal configuré
- le serveur a atteindre
Donc, ca fonctionne trés mal en l'etat.
Il faut donc forcer l'association de l'IP et de la MAC.
# arp -s <IP> <MAC> -i <IFACE>
Dans mon cas:
# arp -s 192.168.2.1 aa:bb:cc:dd:ee:ff -i eth1
ping
mtr
# aptitude install mtr-tiny
$ mtr www.free.fr
Instructif.
Ou bien:
$ mtr -r -c 20 www.free.fr HOST: netcave Loss% Snt Last Avg Best Wrst StDev 1. freebox.thierry-jaouen.local 0.0% 20 0.6 0.6 0.5 0.7 0.0 2. 82.228.221.254 0.0% 20 44.2 45.7 44.2 46.6 0.6 3. stmaurice-6k-1-a5.routers.pr 80.0% 20 44.7 48.7 44.0 61.0 8.2 4. th2-crs16-1-be1008.intf.rout 0.0% 20 44.2 45.6 44.2 46.8 0.7 5. bzn-6k-sys-po21.intf.routers 0.0% 20 64.7 53.9 44.9 80.9 12.0 6. www.free.fr 0.0% 20 44.8 45.9 44.6 47.6 0.8
classes
Pinger rapidement toute une classe d'adresse:
# nmap -sP 192.168.0.1-254
smbfs
cifs , c'est mieux :) |
# aptitude install smbfs
Ajouter le point de montage dans /etc/fstab
, par exemple:
# vivi -------- //vivi.thierry-jaouen.local/MP3 /mnt/vivi/music smbfs defaults,ro,noauto,username=virginie,password=<mot_de_passe> # -------------
Comme on n'a mis noauto
, on va mounter ainsi:
# mount /mnt/vivi/music
Et on devra le faire a chaque reboot…
nfs
Liens:
- IPTABLES et NFS: http://wiki.debian.org/SecuringNFS
serveur
# aptitude install nfs-kernel-server
Dans le fichier /etc/exports
, on met les repertoire qu'on souhaite exporter via nfs
, exemple:
/home/thierry/music *.thierry-jaouen.local(ro,root_squash,sync,subtree_check)
Mais on aurait pu mettre:
<ip1>(droits) <ip2>(droits)
ou
<classe-ip>(droits)
etc…
Recharger la config:
# /etc/init.d/nfs-kernel-server reload
client
# aptitude install nfs-client
Editer /etc/init.d/fstab
afin d'avoir, par exemple:
# TJ ---------- music.thierry-jaouen.local:/home/thierry/music /mnt/music nfs ro,soft,timeo=5,intr,rsize=8192,wsize=8192 0 0 # -------------
Et puis:
# mount -a
autres conf
J'aime bien aussi, dans /etc/fstab
:
<host>:/<path> nfs defaults,rw,intr,rsize=32768,wsize=32768 0 0
speed up
Lien: http://www.higs.net/85256C89006A03D2/web/PageLinuxNFSPerformance
Sur un partage un peu chargé en NFS, conseils:
Côté client
Régler “rsize” et “wsize” (au plus haut possible, mais pas trop)
Côté serveur
Dans /etc/default/nfs-kernel-server
:
# Number of servers to start up # TJ ------------ #RPCNFSDCOUNT=8 RPCNFSDCOUNT=24 # ---------------
Par exemple, pour avoir “24” forks de nfs prêt a répondre aux solicitations des clients…
Alors que:
# cat /proc/sys/net/core/rmem_default 111616
…
On peut donc modifier “sysctl.conf” pour avoir:
net.core.rmem_default = 327680 net.core.rmem_max = 327680
Et puis un petit :
# sysctl -p
… pour appliquer les changements.
( voir “lien” pour les explications )
autofs
nfs
Lorsque la liaison nfs
vient à disparaitre… ou si le boot est trop rapide (dans un DomU par exemple)…
Il faut pouvoir maintenir la connexion nfs
avec autofs
.
autofs
permet bien des choses.
Ca travail avec le noyau (verifier qu'il est compilé pour le supporter) ce qui induit des résultats surprenant.
On n'utilisera plus /etc/fstab
pour les montages usant de autofs
.
Package :
# aptitude install autofs
On va travailler dans un sous répertoire de /mnt |
Si on utilisait /mnt
, tout son contenu serait “caché” par le “montage” fait par le noyau: ce n'est pas ce qu'on veut !
Editer /etc/auto.master
afin d'associé un chemin et un fichier de conf. Par exemple:
# TJ -------------- /mnt/nas /etc/auto.nas --ghost,--timeout=60 # -----------------
Ne pas créer /mnt/nas : autofs va s'en charger. |
- –ghost ⇒ afficher les repertoires, même lorsqu'ils ne sont pas montés.
Creer le fichier de conf auto.nas
:
# # TJ # thierry -fstype=nfs,rw,intr,rsize=32768,wsize=32768 nas.thierry-jaouen.local:/thierry music -fstype=nfs,ro,noacl,nouser,intr,rsize=32768,wsize=32768 nas.thierry-jaouen.local:/partages/thierry/music
Et enfin, le classique:
/etc/init.d/autofs reload
Et là, c'est mysterieux, mais ca doit fonctionner !
Le repertoire “/mnt/nas” existe :
# ls -d /mnt/nas /mnt/nas
Son contenu est apparemment “vide” (sauf si on utilise l'option –ghost
) :
# ls /mnt/nas
Mais si on essaye de regarder des répertoires nfs
, il monte !
# ls /mnt/nas/music ...
C'est ça le mystere: les répertoires “apparaissent” (sont montés) lorsqu'on s'en sert… et disparaissent lorsqu'on s'en sert plus.
(Toujours sauf si on utilise –ghost
)
En pratique, ce genre de comportement est plutôt dérangeant. On pourra creer des liens pour rendre les montage moins obscur. Genre:
# ln -s /mnt/nas/thierry /mnt/nas-thierry # ln -s /mnt/nas/music /mnt/nas-music
Ou bien, ajouter l'option –ghost
cifs
Lien: http://forum.debian-fr.org/viewtopic.php?f=8&t=11575
Lorsqu'un partage Windows vient a tomber… comment le remonter avec autofs
?
Dans le fichier /etc/auto.master
:
.... /mnt/vivi /etc/auto.vivi --ghost,--timeout=60
Dans le fichier /etc/auto.vivi
:
music -fstype=cifs,ro,credentials=<fichier_du_compte> ://<ip_du_poste>/itunes_music videos -fstype=cifs,ro,credentials=<fichier_du_compte> ://<ip_du_poste>/youtube_vod photos -fstype=cifs,ro,credentials=<fichier_du_compte> ://<ip_du_poste>/myphotos
Où <fichier_du_compte> est un fichier, protégé, contenant:
username=vivi password=<mot_de_passe_secret>
Et eventuellement :
workgroup=<workgroup>
Et où <ip_du_poste> est l'ip du poste (et non pas son nom ou fqn).
Bien faire précéder le 'path' par : |
tcpdump
Ecouter une interface:
# tcpdump -n -i eth0
Un port particulier:
# tcpdump -n -i eth0 port 22
Un port dans un sens particulier:
# tcpdump -n -i eth0 dst port 22
Un port et une ip:
# tcpdump -n -i eth0 dst 192.168.0.1 and dst port 22
Un port et une classe:
# tcpdump -n -i eth0 dst net 192.168/16 and dst port 22
Voir les nouvelles connexions initialisés:
# tcpdump -n -i eth0 'tcp[tcpflags] & tcp-syn!=0'
Voir les connexions entrantes sur un port:
# tcpdump -n -i eth0 'tcp[tcpflags] & tcp-syn!=0 and dst port 22'
Etc…:
# tcpdump -n -i eth0 'tcp[tcpflags] & (tcp-syn|tcp-ack)!=0 and dst port 22'
mailsnarf
# aptitude install dsniff
Recuperer les mails envoyer par l'<IP> , et eth1 (LAN) a eth0 (WAN) :
# mailsnarf -i eth1 "" <IP>
Essayé aussi avec -v
… en fait, j'ai pas trop compris comment ça marche: trop simple.
DNS local
Lien: http://forum.ubuntu-fr.org/viewtopic.php?id=118701
Aprés avoir configuré un DNS pour un reseau local, on peut s'apercevoir que des IP “pleinement qualifié” ne sont pas resolu !
Exemple, toto.thierry-jaouen.local
:
$ nslookup toto Server: 192.168.0.150 Address: 192.168.0.150#53 Name: toto.thierry-jaouen.local Address: 192.168.0.154
Ok!
$ nslookup toto.thierry-jaouen.local Server: 192.168.0.150 Address: 192.168.0.150#53 Name: toto.thierry-jaouen.local Address: 192.168.0.154
Encore Ok!
$ ping toto -c 1 PING toto.thierry-jaouen.local (192.168.0.154) 56(84) bytes of data. 64 bytes from toto.thierry-jaouen.local (192.168.0.154): icmp_seq=1 ttl=128 time=1.23 ms --- toto.thierry-jaouen.local ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.232/1.232/1.232/0.000 ms
Ok!
$ ping toto.thierry-jaouen.local ping: unknown host toto.thierry-jaouen.local
Oups! c'est quoi ce bordel !
Aprés de longues recherches, le problème viendrait indirectement du service avahi
et directement du fichier:
/etc/nsswitch.conf
En fait: le problème vient plutôt de l'utilisation du suffix “.local” qui est reservé pour le protocole “apple/bonjour” , dont fait usage “avahi” !!! Solution: ne pas utiliser le suffix “.local” |
Je ne sais pas pourquoi exactement, mais il faut mettre dns
avant les mdns
Bref, faire en sorte d'avoir un fichier s'approchant de ça:
# TJ ------- #hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4 # ----------
(les commentaires, c'est pour faire jolie)
Et voila! Comme par bizarre, ca marche sans avoir besoin de redemarrer quoi que ce soit (sauf les applications qui chargent se fichier au demarrage, comme Firefox
)
Tester le debit
Existe aussi pour windows: http://www.noc.ucf.edu/Tools/Iperf/
# apt-get install iperf
Sur le “serveur”:
# iperf -s ------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------
Sur le “client”:
# iperf -c <ip_du_serveur> ------------------------------------------------------------ Client connecting to <ip_du_serveur>, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------
En udp:
Sur le serveur:
# iperf -s -u
Sur le client, il faut preciser la bande passante a tester:
# iperf -c <ip_du_serveur> -u -b 5M
Si il y a 0% de perte, a “5M” , alors on peut essayer de monter un peu… Dés qu'on a des pertes, on est surement au dela d'une limite a ne pas (trop) dépasser.
parser les logs
- iptablesweb
- fwlogwatch
- psad
- ntop ??
- darkstat ??
ident , auth, ftp et port 113
Un test de connexion avec telnet sur un serveur FTP semble lente ou les log iptables remonte des DROP etrange sur le port 113 … et bien c'est parce qu'on DROP les connexions sur le port 113.
Ce port 113 auth est exploité par le process identd, mais cela ralenti les connexions.
Soit on laisse le service vivre et on ne drop pas les paquets, mais il parait que c'est un service obsolete. Soit on desinstalle le service/process et si necessaire, on ajoute une regle dans IpTables:
Desinstaller:
# apt-get remove --purge pidentd
La regle a ajouter a Iptables:
# $IPTABLES -A INPUT -i $WAN_IF -p tcp -d $WAN_IP --dport auth -j REJECT --reject-with tcp-reset
IpFw (FreeBSD)
Liens:
http://www.hackepedia.org/?title=Ipfw
Degringoler un tunnel 'gif' existant:
# ifconfig gif1 destroy
Accessoirement, la creation peut ressembler a ca:
# vi /etc/rc.local ... ifconfig gif1 create /usr/sbin/gifconfig gif1 212.27.33.110 212.27.36.1 up ifconfig gif1 10.10.0.1 10.10.0.2 netmask 255.255.255.255 up route add 10.b.c.d 10.10.0.2 ...
Modifier une regle du firewall, par exemple:
# vi /etc/ipfw.rules ... #add 00330 allow ip from 10.0.0.0/8 to any via gif1
(mise en commentaire)
Voir les regles en service:
# ipfw list
ou
# ipfw show
virer une regle en service.
# ipfw delete 330
(qui correspond a la regle numero 330, bien sur) Et voila:
# ipfw show 330 ipfw: rule 330 does not exist
Si on a fait une erreur, on la remet comme ça:
# ipfw add 00330 allow ip from 10.0.0.0/8 to any via gif1
Voir toutes les routes en numérique:
# netstat -rn
Relancer le serveur (open)vpn:
# /usr/local/etc/rc.d/openvpn.sh restart
Effacer une route:
# route delete 10.9.0.121
Ajouter une route:
# route add 10.9.0.121 10.10.0.2
Interface Ethernet
Liens:
Outils pour bidouiller l'interface Ethernet:
# apt-get install ethtool mii-diag
Et puis:
# mii-tool -v eth0 eth0: link ok product info: vendor 00:10:18, model 23 rev 6 basic mode: autonegotiation enabled basic status: link ok capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
ou
# ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 10Mb/s Duplex: Half Port: MII PHYAD: 24 Transceiver: internal Auto-negotiation: on Current message level: 0x00000001 (1) Link detected: yes
Forcer sans autonegociation:
# ethtool -s eth0 autoneg off
Forcer vitesse:
# ethtool -s eth0 speed 100
Forcer full duplex:
# ethtool -s eth0 duplex full
“Reset” de la carte:
# ethtool -r eth0
Force en 10 Mb Half Duplex:
# mii-tool -F 10baseT-HD eth0
Full duplex:
# mii-tool -F 10baseT-FD eth0
100 Mb Full duplex:
# mii-tool -F 10baseTx-FD eth0
A suivre…
Plusieurs IP
Plusieurs IP pour une même interface...
On pré-suppose qu'on a 2 classes d'adresse: 192.168.0.* (la mienne) et 192.168.1.* (celle de vivi)
Suffit d'ajouter un
nom aprés le eth0
Exemple, voici la config de mon interface reseau: (Il faut editer le fichier /etc/network/interfaces )
auto eth0 iface eth0 inet static address 192.168.0.56 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.254
Et j'aimerais bien avoir une IP locale vers un autre reseau (local)… Alors j'ajoute.
auto eth0:vivi iface eth0:vivi inet static address 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 # gateway 192.168.1.254
Ensuite, je crois qu'il faut faire un truc du style:
# /etc/init.d/networking restart
Ou peut etre:
# ifdown eth0 # ifup eth0
Enfin, je suis pas loin de la solution.
Et voila… j'ai une IP en 192.168.0.56, qui va accessoirement aussi vers Internet en suivant la gateway. Et j'ai aussi une IP en 192.168.1.56, qui reste sur le réseau local (et ne suit pas la gateway que j'ai mis en commentaire).
Ajouter une route pour le FreePlayer
Methode 1
Comme j'ai plusieurs Freebox, et que toutes ne fonctionnent pas egalement sur la TV, je souhaite que VLC/FreePlayer recherche la TV sur l'autre reseau (c'est clair?) Pour cela, j'ajoute (aprés la section auto eth0:vivi):
up route add -net 212.27.38.253 netmask 255.255.255.255 gw 192.168.1.254 down route del -net 212.27.38.253 netmask 255.255.255.255
(Traduction: Quand l'interface se lève, je crée un routage, et a l'inverse, j'efface le routage)
Un equivalent sous Windows, le routage permanent:
route -p add 212.27.38.253 mask 255.255.255.255 192.168.1.254
Parce 212.27.38.253 correspond a l'adresse freeplayer.freebox.fr Et hop… un petit raccourci comme cela:
wxvlc http://mafreebox.freebox.fr/freeboxtv/playlist.m3u
Et voila la TV sur l'autre Freebox (pas celle avec laquelle je surfe).
Methode 2, pour le serveur FTP
C'est quoi l'adresse du serveur du harddisk de la box ?
$ host hd1.freebox.fr hd1.freebox.fr is an alias for freeboxhd1.freebox.fr. freeboxhd1.freebox.fr has address 212.27.40.254
Donc, il faut l'ajouter, en plus du FreePlayer… Il suffit d'ajouter un script dans /etc/network/if-up.d pour la monté du reseau, et dans /etc/network/if-down.d pour la descente.
Donc editons/creeons le fichier /etc/network/if-up.d/eth0-vivi-up :
#!/bin/sh
############################### if [ "x$IFACE" = "xeth0:vivi" ]; then route add -net 212.27.38.253 netmask 255.255.255.255 gw 192.168.1.254 route add -net 212.27.40.254 netmask 255.255.255.255 gw 192.168.1.254 fi ###############################
Et ensuite le fichier /etc/network/if-down.d/eth0-vivi-down :
#!/bin/sh
############################### if [ "x$IFACE" = "xeth0:vivi" ]; then route del -net 212.27.38.253 netmask 255.255.255.255 route del -net 212.27.40.254 netmask 255.255.255.255 fi ###############################
Autre version du script (en vachement mieux):
#!/bin/sh
[ "$IFACE" == "eth0:vivi" ] || exit 0
IP_FBXPLAYER="212.27.38.253" IP_FBX1FTP="212.27.40.254" IP_FBX2FTP="212.27.40.253" GATEWAY="192.168.1.254"
case "$MODE" in start) route add -net $IP_FBXPLAYER netmask 255.255.255.255 gw $GATEWAY route add -net $IP_FBX1FTP netmask 255.255.255.255 gw $GATEWAY route add -net $IP_FBX2FTP netmask 255.255.255.255 gw $GATEWAY ;; stop) route del -net $IP_FBX2FTP netmask 255.255.255.255 gw $GATEWAY route del -net $IP_FBX1FTP netmask 255.255.255.255 gw $GATEWAY route del -net $IP_FBXPLAYER netmask 255.255.255.255 gw $GATEWAY ;; esac
A copier dans /etc/if-up.d et faire ln -s ../if-up.d/le_script dans /etc/if-down.d
Et un petit coup de:
# /etc/init.d/networking restart
Et voila, j'ai la télé via VLC et j'ai aussi un accés au serveur FTP de la Box.
IP au coeur ou IpRoute2
Lien:
Installons IpRoute2
# apt-get install iproute
Le coeur est la commande ip
Matériels présent:
# ip link list 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:50:8d:d7:ec:0c brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ieee1394 00:50:8d:00:00:d6:ec:0c brd ff:ff:ff:ff:ff:ff:ff:ff 4: sit0: <NOARP> mtu 1480 qdisc noop link/sit 0.0.0.0 brd 0.0.0.0
Adresses utilisées:
# ip addr show 1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:50:8d:d7:ec:ff brd ff:ff:ff:ff:ff:ff inet 192.168.0.53/24 brd 192.168.0.255 scope global eth0 inet 192.168.1.53/24 brd 192.168.1.255 scope global eth0:vivi inet6 fe80::250:8dff:fed7:ec0c/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ieee1394 00:50:8d:00:00:d6:ec:ff brd ff:ff:ff:ff:ff:ff:ff:ff 4: sit0: <NOARP> mtu 1480 qdisc noop link/sit 0.0.0.0 brd 0.0.0.0
Je découvre sit0, c'est quoi ça ?
Les routages:
# ip route show 212.27.40.254 via 192.168.1.254 dev eth0 212.27.38.253 via 192.168.1.254 dev eth0 212.27.40.253 via 192.168.1.254 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.53 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.53 default via 192.168.1.254 dev eth0 src 192.168.1.53
ARP:
# ip neigh show 192.168.0.50 dev eth0 lladdr 00:10:5a:47:84:2e REACHABLE 192.168.1.254 dev eth0 lladdr 00:07:cb:30:1b:54 DELAY
Les règles de routage:
# ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
2 freebox (ou 2 gateway)
2 freebox, la mienne et celle a vivi.
Moi: 192.168.0.0/24 gw:192.168.0.254
Vivi: 192.168.1.0/24 gw:192.168.1.254
Le but est de surfer sur ma Freebox, mais de m'autoriser a me connecter a mon pc en passant par la Freebox a vivi… C'est pour le cas où il y a une panne… (ce qui n'arrive jamais!)
Mon IP sur mon réseau: 192.168.0.53
Mon IP sur le réseau à vivi: 192.168.1.53 . La config routeur de la Freebox fait un NAT d'une connexion IP sur le port 5322 vers l'IP 192.168.1.53.
Donc, la porte d'entrée a mon PC est sur le port 5322.
Nater
Nater la connexion sur le port 5322 en 22 (sshd):
# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 5322 -j DNAT --to 192.168.1.53:22
Router vers vivi
Ajoutons une regle pour:
# echo 200 fbxvivi >> /etc/iproute2/rt_tables # ip rule add from 192.168.1.53 table fbxvivi # ip rule ls 0: from all lookup local 32765: from 192.168.1.53 lookup fbxvivi 32766: from all lookup main 32767: from all lookup default
Et puis la gateway:
# ip route add default via 192.168.1.254 dev eth0 table fbxvivi # ip route flush cache
Un test: (a partir de mon poste en 192.168.1.53 via 192.168.1.254)
$ telnet ip_fixe_a_vivi 5322 Trying ip_fixe_a_vivi... Connected to ip_fixe_a_vivi. Escape character is '^]'. SSH-2.0-OpenSSH_4.3p2 Debian-3
Et ca marche ! Une journée a chercher dans le n'importe quoi, pour une solution relativement simple.
Verifions tous les routages:
# ip -4 route show table all ...
Ou simplement ceux de la nouvelle table fbxvivi:
# ip route show table fbxvivi default via 192.168.1.254 dev eth0
Sans IPTABLES
Plusieurs reseaux (plusieurs Freebox), mais pas envie d'installer “iptables” et le marquage de paquet, juste un simple routage selon l'IP visé.
- Soit une box qui renvoit le port “www” sur l'IP 192.168.0.166
- Soit une autre box qui renvoit sur le port “www” sur l'IP 192.168.1.166
Les 2 IP sont hébergés sur le même serveur, et sur la même interface eth0
, mais comment renvoyé sur l'une ou l'autre ?
La 1er IP, “192.168.0.166” a pour gateway par défaut: “192.168.0.254” (la freebox). La 2ieme IP n'a pas de gateway par defaut ! (ca n'aurait pas bien fonctionné !)
On va lui attribuer une gateway grace a “ip”
:
D'abord on edite le fichier /etc/iproute2/rt_tables
pour nommer des tables (Exemple):
# # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 200 freebox1 201 freebox2
(En fait, freebox1
ne servira pas par la suite)
Ensuite, on defini le routage associé à la table freebox2
# ip route add default via 192.168.1.254 dev eth0 table freebox2
Composer la règle:
# ip rule add from 192.168.1.166 table freebox2
ne pas ajouter dev eth0 ! et je ne sais pas pourquoi, et si c'est bien ou mal! |
Et voila. Pour que ce soit activé plus vite, on vite le cache:
# ip route flush cache
Ca devrait fonctionner, comme ca, donc:
- Ce qui vient de la
freebox 1
atteind l'IP 192.168.0.166 sans probleme, et repart en utilisant la “gateway” par defaut. (voir dans/etc/network/interface
) - Ce qui vient de la
freebox 2
atteind l'IP 192.168.1.166 sans problème, et repart en utisant la “gateway” spécifier par“ip rule”
.
Survivre a un reboot
Il suffit de mettre tout ce qu'on a vu (sauf le NAT) dans un script comme suit:
#!/bin/sh # Activer le routage par defaut vers la fbx, pour l'ip 192.168.1.53
[ "$IFACE" == "eth0:vivi" ] || exit 0
test -x /sbin/ip || exit 0
case "$MODE" in start) # Pour que ca retourne vers la box /sbin/ip rule add from 192.168.1.53/32 table fbxvivi /sbin/ip route add default via 192.168.1.254 dev eth0 table fbxvivi ;; stop) /sbin/ip route del default via 192.168.1.254 dev eth0 table fbxvivi /sbin/ip rule del from 192.168.1.53/32 table fbxvivi ;; esac