Équilibrage de la charge du trafic sortant tout en utilisant openbgpd sur freebsd

8

J'utilise openbgpd dans freeBSD avec 2 connexions FAI. J'ai mon propre numéro AS et un réseau / 22. Actuellement, je fais de la publicité entière / 22 sur les deux réseaux. Le trafic entrant entre, mais mon trafic sortant passe par un seul lien.

Je voudrais soit distribuer mon trafic sortant via les deux liens afin que le trafic sortant soit également équilibré en charge.

Comment configurer cela en utilisant openbgpd dans freebsd?

Ma configuration openbgpd actuelle est jointe pour référence.

AS 00my-as
listen on xx.xx.xx.x
router-id xx.xx.xx.x
network aa.aa.aa.0/22
group "ISP1" {
  remote-as 11remoteas-1
  neighbor bb.bb.bb.1 {
   descr "ISP1"
   announce all  
  }
}
group "ISP2" {
  remote-as 22remoteas-2
  neighbor cc.cc.cc.37 {
   descr "ISP2"
   announce all  
  }
}
deny from any
deny to any
allow from bb.bb.bb.1
allow to bb.bb.bb.1
allow from cc.cc.cc.37
allow to cc.cc.cc.37
Rajkumar S
la source

Réponses:

2

Je n'ai pas utilisé openbgpd depuis des années, donc je vais vous donner une théorie que vous pouvez appliquer à votre configuration.

Un fournisseur peut vous envoyer des itinéraires. En règle générale, ils enverront «par défaut», «clients» ou «complet». Un itinéraire par défaut est juste cela, 0.0.0.0/0 vous est annoncé et vous savez atteindre 0.0.0.0/0 (n'importe quelle IP) à travers eux. Votre situation donne l'impression que les deux fournisseurs vous proposent un itinéraire par défaut, et très probablement, celui avec l'ASN inférieur reçoit tout le trafic (l'ASN étant le bris d'égalité lorsqu'un paquet peut aller vers plusieurs destinations et que les chemins AS sont égaux longueur, etc.).

Un flux «clients» leur ferait annoncer chaque itinéraire qui leur est directement connecté. Si vous avez un fournisseur comme Level3, vous verrez probablement la moitié d'Internet via ce flux. Si votre autre fournisseur a un ASN inférieur, il obtiendrait tout le trafic qui n'était pas directement connecté au pair vous annonçant les itinéraires de ses clients vers vous.

Un flux «complet» contiendra des annonces d'itinéraire pour chaque site auquel un fournisseur sait comment accéder - et pas seulement ceux qui sont directement connectés.

Vous devriez pouvoir faire quelque chose comme:

show ip bgp summary (commande IOS)

qui devrait indiquer le nombre de préfixes reçus quelque part.

Si vos deux fournisseurs existants vous envoient un itinéraire par défaut, votre connexion est actuellement configurée pour le basculement. Le fournisseur A descend, vous acheminez ensuite vers le fournisseur B. Si vous prenez les flux clients des deux avec l'itinéraire par défaut, le trafic circule vers le fournisseur qui a le plus court chemin ASpath pour atteindre une adresse donnée, et retombe à la valeur par défaut route s'il n'a pas pu trouver l'adresse. Si vous obtenez un flux complet des deux, en fonction du chevauchement entre les fournisseurs, vous enverrez du trafic par le «meilleur» chemin à chacun.

Sur l'un de nos routeurs frontaliers, je montre 310540 routes actives, assurez-vous que vous avez suffisamment de RAM et que vous avez configuré la machine pour gérer les routes des deux fournisseurs si vous prenez des routes complètes. Vous pouvez essayer de prendre les itinéraires des clients des deux jusqu'à ce que vous soyez plus à l'aise. Ou prenez les itinéraires des clients auprès du plus petit fournisseur des deux et voyez comment les choses changent.

