IPTV:VRFおよびグローバルテーブルでマルチキャストトラフィックをブロードキャストする

Habréで、私に非常に近いトピックであるIPTVに関する多くの記事を見つけてうれしく思いました。
私はこの記事を書くことで私の小さな貢献をすることにしました。

小さな紹介


中央地域のあるインターネットプロバイダーは、いくつかの都市で商用利用のためにIPTVサービスを提供しています。 基盤の1つ、または最も重要な基盤は、このサービスをコンテンツで満たすことです。これは明らかです。 そしてもちろん、オペレーターがすべてのコンテンツを1つの場所に集約し、そこから地域間データ伝送ネットワークを使用してブランチにブロードキャストする方がはるかに便利です。

問題の声明


コンテンツ集約の代わりのオペレーターには次のものがあります。
1. IPTVサービスを提供するサーバーファーム。
2.地域支社ネットワークとの共同農場。
3.ファームとISMT(地域間データネットワーク)の結合。
4. MRTDは、VRFを使用してサーバーファームの地域ネットワークから分離されます。
ファームサーバーの1つでマルチキャストを暗号化し、追加のビデオ多重化デバイスを使用せずに、この形式でISMTおよび地域ネットワークに転送する必要があります。 暗号化サーバーはここでストリーマーとして機能しますが、これには特定の制限があります。
1. 1つのTVチャネル-1つのライセンス、1つのマルチキャストグループ。
2. サーバーは、1つのインターフェースからのみストリーミングできます (1つのマルチキャスト送信元アドレスが主な問題です)。
暗号化サーバーのOSはRHEL5.4、ファームネットワーク機器はCisco 7600シリーズです。


解決策


最初に、出力で取得するものを模式的に示す必要があります。

画像

この問題に対する論理的でエレガントな解決策は、サーバー上にブリッジ暗号化サーバーを構成することです。これには、2つのタグ付き仮想インターフェイスが含まれます。

VRFおよびグローバルテーブルでは、PIMプロトコルを使用してマルチキャストルーティングを編成する2つのVLANを設定します。
グローバルテーブルのvlanタグが10であり、VRFで20であるとすると、次のようになります。

インターフェイスVlan10
説明#GRTの地域へのマルチキャスト#
mac-address 001c.b7a4.3d10
IPアドレス192.168.10.1 255.255.255.240
ip pimデンスモード
負荷間隔30
終わり

インターフェイスVlan20
説明#MSPDへのマルチキャスト#
mac-address 001c.b7a4.3d11
ip vrf転送MSPD
IPアドレス192.168.20.1 255.255.255.240
IPリダイレクトなし
ip pimデンスモード
負荷間隔30
終わり

次のステップは、暗号化サーバーの接続ポートを構成することです。

インターフェイスGigabitEthernet2 / 20
説明#ストリームアウト#
スイッチポート
スイッチポートトランクカプセル化dot1q
スイッチポートトランクはvlan 10.20を許可しました
スイッチポートモードトランク
負荷間隔30
MDIXオートなし
CDPを有効にしない
スパニングツリーbpdufilter有効
終わり

この場合、スパニングツリーbpdufilterを含めることは必須です。そうしないと、Linuxブリッジとciscoは「同意しません」。
次に、ブリッジ自体を上げる必要があります。 これには、ブリッジユーティリティ、カーネルブリッジサポート、およびタグ付き802.1qトラフィック用のネットワークインターフェイスサポートが必要です。
RHELでは、/ etc / sysconfig / network-scriptsにある構成ファイルを使用してインターフェースが構成されます。
ifcfg-eth1.10:
DEVICE = eth1.10
VLAN =はい
HWADDR = 00:21:5E:65:FA:F2
ONBOOT =はい
BOOTPROTO =静的
TYPE =イーサネット
ブリッジ= stream1

ifcfg-eth1.20:
デバイス= eth1.20
VLAN =はい
HWADDR = 00:21:5E:65:FA:F2
ONBOOT =はい
BOOTPROTO =静的
TYPE =イーサネット
ブリッジ= stream1

ifcfg-stream1ブリッジ構成
DEVICE = stream1
HWADDR = 00:21:5E:65:FA:F2
ONBOOT =はい
BOOTPROTO =静的
TYPE =ブリッジ
IPADDR = 192.168.10.2
NETMASK = 255.255.255.240
STP =オフ

インターフェイスを上げる前に、ブリッジを通るループを回避するために、カーネルでip forwardを無効にします。
エコー1> / proc / sys / net / ipv4 / ip_forward
また、 Fortableチェーンを通過するパケットをドロップするようにiptablesおよびebtablesを構成します。
インターフェイスを大胆に上げ、ルートと2番目のアドレスをブリッジに追加します:ifup eth1.10 && ifup eth1.20 && ifup stream1
ip addr add 192.168.20.2/28 dev stream1
ip route add 224.0.0.0/4 dev stream1

これで、暗号化されたマルチキャストがグローバルテーブルとVRFの両方に注がれました。
1つの詳細が残っています。VRFからオペレーターのネットワークまでマルチキャストをルーティングするには、VRFのソースアドレス(7600、つまり192.168.10.2)へのルートが必要です。
ip route vrf mspd 192.168.10.2 255.255.255.255 192.168.20.2

この記事が誰かに役立つことを願っています。
そして、私を招待してくれたUFOに感謝します!

Source: https://habr.com/ru/post/J86537/


All Articles