Resumen:
Tengo (presumo enrutamiento) problemas al agregar un ISP secundario a mi configuración de red existente: el tráfico entrante Router1
no se responde, pero el tráfico local y entrante Router0
funciona bien.
¿Cómo puedo mantener las piezas que actualmente funcionan bien, mientras hago el tráfico entrante a través del Router1
trabajo?
Elaboración:
He esbozado un diagrama a continuación con los elementos básicos esenciales de la situación (en la práctica, hay más dispositivos en cada LAN, pero no importan).
Esta es la situación:
- Tengo dos redes internas:
LAN0
es192.168.x.0/24
yLAN1
es192.168.y.0/24
. Ambos funcionan bien para el tráfico interno (por ejemplo, http usando cURL ). LAN0
siempre ha estado conectado a través deRouter0
yISP0
alInternet
.LAN1
siempre tuvoRouter1
, pero ahora está conectado a travésISP1
deInternet
.- Las máquinas que solo funcionan
LAN0
y tienen una ruta predeterminada a través delRouter0
trabajo funcionan bien para el tráfico saliente y entrante. - Las máquinas que solo funcionan
LAN1
y tienen una ruta predeterminada a través delRouter1
trabajo funcionan bien para el tráfico saliente y entrante. - El tráfico interno
LAN0
yLAN1
siempre ha funcionado bien. - El tráfico entrante a través
Router1
deWindowsB
llega correctamente: puedo conectarme a él a través de RDP desdeWindowsC
. - El tráfico entrante a través
Router1
deLinuxB
llega (según tcpdump ), pero no se responde como uncurl http://e.f.g.h
frontLinuxC
show con un tcpdump en losLinuxB
shows:
Solo muestra los paquetes que, de acuerdo con el formato de salida tcpdump , tienen establecido un indicador SYN :
LinuxB:/tmp/LinuxB.eth1.80 # tcpdump -i eth1 'port 80'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
13:35:19.489779 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047182 ecr 0,sackOK,eol], length 0
13:35:19.788841 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047478 ecr 0,sackOK,eol], length 0
13:35:19.888835 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047578 ecr 0,sackOK,eol], length 0
13:35:19.989412 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047678 ecr 0,sackOK,eol], length 0
13:35:20.089685 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047778 ecr 0,sackOK,eol], length 0
13:35:20.190836 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287047877 ecr 0,sackOK,eol], length 0
13:35:20.392123 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 1287048072 ecr 0,sackOK,eol], length 0
13:35:20.693692 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:21.197162 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:22.204134 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:24.115961 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:27.852374 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
13:35:31.967049 IP i.j.k.l.57512 > 192.168.y.2.http: Flags [S], seq 816356596, win 65535, options [mss 1460,sackOK,eol], length 0
Esta es la LinuxB
tabla de ruta:
LinuxB:/tmp/LinuxB.eth1.80 # route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.x.1 0.0.0.0 UG 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
link-local * 255.255.0.0 U 0 0 0 eth0
192.168.x.0 * 255.255.255.0 U 0 0 0 eth0
192.168.x.0 * 255.255.255.0 U 0 0 0 eth1
Dado que la conexión a través de RDP de WindowsC
que WindowsB
las obras excelentes, reanudo esto es de hecho un problema de enrutamiento. Esta es la WindowsB
tabla de ruta:
C:\temp>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x2 ...00 0c 29 35 77 e1 ...... AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
0x3 ...00 0c 29 35 77 eb ...... VMware Accelerated AMD PCNet Adapter - Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.x.1 192.168.x.4 10
0.0.0.0 0.0.0.0 192.168.y.1 192.168.y.4 5
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
192.168.x.0 255.255.255.0 192.168.x.4 192.168.x.4 10
192.168.x.4 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.x.255 255.255.255.255 192.168.x.4 192.168.x.4 10
192.168.y.0 255.255.255.0 192.168.y.4 192.168.y.4 10
192.168.y.4 255.255.255.255 127.0.0.1 127.0.0.1 10
192.168.y.255 255.255.255.255 192.168.y.4 192.168.y.4 10
224.0.0.0 240.0.0.0 192.168.x.4 192.168.x.4 10
224.0.0.0 240.0.0.0 192.168.y.4 192.168.y.4 10
255.255.255.255 255.255.255.255 192.168.x.4 192.168.x.4 1
255.255.255.255 255.255.255.255 192.168.y.4 192.168.y.4 1
Default Gateway: 192.168.y.1
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
0.0.0.0 0.0.0.0 192.168.y.1 5
0.0.0.0 0.0.0.0 192.168.x.1 10
Entonces, ¿cómo puedo hacer que la ruta LinuxB
sea así?
- mantenga la ruta predeterminada activada
LinuxB
para192.168.x.1
que el tráfico saliente siga usandoRouter0
/ISP0
- siguen respondiendo a las peticiones de entrada procedente de
LAN0
sobreLAN0
- siguen respondiendo a las peticiones de entrada procedente de
LAN1
sobreLAN1
- siga respondiendo solicitudes entrantes a través de
Router0
(a.b.c.d
/192.168.x.1
) a través de192.168.x.1
- comenzar a responder solicitudes entrantes a través de
Router1
(e.f.g.h
/192.168.y.1
) a través de192.168.y.1
- bonificación: tener
Router1
conmutación por error o equilibrio de carga conRouter0
Posdata:
La imagen PNG a continuación se genera en texto UML a través del motor en línea gratuito PlantUML . Si desea ver el texto UML original, pegue el enlace de la imagen PNG en este formulario PlantUML , luego presione Submit
.
fuente
yast
.Yast
parece estar fuera de enrutamiento complejo yroute
parece estar en desuso a favor deip
. Ver opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html y suse.com/documentation/sles11/book_sle_admin/data/…Respuestas:
Tenía un script de shell para hacer algo así hace mucho, mucho tiempo, pero, lo siento, pude encontrarlo. Por lo tanto, solo puedo darle consejos sobre las soluciones que implementé en ese momento. Estoy escribiendo principalmente de memoria, por lo que faltan algunos ejemplos:
Tenía una tabla de enrutamiento por enlace ascendente (ruta ip ... tabla 101, ruta ip ... tabla 102). Eso va en / etc / iproute2 / rt_tables.
101 isp1 102 isp2
Necesita configurar esas tablas también:
ruta IP agregar valor predeterminado a través de $ Gateway1 dev $ interfaz1 tabla isp1 ruta IP agregar valor predeterminado a través de $ Gateway2 dev $ interfaz2 tabla isp2
# No olvides la tabla predeterminada:
ruta IP agregar valor predeterminado a través de $ DefaultGateway dev $ DefaultInterface
Habilitar el seguimiento de conexión de iptables (modprobe nf_conntrack)
Establezca una regla de IP que garantice que el tráfico que sale a través de una interfaz utiliza la tabla de enrutamiento correcta
regla IP agregar desde $ Ip1 tabla isp1 ip regla agregar desde $ Ip2 tabla isp2
Establezca una regla ip (ip rule add ...) que indique que "los paquetes marcados 0x201 buscarán la tabla de enrutamiento 201", una regla para cada enlace ascendente.
Con todo en su lugar, debería poder recibir e iniciar conexiones con cualquier enlace ascendente wan e incluso equilibrar las conexiones salientes.
Eso sería lo básico. Iptables + "ruta ip" + "regla ip" y listo.
fuente