Cela n'équilibre toujours pas la charge ou ne répartit pas le trafic de manière égale et en fonction de votre trafic. Vous pourriez constater qu'un fournisseur obtient toujours la part du lion du trafic. À ce stade, vous devrez faire des cartes de préfixe / route pour ajuster le trafic afin de préférer un homologue ou l'autre.

Une fois que vous avez configuré des cartes d'itinéraire ou une correspondance ASN pour déplacer votre trafic, si le site de destination tombe en panne et que son itinéraire est supprimé de ce fournisseur, votre routeur enverra toujours le trafic via l'autre connexion. BGP est un peu auto-guérison.

Ce que nous avons fait, c'est que nous avons défini quelques cartes qui correspondent sur la base de l'ASN.

PROVIDER_A_TO PROVIDER_A_THROUGH PROVIDER_B_TO PROVIDER_B_THROUGH

Juniper rend cela plus facile que d'utiliser des communautés, cependant, vous pouvez faire l'une ou l'autre.

Nos listes de préfixes voient si la destination est un ASN particulier, et si c'est le cas, il passe par la carte _TO. Si l'ASN est répertorié dans _THROUGH, il préférera ce fournisseur. Étant donné que l'un de nos fournisseurs a une connexion directe avec AT&T, PROVIDER_B_THROUGH correspond sur 7018 | 7019 (et quelques autres ASN) afin que le trafic AT&T par défaut vers le fournisseur B. Même si AT&T est accessible à partir des deux, nous préférons l'envoyer via le fournisseur B .

Je suis sûr que openbgpd a des méthodes similaires.


la source
3

BGP n'est pas un protocole d'équilibrage de charge.

Permettez-moi de répéter que BGP n'est PAS un protocole d'équilibrage de charge.

Si TOUT le trafic sort par une seule connexion, ma première supposition est que vous n'obtenez pas un flux complet du fournisseur qui est ignoré. Le routage est tel que la priorité est donnée à des routes plus spécifiques, donc si vous avez une route de 192.168.0.0/23 allant au fournisseur a et deux routes de 192.168.0.0/24 et 192.168.1.0/24 allant au fournisseur b, fournisseur a sera complètement ignoré. Je ne connais pas OpenBGP. Je ne peux donc pas vous dire les détails de la façon de vérifier certaines choses sans regarder. Mais la première chose que vous devez faire est de valider que les DEUX fournisseurs vous fournissent un flux complet et pas seulement un itinéraire par défaut.

Si tel est le cas, vous devez examiner la préférence d'itinéraire pour le trafic sortant et le remplissage de chemin pour le trafic entrant. Assurez-vous d'attendre vingt-quatre à quarante-huit heures entre les modifications de configuration juste pour vous assurer que vous disposez d'un ensemble de données suffisamment grand pour déterminer l'efficacité de vos modifications.

Richard June
la source
1

Construire un pont. Freebsd chargera en fait l'équilibre sur les fonctionnalités en amont des préfixes actuels et chargera assez bien l'équilibre. BGP ne le fera pas. Vous pouvez installer les deux FAI en amont et annoncer aux deux FAI par votre / 22 et le rejettera probablement vos préfixes WAN / 30 mais iBGP le reprendra. iBGP fonctionnera bien sur le pont et donc pas vraiment besoin d'OSPF. Vous avez maintenant un équilibreur de charge et une configuration BGP entièrement redondante. Nous en avons plusieurs et nous les aimons sur des liens de concert vers Internet.


la source
1

La première chose à vérifier est de savoir si les deux sessions BGP fonctionnent ou non. utilisation

Résumé du spectacle bgpctl

Et voyez si vous avez des échanges de messages avec les deux pairs.

Et vous devez supprimer le "tout annoncer" à moins que vous ne souhaitiez que votre pair achemine leur trafic à travers vous, ce qui est généralement le contraire;

Retirez tout l'annonce et tout ira bien.

Bruno Mairlot
la source