Abstrait:
J'ai des problèmes (je présume que le routage) lors de l'ajout d'un fournisseur de services Internet secondaire à la configuration de mon réseau existant: le trafic entrant Router1
n'est pas traité, mais le trafic local et le trafic entrant Router0
fonctionnent correctement.
Comment faire en sorte que les pièces qui fonctionnent actuellement fonctionnent correctement tout en optimisant le trafic entrant Router1
?
Élaboration:
J'ai dessiné un diagramme ci-dessous avec l'essentiel de la situation (en pratique, il y a plus de périphériques sur chaque réseau local, mais cela n'a pas d'importance).
Voici la situation:
- J'ai deux réseaux internes:
LAN0
is192.168.x.0/24
etLAN1
is192.168.y.0/24
. Les deux fonctionnent correctement pour le trafic interne (par exemple, http utilisant cURL ). LAN0
a toujours été connecté parRouter0
etISP0
à laInternet
.LAN1
toujours euRouter1
, mais est maintenant connecté à traversISP1
leInternet
.- Les machines uniquement activées
LAN0
et disposant d'un itinéraire par défautRouter0
fonctionnent correctement pour le trafic entrant et sortant. - Les machines uniquement activées
LAN1
et disposant d'un itinéraire par défautRouter1
fonctionnent correctement pour le trafic entrant et sortant. - Le trafic interne
LAN0
etLAN1
a toujours bien fonctionné. - Le trafic entrant arrive correctement
Router1
carWindowsB
je peux me connecter via RDPWindowsC
. - Le trafic entrant par
Router1
desLinuxB
arrive (selon tcpdump ), mais pas répliqué commecurl http://e.f.g.h
FronLinuxC
montre avec tcpdump surLinuxB
des spectacles:
Il montre uniquement les paquets qui - selon le format de sortie de tcpdump - ont un drapeau SYN défini:
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
Ceci est la LinuxB
table de routage:
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
Puisque la connexion via RDP de WindowsC
à WindowsB
fonctionne bien, je résume qu’il s’agit bien d’un problème de routage. Ceci est la WindowsB
table de routage:
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
Alors, comment puis-je obtenir le routage LinuxB
pour être comme ça:
- garder la route par défaut sur
LinuxB
pour192.168.x.1
que le trafic sortant continue à utiliserRouter0
/ISP0
- garder de répondre à des demandes entrantes provenant
LAN0
deLAN0
- garder de répondre à des demandes entrantes provenant
LAN1
deLAN1
- continuer à répondre aux demandes entrantes via
Router0
(a.b.c.d
/192.168.x.1
) via192.168.x.1
- commencer à répondre aux demandes entrantes via
Router1
(e.f.g.h
/192.168.y.1
) via192.168.y.1
- bonus: avoir un
Router1
basculement ou un équilibre de charge avecRouter0
Postscript:
L' image PNG ci - dessous est générée sur du texte UML par le biais du moteur en ligne gratuit PlantUML . Si vous souhaitez voir le texte UML d'origine, collez le lien de l'image PNG dans ce formulaire PlantUML , puis appuyez sur Submit
.
la source
yast
.Yast
sembleroute
vouloir faire un routage complexe et semble être déconseillé en faveur deip
. Voir opensuse.14.x6.nabble.com/yast2-advanced-routing-td3083578.html et suse.com/documentation/sles11/book_sle_admin/data/…Réponses:
J'avais un script shell pour faire quelque chose comme ça il y a très longtemps mais, désolé, je pouvais le trouver. Je ne peux donc que vous indiquer les solutions que j'ai mises en place à l'époque. J'écris principalement de mémoire, il manque donc quelques exemples:
J'avais une table de routage par liaison montante (route ip ... table 101, route ip ... table 102). Cela va dans / etc / iproute2 / rt_tables.
101 isp1 102 isp2
Vous devez également configurer ces tables:
ip route ajouter par défaut via $ Gateway1 dev $ Table 1 d'interface1 isp1 IP route ajouter par défaut via $ Gateway2 dev $ Table d'interface2 isp2
# N'oubliez pas la table par défaut:
ip route ajouter par défaut via $ DefaultGateway dev $ DefaultInterface
Activer le suivi des connexions iptables (modprobe nf_conntrack)
Définissez une règle ip qui garantisse que le trafic sortant via une interface utilise la table de routage appropriée
règle ip ajouter depuis la table $ Ip1 isp1 règle ip ajouter depuis la table $ Ip2 isp2
Définissez une règle ip (ip rule add ...) indiquant que "les paquets marqués 0x201 doivent rechercher la table de routage 201", une règle pour chaque liaison montante.
Avec tout en place, vous devriez pouvoir recevoir et établir des connexions avec n’importe quelle liaison montante wan et même équilibrer les connexions sortantes.
Ce seraient les bases. Iptables + "ip route" + "règle ip" et vous voilà prêt à partir.
la source