Cómo configurar un servidor Linux como enrutador

Cómo configurar un servidor Linux como enrutador

Motivación:

Quiero usar mi servidor Linux en lugar del enrutador inalámbrico promedio por varias razones

  1. Quiero aprender a configurar un servidor más completo en Linux.
  2. No quiero tener un módem, conectado a un enrutador, conectado a un conmutador de red
  3. Estoy harto y cansado de tener que desconectar mi enrutador cada 10 días porque simplemente se cuelga
  4. Estoy harto y cansado de comprar enrutadores sólo para darme cuenta de que les falta algo crucial, como el reenvío de puertos o la dirección IP estática (DHCP).

Configuración:

En última instancia, la conexión llegará a un módem y directamente a mi servidor a través de eth0, luego eth1saldrá a un conmutador de red al que se conectarán todas las demás computadoras cliente mediante cables Ethernet (olvídese de la conexión inalámbrica por el momento). Sin embargo, actualmente estoy en un edificio de oficinas y tengo la conexión ingresando a un módem, que va a un enrutador, que va a un conmutador de red, que luego ingresa eth0como se especifica anteriormente.

Tutoriales actuales:

Miré algunos tutoriales (tutorial de ubuntues el mejor), y he analizado algunas de las preguntas sobre enrutadores aquí (es decir.Éste), pero todos pasan por alto varios conceptos clave, como:

  • ¿Cuál es eth1la relación con eth0? ¿ /etc/network/interfacesTengo que indicar eth1que se use eth0como network(generalmente es la dirección física real del enrutador)?
  • ¿Tengo que hacer algo para indicarle eth1que tome el Internet que ingresa eth0y se lo pase a quien lo quiera en el conmutador de red?

Enfoque actual:

Aquí está mi /etc/network/interfacesarchivo en el servidor:

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

Y ifconfigme dice que ambas NIC están funcionando bien:

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)

Y esto es lo que hay route -n returnsen el servidor:

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

Luego en el cliente tengo

auto lo
iface lo inet loopback
iface eth0 inet dhcp

Pero no se le asigna una dirección IP.

EDITAR:Aquí está el archivo de configuración del servidor isc-dhcp ubicado en /etc/dhcp3/dhcpd.conel cual copié principalmente desdeeste sitio.

# 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;
}  

EDITAR:Salida desudo 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         

Pregunta:

¿Qué pasos/componentes cruciales me faltan en esta configuración?

Respuesta1

Tengo que ir como Jack el Destripador por varias cosas que te faltan:

  1. Si su cliente utilizará DHCP para obtener las IP, necesitará un servidor DHCP.

    iface eth0 inet dhcp

    En los clientes esto indica que obtendrán sus IP de un servidor DHCP, si no configuró un servidor DHCP, debe usar IP fijas o instalar un servidor DHCP.

  2. Faltan servidores DNS configurados en los clientes. Ya sea debido a la falta de un servidor DHCP, o es posible que desee utilizar un servidor DNS local para toda su red.

  3. No ofreciste las iptablesreglas (la salida de sudo iptables -L) pero puedo suponer que no activaste las reglas de Masquerade, ni el reenvío de IP.como se describe.

  4. eth1No se recomienda la dirección IP de . Cualquier IP terminada 0suele ser la propia red, yla mayoría de los enrutadores/firewall simplemente se confunden cuando se usan. Cámbialo 192.168.7.1y estarás prácticamente bien.

  5. Su broadcastvalor en la eth1interfaz no es correcto. Está enviando paquetes a ninguna parte. El valor correcto (teniendo en cuenta otros valores de la interfaz) es 192.168.7.255.

  6. Sus opciones en el servidor DHCP son crueles. Los paquetes ARP a su enrutador nunca llegarán. Esto es lo que deberías tener:

    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;
    }

Siga estos y lo más probable es que su enrutador funcione.

Respuesta2

Braiam respondió a mi pregunta, pero pensé que sería útil incluir aquí un recorrido completo. Actualice esto si he cometido algún error.

Primero asegúrese de tener dos tarjetas Ethernet (NIC) y actualice el /etc/network/interfacesarchivo como tal (nonoconfunda esto con el /etc/networksarchivo).

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

Para encontrar tu gateway, broadcasty network, sigueestas instrucciones.

A continuación, vaya al cliente y edite /etc/network/interface(nuevamente,no /etc/networks) primero el archivo para IP estática, para asegurarse de que al menos la tarjeta NIC esté funcionando.

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

Cambie los valores para que coincidan con los valores anteriores. Si funciona, genial, entonces sigue las instrucciones.aquípero síguelosexactamente, ya que hay varios dhcparchivos, así que no confunda la carpeta /etc/dhcpcon /etc/dhcp3etc.

información relacionada