Comment faire de la multi-maison avec netplan - lier plusieurs IP à une seule carte réseau?
Je vois que plusieurs personnes ont adopté deux approches différentes pour résoudre le problème - une où les deux IP sont définies sous le même nom de périphérique que le nic, qui limite les options avec IPTables.
et
L'autre option est de créer un vlan et de le diriger vers le nic.
Ce qui est correct, la manière correcte de le faire et pourquoi cela a-t-il été changé en premier lieu./etc/network/interfaces était simple, avait du sens, et supportait évidemment le multi-hébergement.
Indépendamment de netplan, il est recommandé aujourd'hui d'attribuer plusieurs adresses à une seule interface plutôt que d'utiliser des alias d'interface. Le manque de support clair pour cela dans/etc/network/interfaces est en fait une question de ifupdown montrant son âge.
La configuration de plusieurs adresses sur une interface est simple avec netplan: https://netplan.io/examples#multiple-addresses-on-an-interface
Pour gérer ces adresses dans iptables, vous pouvez utiliser les options -s et -d pour spécifier les adresses source et de destination à faire correspondre, au lieu d'utiliser les options -i et -o pour les distinguer par interface d'entrée ou de sortie. Dans la grande majorité des cas, cela est équivalent. La seule exception est si vous avez plusieurs alias sur la même interface configurés avec des adresses dynamiques et souhaitez appliquer différentes règles au trafic envoyé à chaque adresse; vous ne pouvez pas configurer les règles de pare-feu avant de connaître l'adresse de destination. Mais vous ne pouvez pas non plus configurer netplan pour qu'il demande dhcp plusieurs fois sur la même interface. Par conséquent, si vous en avez besoin, vous devrez probablement utiliser des vlans.
Vous pouvez minimiser la répétition d'adresses dans vos règles iptables en utilisant quelque chose comme:
iptables -N eth0
iptables -N eth0_0
iptables -N eth0_1
iptables -A INPUT -i enp3s0 -d 192.168.1.5 -j eth0
iptables -A INPUT -i enp3s0 -d 192.168.1.6 -j eth0_0
iptables -A INPUT -i enp3s0 -d 192.168.1.7 -j eth0_1
iptables -A INPUT -i enp3s0 -j DROP
iptables -A eth0 [... eth0 rules here]
iptables -A eth0_0 [... eth0:0 rules here]
iptables -A eth0_1 [... eth0:1 rules here]