Comment configurer un serveur Linux en tant que routeur

32

Motivation:

Je souhaite utiliser mon serveur Linux au lieu du routeur sans fil moyen pour plusieurs raisons

  1. Je veux apprendre à configurer un serveur plus complet sur Linux
  2. Je ne veux pas avoir un modem, connecté à un routeur, connecté à un commutateur réseau
  3. J'en ai assez d’avoir à débrancher mon routeur tous les 10 jours car il se bloque
  4. J'en ai assez d’acheter des routeurs uniquement pour réaliser qu’ils manquent quelque chose de crucial, comme le transfert de port ou l’adressage IP statique (dhcp)

Configurer:

En fin de compte, la connexion entre dans un modem et directement dans mon serveur via eth0 , puis eth1 sera envoyé à un commutateur réseau auquel tous les autres ordinateurs clients se connecteront via des câbles Ethernet (oubliez le sans fil pour le moment ). Actuellement, cependant, je suis dans un immeuble de bureaux et la connexion entre dans un modem, qui entre dans un routeur, qui entre dans un commutateur réseau, qui entre ensuite dans eth0 comme indiqué ci-dessus.

Didacticiels en cours:

J'ai regardé quelques tutoriels ( tutoriel Ubuntu est le meilleur), et j'ai examiné certains des routeurs questions ici (ie. celui-ci ), mais ils ont tous Glisser sur plusieurs concepts clés, tels que:

  • Quelle est la relation de eth1 avec eth0 ? Dans /etc/network/interfaces dois-je indiquer à eth1 d'utiliser eth0 comme network (c'est généralement l'adresse physique du routeur)?
  • Dois-je faire quelque chose pour demander à eth1 de prendre Internet qui entre dans eth0 et de le transmettre à qui le souhaite dans le commutateur réseau?

Approche actuelle:

Voici mon fichier /etc/network/interfaces sur le serveur:

iface lo inet loopback

auto eth0
   iface eth0 inet static
   address 192.168.1.70
   netmask 255.255.255.0
   broadcast 192.168.1.255
   network 192.168.1.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8

auto eth1
   # iface eth1 inet dhcp
   iface eth1 inet static
   address 192.168.7.0
   netmask 255.255.255.0
   broadcast 192.168.1.255
   network 192.168.1.0

Et ifconfig me dit que les deux cartes réseau fonctionnent correctement:

eth0      Link encap:Ethernet  HWaddr 20:cf:30:55:a0:5f  
          inet addr:192.168.1.70  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:948633 (948.6 KB)  TX bytes:1274685 (1.2 MB)

eth1      Link encap:Ethernet  HWaddr 00:11:95:f7:f4:6d  
          inet addr:192.168.7.0  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:29934 (29.9 KB)  TX bytes:213055 (213.0 KB)
          Interrupt:21 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:470737 (470.7 KB)  TX bytes:470737 (470.7 KB)

wlan0     Link encap:Ethernet  HWaddr bc:f6:85:f8:70:5c  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Et voici ce que route -n returns sur le serveur:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.7.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

Ensuite, sur le client, j'ai

auto lo
iface lo inet loopback
iface eth0 inet dhcp

Mais il n’est pas associé à une adresse IP.

EDIT: Voici le fichier de configuration isc-dhcp-server situé dans /etc/dhcp3/dhcpd.con , que j'ai principalement copié depuis ce site .

# Sample /etc/dhcpd.conf                                                                                                                                                  
# (add your comments here) 
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.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";

subnet 192.168.7.0 netmask 255.255.255.0 {
   range 192.168.7.10 192.168.7.25;
}  

EDIT: sortie de sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
LOG        all  --  anywhere             anywhere             LOG level warning

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Question

Quelles étapes / composants cruciaux me manque-t-il dans cette configuration?

    
posée puk 14.11.2013 - 01:39
la source

2 réponses

15

Je dois aller comme Jack l'éventreur à cause de plusieurs choses manquantes:

  1. Si votre client utilise le protocole DHCP pour obtenir les adresses IP, vous avez besoin d’un serveur DHCP.

      

    iface eth0 inet dhcp

    Dans les clients, cela indique qu’ils recevront leur adresse IP d’un serveur DHCP. Si vous n’avez pas configuré de serveur DHCP, vous devez utiliser une adresse IP fixe ou installer un serveur DHCP.

  2. Vous manquez de serveurs DNS configurés dans les clients. Soit en raison du manque de serveur DHCP, soit vous souhaitez peut-être utiliser un serveur DNS local pour tout votre réseau.

  3. Vous n’avez pas proposé les règles iptables (le résultat de sudo iptables -L ) mais je suppose que vous n’avez pas activé les règles de masquage, ni le transfert IP est décrit .

  4. L'adresse IP de eth1 n'est pas recommandée. Toutes les adresses IP terminées par 0 sont généralement le réseau lui-même, et la plupart des routeurs / pare-feu sont simplement confus lorsqu'ils sont utilisés . Changez-le en 192.168.7.1 et vous obtiendrez généralement de bons résultats.

  5. Votre valeur broadcast dans l’interface eth1 n’est pas correcte. Envoie des colis à nulle part. La valeur correcte (en tenant compte des autres valeurs de l’interface) est 192.168.7.255 .

  6. Vos options sur le serveur DHCP sont vicieuses. Les packages ARP vers votre routeur n'atteindront jamais. C'est ce que vous devriez avoir:

    default-lease-time 600;
    max-lease-time 7200;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.7.255;
    option routers 192.168.7.1; ## This should be the same value of the step 4
    option domain-name-servers 8.8.8.8;
    
    subnet 192.168.7.0 netmask 255.255.255.0 {
        range 192.168.7.10 192.168.7.25;
    }

Suivez ces instructions et vous pourrez très probablement faire fonctionner votre routeur.

    
réponse donnée Braiam 14.11.2013 - 02:24
la source
8

Braiam a répondu à ma question, mais j'ai pensé qu'il serait utile de faire un tour ici. Veuillez mettre à jour ceci si j'ai fait des erreurs.

Assurez-vous d’avoir deux cartes Ethernet (NIC) et mettez à jour le fichier /etc/network/interfaces en tant que tel.

iface lo inet loopback                                                                                                                    

auto eth0
   iface eth0 inet static
   address 192.168.1.70
   netmask 255.255.255.0
   broadcast 192.168.1.255
   network 192.168.1.0
   gateway 192.168.1.1
   dns-nameservers 8.8.8.8

auto eth1
   iface eth1 inet static
   address 192.168.7.1
   netmask 255.255.255.0
   broadcast 192.168.7.255
   network 192.168.1.0

Pour trouver vos /etc/networks , gateway et broadcast , suivez ces instructions .

Ensuite, allez dans le client et éditez le fichier network (encore une fois, pas /etc/network/interface ) pour ip statique, pour vous assurer qu'au moins la carte réseau fonctionne.

iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1

Modifiez les valeurs pour correspondre aux valeurs ci-dessus. Si cela fonctionne, utilisez les instructions ici mais suivez-les exactement , car il y a plusieurs fichiers /etc/networks . Ne confondez donc pas le dossier dhcp avec /etc/dhcp et ainsi de suite.

    
réponse donnée puk 15.11.2013 - 01:42
la source

Lire d'autres questions sur les étiquettes