注:本文為 “不同 vlan 間組播數據轉發” 相關合輯。
圖片清晰度受引文原圖所限。
略作重排,如有內容異常,請看原文。
組播 VLAN:解決路由器為不同 VLAN 用戶復制多份流量問題
aiaiai010101 于 2018-11-16 22:42:06 發布
一、組播 VLAN 與傳統二層組播的傳輸流程對比
1.傳統二層組播傳輸流程
當 VLAN2 和 VLAN3 的用戶需要接收相同組播流時,上游路由器 RouterA 的物理接口會被邏輯劃分為兩個子接口,分別對應 VLAN2 和 VLAN3 兩個網段。
由于組播傳輸遵循 “一個網段一份數據” 的原則,路由器需為每個子接口(即每個 VLAN)單獨復制一份組播流,并通過 Trunk 鏈路發送至交換機 SwitchA。
交換機接收到兩份重復的組播流后,再分別向 VLAN2 和 VLAN3 內的用戶端口分發。此過程中,路由器與交換機之間的鏈路承載了兩份相同數據,造成帶寬浪費,同時路由器的復制操作也增加了其處理負載。
2.組播 VLAN 傳輸流程
部署組播 VLAN(如 VLAN4)后,路由器僅需向組播 VLAN 復制一份組播流,通過 Trunk 鏈路發送至交換機。
交換機作為組播流的分發點,利用組播 VLAN 與用戶 VLAN(VLAN2、VLAN3)的綁定關系,在二層完成組播流的跨 VLAN 復制,并分別向 VLAN2 和 VLAN3 內的用戶端口轉發。
這一流程消除了路由器的重復復制操作,減少了上游鏈路的帶寬占用,同時將組播復制的負載轉移至二層交換機,優化了網絡整體性能。
二、組播 VLAN 與用戶 VLAN 的綁定機制
組播 VLAN 與用戶 VLAN 的綁定關系是實現跨 VLAN 組播傳輸的核心,其核心規則與角色定義如下:
-
組播 VLAN:作為網絡側接口所屬的 VLAN,主要功能是實現組播流的匯聚。其顯著特征為 一對多映射,即一個組播 VLAN 可同時綁定多個用戶 VLAN,承載多個用戶 VLAN 的組播需求。
-
用戶 VLAN:作為用戶側接口所屬的 VLAN,用于接收來自組播 VLAN 的組播數據。其顯著特征為 唯一性約束,即每個用戶 VLAN 只能隸屬于一個組播 VLAN,以此確保組播流來源唯一,避免數據沖突或重復接收。
這種綁定機制呈現 “邏輯嵌套” 結構:組播 VLAN 作為上層容器,負責從路由器接收組播流并進行集中管理;用戶 VLAN 作為下層成員,通過綁定關系獲取組播流,既實現了組播數據在不同 VLAN 間的高效分發,又保持了各 VLAN 的獨立性和安全性。這一邏輯本質上類似于通過將物理接口劃分為多個子接口,在邏輯層面實現組播數據的優化傳輸。
三、組播 VLAN 的應用價值
組播 VLAN 技術的引入,主要解決了傳統組播在多 VLAN 場景下的兩大痛點:
1.帶寬優化:減少上游鏈路中重復組播流的傳輸,提升鏈路利用率。
2.設備減負:將組播復制的任務從路由器轉移至二層交換機,降低核心路由設備的負載,增強網絡穩定性。
該技術尤其適用于 IPTV、視頻會議等需要跨 VLAN 傳輸大量相同組播數據的場景,能夠顯著提升網絡的傳輸效率和可擴展性。
交換機路由器:不同 VLAN 間轉發組播數據
o( ̄︶ ̄)o__小肉松 已于 2022-05-18 09:41:58 修改
1. 實驗需求
現有一臺處于 VLAN 10 的服務器,其能輸出兩組不同的組播數據,分別為 S1 和 S2。組播數據 S1 的接收者分布在 VLAN 20 和 VLAN 30,組播數據 S2 的接收者分布在 VLAN 20 和 VLAN 40。現僅有一臺不支持組播路由協議 PIM 和 IGMP 的交換機,如何使得處于不同 VLAN 的接收者收到其所需要的組播數據?
2. 配置思路
正常情況下,由于交換機的 MAC 表中不存在目的 IP 地址為組播地址的項,因此組播報文將在該網段內進行廣播(泛洪),使得處于同一 VLAN 的用戶都能收到該組播報文。
針對處于 VLAN 10 的組播數據 S1,要使處于另一網段 VLAN 20 和 VLAN 30 的接收者收到組播數據,只需將 VLAN 20 和 VLAN 30 設置為允許帶有標簽 vlan_id=10
的報文通過,即可實現將組播數據 S1 和 S2 發送到 VLAN 20 和 VLAN 30。由于 VLAN 30 不需要 S2,故在 VLAN 20 中配置 ACL 禁止 S2 即可。對于組播數據 S2,VLAN 20 和 VLAN 40 的配置原理相同。
FAQ:
- 不可以針對組播數據 S1 的目的 IP 地址配置靜態路由嗎?針對一個目的 IP 地址,只能設置一個下一跳。現在需要將 S1 轉發到 VLAN 20 和 VLAN 30,存在兩個下一跳,但 S1 的數據只有一份,因此配置靜態路由無法實現。
- 不可以使用策略路由捕獲組播數據,然后重定向到 VLANIF20 或 VLAN30IF 嗎?與靜態路由的方法同理,由于 S1 的數據只有一份,但存在兩個下一跳,因此策略路由也無法實現。
3. 具體配置
實驗環境
- 一臺能發送組播報文的 PC 機(模擬服務器),其能發出組播數據 S1(目的 IP = 224.3.29.71)、組播數據 S2(目的 IP = 224.3.29.72)。
- 一臺 H3C 交換機,型號為
S5130-EI
。 - 一臺 PC 機,其能接入不同 VLAN 中,開啟抓包軟件 Wireshark 驗證是否收到組播數據。
H3C 交換機具體配置
# 創建本地賬號‘admin’
local user adminpassword simple admin123service-type telnetauthorization-attribute user-role network-admin # 設置用戶權限,network-admin 為最高權限# 開啟遠程終端 0 - 4 號,允許其能使用賬號‘admin’使用 telnet 服務
user-interface vty 0 4authentication-mode scheme # 遠程用戶密碼與本地用戶一致user-role network-admin # 設置用戶權限,network-admin 為最高權限protocol inbound telnet # 配置 vty 支持 telnet 協議# 創建 VLAN 10、VLAN 20、VLAN 30 和 VLAN 40
vlan 10quit
vlan 20quit
vlan 30quit
vlan 40quit# 配置 VLAN 的網關
interface Vlan-interface1 # 配置交換機管理流量網段的網關ip address 172.168.141.254 255.255.255.0
interface Vlan-interface10 # 配置 192.168.10.0/24 網段的網關ip address 192.168.10.1 255.255.255.0
interface Vlan-interface20 # 配置 192.168.20.0/24 網段的網關ip address 192.168.20.1 255.255.255.0
interface Vlan-interface30 # 配置 192.168.30.0/24 網段的網關ip address 192.168.30.1 255.255.255.0
interface Vlan-interface40 # 配置 192.168.40.0/24 網段的網關ip address 192.168.40.1 255.255.255.0# 創建 ACL,僅允許組播組‘224.3.29.71 255.255.255.255’、ICMP 報文通過
acl advanced 3000rule 5 permit ip destination 224.3.29.71 0rule 10 permit icmprule 15 deny ip# 創建 ACL,僅允許組播組‘224.3.29.72 255.255.255.255’、ICMP 報文通過
acl advanced 3001rule 5 permit ip destination 224.3.29.72 0rule 10 permit icmprule 15 deny ip# 創建 ACL,僅允許組播組‘224.3.29.71 255.255.255.255’、‘224.3.29.72 255.255.255.255’、ICMP 報文通過
acl advanced 3002rule 5 permit ip destination 224.3.29.71 0rule 10 permit ip destination 224.3.29.72 0rule 15 permit icmprule 20 deny ip# 批量配置端口,設置其為 VLAN 20 的接口,并允許 VLAN 10 的報文穿越
interface range GigabitEthernet 1/0/9 to GigabitEthernet 1/0/10port link-type hybridundo port hybrid vlan 1port hybrid vlan 10 20 untagged # 允許 VLAN 20、VLAN 10 報文通過并摘掉其 VLAN 標簽port hybrid pvid vlan 20 # 設置接口屬于 VLAN 20 網段packet-filter 3002 outbound # 配置 ACL 3002 于接口發出方向,僅允許特定組播報文、ICMP 報文通過# 批量配置端口,設置其為 VLAN 30 的接口,并允許 VLAN 10 的報文穿越
interface range GigabitEthernet 1/0/11 to GigabitEthernet 1/0/12port link-type hybridundo port hybrid vlan 1port hybrid vlan 10 30 untaggedport hybrid pvid vlan 30packet-filter 3000 outbound# 批量配置端口,設置其為 VLAN 40 的接口,并允許 VLAN 10 的報文穿越
interface range GigabitEthernet 1/0/13 to GigabitEthernet 1/0/14port link-type hybridundo port hybrid vlan 1port hybrid vlan 10 40 untaggedport hybrid pvid vlan 40packet-filter 3001 outbound
發送組播報文的 Python 代碼
import socket
import struct
import time# 創建一個套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
adapter_ip = "192.168.10.200" # 網卡 IP
sock.bind((adapter_ip, 0))multicast_group = ('224.3.29.71', 10000) # 組播報文目的地址
sock.settimeout(10)ttl = struct.pack('b', 10) # 本博主數據結構與算法第 10 篇對 struct 二進制結構體進行介紹
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_TTL, ttl)try:i = 0while True:msg = str(i) + ", src=" + str(sock.getsockname()) + ", multicast_group=" + str(multicast_group)sent = sock.sendto(msg.encode('UTF-8'), multicast_group)print("已發送消息:" + msg)i += 1time.sleep(2)
finally:sock.close()
via:
-
組播 VLAN 優化網絡-CSDN博客
https://blog.csdn.net/aiaiai010101/article/details/84146694 -
【交換機路由器】不同 vlan 間轉發組播數據_跨vlan組播-CSDN博客
https://blog.csdn.net/made_in_china_too/article/details/124826581