Un router o enrutador de paquetes como su nombre se deduce encamina los paquetes de red a otro enrutador o maquina por la ruta mas apropiada según la tabla de encaminamiento y teniendo en cuenta el origen y destino del paquete.
En Linux podemos hacer uso de Netfilter para hacer las funciones de un enrutador mediante la traducción de direcciones de IP (NAT) y el reenvió de paquetes por IP (IP_FORWARD) , para ello se deben de dar 2 reglas para que funcione:
- Debe haber al menos 2 interfaces de red
- Deben estar en distintas redes cada interfaz
Vamos a crear un ejemplo de enrutamiento básico y compartir Internet a un dispositivo de red eth1 suponiendo que la red anfitrión se encuentra en la red 192.168.0.0/24 definimos una red distinta a esta, por ejemplo definiremos a los clientes nuevos ip's en la red 10.42.0.0/24, añadimos lo siguiente al archivo /etc/network/interfaces:
auto eth1 iface eth1 inet static address 10.42.0.1 netmask 255.255.255.0 gateway 10.42.0.1 dns-nameservers 8.8.8.8
Evitamos que NetworkManager use este interfaz ya que es un interfaz estático añadiendo lo siguiente en el archivo /etc/NetworkManager/NetworkManager.conf:
[keyfile] unmanaged-devices=mac:XX:XX:XX:XX:XX:XX
Donde XX es la mac de eth1. Lo siguiente sería permitir el tráfico a la red en el firewall y enmascararla, para ello añadimos lo siguiente en el archivo /etc/rc.local antes del exit 0:
iptables -I FORWARD -o eth1 -d 10.42.0.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -s 10.42.0.0/24 ! -d 10.42.0.0/24 -j MASQUERADELo ejecutamos (solo una vez):
sudo /etc/rc.local
Lo que hicimos en la primera regla en aceptar las conexiones pendientes o ya establecidas que pasan por el interfaz de red. Con MASQUERADE estamos enmascarando a la nueva red para permitir la conexión a Internet.
Activamos el reenvió de IP para que actué como un enrutador de paquetes, para ello ejecutamos lo siguiente:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
Por último instalamos dnsmasq para ofrecer los datos de red a los clientes que conecten por el interfaz eth1 automáticamente vía DHCP:
sudo apt install dnsmasqEditamos /etc/dnsmasq.conf y modificamos los siguientes parámetros:
# No resuelve del archivo /etc/resolv.conf no-resolv # El interfaz de la puerta de enlace que configuramos: interface=eth1 # Rango de IPs que recibirán los clientes: dhcp-range=10.42.0.2,10.42.0.254,12h # DNS a enviar a los clientes server=8.8.8.8Recargamos dnsmasq para actualizar los cambios:
sudo service dnsmasq reloadCon estos simple pasos estamos creando una puerta de enlace , podríamos usar un switch de red y conectar los ordenadores que queramos.
excelente, gracias
ResponderEliminar