web-dev-qa-db-ja.com

BGPとQuaggaで優先ルートを適用するにはどうすればよいですか?

現在セットアップしているルーターが2つあり、データセンターから提供されたプライベートAS番号をサーバーのネットワークに供給します。

私がやりたいのは、ネットワーク上のサーバーにVRRPフェイルオーバーのデフォルトルートを提供することと、ルーティングのアウトバウンドとインバウンドが常に1つのパスを介して優先され、プライマリ優先パスがダウンしている場合にのみ他のパスを使用することです。 。つまり、マスター/バックアップの設定です。

私はVRRPのものをすでに整理しています。しかし、BGPに関する私の知識は非常に基本的です。

トポロジを少し明確にするために、トポロジのアスキーアートをいくつか描きましょう。

ISPA (AS 1)               ISPB (AS 1)
  |                         |
  |                         |
  R1 --- P2P (ethernet) --- R2 (AS65007)
  |                         |
  +------- LAN (ipoib) -----+  

ISP A&Bルーターは、同じデータセンターにあるリモートルーターです。彼らがAS1を持っていると仮定しましょう。そしてまた私は65007であるプライベートASを持っています

それをもう一度述べましょう。 AS 1からのトラフィックは、ISP AへのR1パスがオフラインでない限り、常にR1を介して到達し、R2は到達しないようにします。

ISPAとR1がそれぞれIPの10.1.1.1/30と10.1.1.2/30を持っていると仮定しましょう。そして、ISPBとR2がそれぞれIPの10.1.1.5/30と10.1.1.6/30を持っていると仮定します。

また、アドバタイズしたいネットワーク範囲が192.168.1.0/25であると仮定します。

バイアスルーティングのない現在の構成は現在機能しており、次のようになります。

R1の場合(R2はほぼ同じです)。

ip prefix-list Net:Out seq 5 permit 192.168.1.0/25

router bgp 65007
  bgp router-id 10.1.1.2
  redistribute connected route-map Redist:BGP
  neighbor 10.1.1.1 remote-as 558
  neighbor 10.1.1.1 description Net
  neighbor 10.1.1.1 soft-reconfiguration inbound
  neighbor 10.1.1.1 prefix-list Net:Out out

route-map Redist:BGP permit 10
match ip address prefix-list Net:Out

**これも問題があります。R1は10.1.1.6でR2に到達できることを認識していないためです。 IBGPはありません。上記でそれを修正するにはどうすればよいですか? ****

いくつかの方法でデータにバイアスをかけることができると言われています。 NOCから、localprefを使用して、バックアップルーターにASを付加できると言われました。

この権利を理解すると、次のようになります。 R1構成は同じままです。これはquaggaの正しい構文ですか?これは機能しますか?

ip prefix-list Net:Out seq 5 permit 192.168.1.0/25

router bgp 65007
  bgp router-id 10.1.1.6
  redistribute connected route-map Redist:BGP
  neighbor 10.1.1.5 remote-as 558
  neighbor 10.1.1.5 route-map Net:In in
  neighbor 10.1.1.5 description Net
  neighbor 10.1.1.5 soft-reconfiguration inbound
  neighbor 10.1.1.5 prefix-list Net:Out out

route-map Redist:BGP permit 10
match ip address prefix-list Net:Out
set as-path prepend 65007 65007

route-map Net:In
set local-preference 10

しかし、ネットワーキングの分野で働いている知人に私の問題を説明したとき、彼はデータがISPからR2側を経由してダウンする可能性がまだ高いと言って、別の方法を説明しました。彼は、ISPがそれを受け入れるならば、私もMEDを使うことができると言いました。または、両方の回線が同じISPからのものであるため、ルーティングは非常に決定論的であり、常に最も特殊なパスを選択すると彼は私に言いました。そこで彼は、私のプライマリR1ルーターで、代わりに2つのネットワークをアドバタイズすることを提案しました。つまり、2つの/ 26です。これは正しいですか、それは機能しますか?おそらく両方の方法を組み合わせる必要がありますか?

ip prefix-list Net:Out seq 5 permit 192.168.1.0/26
ip prefix-list Net:Out seq 10 permit 192.168.1.64/26

router bgp 65007
  bgp router-id 10.1.1.2
  redistribute connected route-map Redist:BGP
  neighbor 10.1.1.1 remote-as 558
  neighbor 10.1.1.1 route-map in Net:In
  neighbor 10.1.1.1 description Net
  neighbor 10.1.1.1 soft-reconfiguration inbound
  neighbor 10.1.1.1 prefix-list Net:Out out

route-map Redist:BGP permit 10
match ip address prefix-list Net:Out

では、BGPの専門家が私に何を提案し、必要な変更を加えた後、実際に機能していることをどのように判断すればよいでしょうか。


