web-dev-qa-db-fra.com

Configuration d'un réseau sur un serveur à ports multiples Ethernet

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:

  • eth0 pour se connecter au modem et ainsi à internet
  • eth1, eth2, eth3 pour connecter un commutateur et un point d'accès afin de créer un réseau interne, de partager des ressources, du stockage, des imprimantes, etc.

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:

  • Le serveur a l'adresse IP souhaitée et est capable d'aller sur Internet
  • Les ordinateurs clients reçoivent l'adresse IP du serveur DHCP, mais ne peuvent pas accéder à Internet et/ou au serveur ping ou au modem.

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:

Network Picture

2
user234441

1) configurer les réseaux

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)

2) activer NAT

(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)

3) DHCP

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.

0
guntbert

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.

0
animaletdesequia