Estoy intentando preparar un servidor proxy usando Ubuntu 16.04, mi servidor tiene las siguientes NIC:
enp4s0 Link encap:Ethernet HWaddr 00:15:c5:f6:c0:36
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:c5ff:fef6:c036/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5118 errors:0 dropped:0 overruns:0 frame:0
TX packets:3065 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7474529 (7.4 MB) TX bytes:254689 (254.6 KB)
Interrupt:16
enp6s0 Link encap:Ethernet HWaddr 00:08:54:31:8f:79
inet addr:172.24.3.19 Bcast:172.24.3.255 Mask:255.255.252.0
inet6 addr: fe80::208:54ff:fe31:8f79/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7573 errors:0 dropped:334 overruns:0 frame:0
TX packets:2756 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:756664 (756.6 KB) TX bytes:881724 (881.7 KB)
enp4s0 es WAN nic, conectado a Internet. enp6s0 es una tarjeta LAN.
Los configuré tal como está en /etc/network/interfaces
:
allow-hotplug enp4s0
iface enp4s0 inet dhcp
allow-hotplug enp6s0
iface enp6s0 inet static
address 172.24.3.19
netmask 255.255.252.0
gateway 172.24.0.1
dns-nameservers 172.24.3.1
enp4s0 recibió la ip de la siguiente manera, extraída de /var/lib/dhcp/dhclient.enp4s0.leases
:
lease {
interface "enp4s0";
fixed-address 192.168.0.101;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option dhcp-lease-time 7200;
option dhcp-message-type 5;
option domain-name-servers 192.168.0.1,8.8.8.8;
option dhcp-server-identifier 192.168.0.1;
renew 5 2018/06/08 16:03:17;
rebind 5 2018/06/08 16:59:19;
expire 5 2018/06/08 17:14:19;
}
SiguienteNairabytes.net, apliqué algunas reglas de iptables de la siguiente manera:
iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
iptables -A FORWARD -i enp4s0 -o enp6s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i enp6s0 -o enp4s0 -j ACCEPT
Entonces las reglas de iptables quedaron de la siguiente manera:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Pero lo que no puedo entender es por qué sólo una de ambas NIC funciona correctamente a la vez. Si bien este servidor puede comunicarse con LAN mediante enp6s0, no puede conectarse a Internet.
Entonces le aplico esta ruta:
sudo /sbin/route add -net 0.0.0.0 gw 192.168.0.1 enp4s0
¡Y la cosa se revierte! Ahora el servidor puede conectarse a Internet, pero resulta inaccesible a la LAN.
Mi pregunta original eraun intento de establecer una puerta de enlace, pero parece imposible, porque enp6s0 es LAN nic y está conectado a una VLAN, mejor dicho, esta VLAN ya tiene una puerta de enlace (172.24.0.1) y quiero que este servidor sea visible para todas las demás subredes (no solo 172.24.0.1 pero tenemos otras 12 subredes. ¡Todas ellas vinculadas a la máscara de red 172.24.0.0).
Así que decidí crear un proxy, no una puerta de enlace. Instalé Squid, pero debo hacer que la conectividad funcione antes de finalizar la configuración de Squid. Mi esquema de red es como en esta figura: ¿Qué estoy haciendo mal?