Hy à tous: je viens d'installer Ubuntu Server 12.04.3 sur un Sunfire X4100
Ce serveur a 4 ports ethernet, ma cible est d'utiliser:
Pour atteindre cette cible, j'ai installé un serveur DHCP [apt-get install isc-dhcp-server] et utilisé ci-dessous la configuration:
/etc/default/isc-dhcp-server
INTERFACES="eth1 eth2 eth3"
/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
auto eth1
iface eth1 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
auto eth2
iface eth2 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
auto eth3
iface eth3 inet static
address 192.168.1.5
netmaks 255.255.255.0
network 192.168.1.0
ma configuration de serveur DHCP
/etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option netbios-name-servers 192.168.1.1;
# Use Google public DNS
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "mydomain.it";
# Define address range
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.15 192.168.2.25;
}
Le résultat est:
Voici ci-dessous le résultat de l'annonce sur le serveur:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
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,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:14:4f:20:20:9c brd ff:ff:ff:ff:ff:ff
inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
inet6 fe80::214:4fff:fe20:209c/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:14:4f:20:20:9d brd ff:ff:ff:ff:ff:ff
inet 192.168.2.5/32 scope global eth1
inet6 fe80::214:4fff:fe20:209d/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:14:4f:20:20:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.3.5/32 scope global eth2
5: eth3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:14:4f:20:20:a3 brd ff:ff:ff:ff:ff:ff
inet 192.168.4.5/32 scope global eth3
6: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 06:0d:62:1a:3c:c5 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
ci-dessous ip r sur le serveur:
default via 192.168.1.1 dev eth0 metric 100
169.254.0.0/16 dev eth3 scope link metric 1000
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
Ci-dessous une image de la carte:
En plus de la partie DHCP (et du transfert recommandé, vous devez configurer vos interfaces correctement.
Dans la plupart des cas, chaque interface est dans son propre réseau IP (je donne des exemples d’adresses, vous devrez les adapter).
Laissez eth0
tel quel.
auto eth1
iface eth1 inet static
address 192.168.2.5
netmask 255.255.255.0
network 192.168.2.0
auto eth2
iface eth2 inet static
address 192.168.3.5
netmask 255.255.255.0
network 192.168.3.0
auto eth3
iface eth3 inet static
address 192.168.4.5
netmask 255.255.255.0
network 192.168.4.0
Si le serveur DHCP s'exécute sur le même ordinateur, vous devrez le configurer en conséquence. Juste pour les tests, vous pouvez attribuer une adresse IP statique à un hôte de chaque sous-réseau (par exemple, utilisez 192.168.2.11
pour un hôte connecté à eth1
).
Après avoir configuré correctement les réseaux IP et les adresses IP, vous devez activer le transfert IP avec
Sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
(juste pour une fois pour tester le succès)
et en éditant /etc/sysctl.conf
et en "activant" la ligne
net.ipv4.ip_forward=1
en supprimant le #
au début.
Lorsque cela est fait (chaque client devrait pouvoir envoyer une requête ping à l’interface correspondante de votre serveur)
(essayez-le d'abord pour un sous-réseau, je donne l'exemple pour eth1
vous devez adapter les adresses pour les autres)
Sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.2.0/24 -m conntrack --ctstate NEW -j ACCEPT
Sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Sudo iptables -t nat -F POSTROUTING
Sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Maintenant, les clients du sous-réseau 1 devraient pouvoir envoyer une requête ping aux adresses IP sur Internet, mais seulement jusqu'au prochain redémarrage de votre serveur. Si cela fonctionne, continuez avec eth2
et eth3
en conséquence.
Pour le rendre permanent, vous devez sauvegarder la configuration actuelle (active) des règles de netfilter.
Sudo iptables-save | Sudo tee /etc/iptables-NAT.sav
puis créez l'entrée suivante dans /etc/rc.local
pour recharger la même configuration à chaque redémarrage. Assurez-vous que exit 0
est après votre nouvelle entrée
iptables-restore < /etc/iptables-NAT.sav
(pas de Sudo
nécessaire ici)
La configuration DHCP est incorrecte. Vous devez créer différents sous-réseaux pour chaque interface et vous devez définir une "passerelle" appropriée (à l'aide de option routers
) pour chaque sous-réseau.
# for eth1 with 192.168.2.5 as local address
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.15 192.168.2.25;
option routers 192.168.2.5;
}
# for eth2 with 192.168.3.5 as local address
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.15 192.168.3.25;
option routers 192.168.3.5;
}
# for eth3 with 192.168.4.5 as local address
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.15 192.168.4.25;
option routers 192.168.4.5;
}
Désormais, tous les clients devraient pouvoir accéder aux adresses IP en dehors de votre réseau. La résolution de noms ne sera (probablement) pas encore disponible.
Vous devez activer le transfert IP sur le serveur pour que les packages des hôtes puissent atteindre le réseau étendu:
Sudo sysctl net/ipv4/ip_forward=1
Essayez ceci, puis essayez d’envoyer une adresse IP ou une URL externe à partir des hôtes.