更新:すぐ上のサブネット方式が機能しませんでした。私のプロバイダーは25未満のものを拒否していると思います。1台のルーターで試したときに確認されました。 show ipbgpはルートをまったく伝播しませんでした。おそらく私はMEDを使用できますか?それは最初の方法よりも良いでしょうか?

3
Matt

目的を達成するにはいくつかの方法があります。もちろん、ISPにアドバタイズするルート(プレフィックス)の前に独自のASを追加し、内部で再アドバタイズする(予定する)ルートにLOCAL_PREFを設定することは良い点です。

基本的に、次のことを行う必要があります。

  1. R1を介してアドバタイズするプレフィックス(ルート)をISPAに優先させます(インバウンドパスに影響を与える)。
  2. R1でISPAから受信するすべてのプレフィックス(デフォルトルートを含む-静的ルートを使用しない場合)を内部ネットワークに優先させます(アウトバウンドパスに影響を与える)。ここでの小さな注意:エンドホストはデフォルトゲートウェイを使用し、ルーティングを実行しないため、エンドホストからR1にパケットを駆動するのはVRRP次第ですしかし、とにかくパケットが到着した場合でもそれを取得できますR2では、R2はそれらのパケットをISPBではなくR1に転送します。

ポイント1の場合、MED、ASプレフィックス、コミュニティなどが調整可能なメトリック(つまり、BGP属性)ですが、リモート側から変更せずに機能するのは、おそらくASプレフィックスです(たとえば、MEDにはステートメントが必要な場合があります)。 ISPルーターの「bgpalways-compare-med」のように、設定によって異なります)。

ポイント2では、LOCAL_PREFとWEIGHTを使用できます(この場合、コミュニティやその他のテクニックは関係ありません)。 WEIGHTはシスコ独自のものです(ただし、Quaggaはそれを使用します)。また、BGPアップデートには含まれていません(ローカルで重要)。したがって、LOCAL_PREFを使用します(ただし、まだ持っていないiBGPで機能します)。

そうは言っても、必要に応じてnetdc.comにアクセスするには、次の1つのオプションがあります。

#
# R1
#
router bgp 65007
  bgp router-id 10.1.1.2
  network 192.168.1.0/25
  neighbor 10.1.1.1 remote-as 558
  neighbor 10.1.1.1 description Net
  neighbor 10.1.1.1 soft-reconfiguration inbound
  neighbor 10.1.1.1 route-map Net:In in
  neighbor 10.1.1.1 route-map Net:Out out

  neighbor iBGP_peers peer-group
  neighbor iBGP_peers remote-as 65007
  neighbor iBGP_peers password $whatyouwant
  neighbor iBGP_peers update-source $IP  #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
  neighbor iBGP_peers next-hop-self      # Otherwise you need to advertise the p2p network between you and ISP

  neighbor $IP_R2_in_192.168.1.0 peer-group iBGP_peers
  neighbor $IP_R2_in_192.168.1.0 description R2

ip prefix-list local-allocations seq 10 permit 192.168.1.0/25

route-map Net:In
  description allow everything

route-map Net:Out
  description announce allocated routes sourced from our AS only (avoid to become a transit AS)
  match ip address prefix-list local-allocations

#
# R2
#
router bgp 65007
  bgp router-id 10.1.1.6
  network 192.168.1.0/25
  neighbor 10.1.1.5 remote-as 558
  neighbor 10.1.1.5 description Net
  neighbor 10.1.1.5 soft-reconfiguration inbound
  neighbor 10.1.1.5 route-map Net:In_backup in
  neighbor 10.1.1.5 route-map Net:Out_backup out

  neighbor iBGP_peers peer-group
  neighbor iBGP_peers remote-as 65007
  neighbor iBGP_peers password $whatyouwant
  neighbor iBGP_peers update-source $IP  #The interface in the common subnet 192.168.1.0/25, otherwise you need an internal routing protocol (IGP) also
  neighbor iBGP_peers next-hop-self      # Otherwise you need to advertise the p2p network between you and ISP

  neighbor $IP_R1_in_192.168.1.0 peer-group iBGP_peers
  neighbor $IP_R1_in_192.168.1.0 description R1

ip prefix-list local-allocations seq 10 permit 192.168.1.0/25

route-map Net:In_backup
  description iBGP will de-prefer all the prefixes
  set local-preference 10

route-map Net:Out_backup
  description announce allocated routes sourced from our AS only
  match ip address prefix-list local-allocations
  set as-path prepend 65007 65007 65007

ちなみに、回避できれば再配布は悪いです。 'network'コマンドを使用してプレフィックスをアドバタイズします(Quaggaでは、Ciscoとは異なり、RIBにサブネットは必要ありません。

2
matteo