成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Openstack Vlan模式下的隔離和數據流向

云計算 虛擬化 OpenStack
計算機網絡,是分層實現的,不同協議工作在不同層,按著OSI的分層模型,共有七個層,我們一般所說的隔離,通常指的是第2層,也叫“數據鏈路層”;數據鏈路層的網絡包,也叫“幀”,我們常說的網卡的MAC地址,就是幀的地址,MAC,其實是“媒體訪問控制”(media access control)的簡稱,這是數據鏈路層的一個子層。

 一、隔離

計算機網絡,是分層實現的,不同協議工作在不同層,按著OSI的分層模型,共有七個層,我們一般所說的隔離,通常指的是第2層,也叫“數據鏈路層”;數據鏈路層的網絡包,也叫“幀”,我們常說的網卡的MAC地址,就是幀的地址,MAC,其實是“媒體訪問控制”(media access control)的簡稱,這是數據鏈路層的一個子層。

為什么要在這個二層上做隔離呢?因為二層的幀,其中一些幀的地址是廣播地址,在同一個二層的設備都可以、也必須接收這些幀,交換機一般認為工作在二層,對這些廣播包,也都要轉發,所以二層通常被稱為一個“廣播域”。

[[255524]]

二、VLAN

Openstack Neutorn的實現核心是二層物理網絡的抽象與管理,支持多種不同的網絡隔離技術,以保障租戶tenant之間的網絡隔離,而VLAN就是主要使用的隔離方案,它本身就是交換機廣泛使用的二層隔離技術;但這種方案也有一定的局限性,首先管理相對麻煩,需要配合設置物理交換機,另外VLAN的可用數量也有限制,VLAN的ID號僅有四千多個,我們假設每個租戶分配1個VLAN,那最多也就能支持四千多個租戶。

三、虛擬網絡設備

 

圖1:vlan模式下計算節點的虛擬網絡拓撲結構圖

3.1 在vlan網絡模式下,計算節點上虛擬網絡設備如下:

(1)tapxxx設備

簡單的理解為為虛擬機提供的虛擬網卡,就是VM對應的網口的vNIC。虛擬機的網絡功能由vNIC提供,Hypervisor可以為每個虛擬機創建一個或多個vNIC。

(2) qbrxxx設備

Linux網橋,簡單理解就是為安全組服務,負責安全;因為不能在tap設備上配置network ACL rules,增加該linux bridge來實現iptable的安全組策略。

(3) qvmxxx設備

qvm主要是給從VM出來的包打上vlan tag。

(4) plyxxx設備

Ovs bridge,主要功能是實現過濾非本機MAC的單播報文。

(5) pvixxx和pvoxxx設備

ply是策略網橋,ply與br-int之間由一對path port連接,連接ply的一端為pvi端口,連接br-int的一端為pvo端口。

(6) br-int設備

br-int集成網橋,主要是幀的轉發功能。

(7) int-brcps和phy-brcps設備

主要負責將br-int轉發的幀中的vlanid轉換。

(8) brcps和trunk0設備

br-cps是Ovs bridge ,Trunk0由eth0和eth1組成的bond(active-backup模式),packets要想進入physical network,還得通過真正的物理網卡trunk0(eth2和eth4),所以將trunk0橋接到br-1上來打通整個鏈路。

(9) tapuuu設備

DHCP服務監聽端口。

3.2 計算節點上的網絡設備信息

3.2.1 Linux bridage信息

  1. Compute153:~ # virsh list 
  2. Id   Name                          State 
  3. ---------------------------------------------------- 
  4.  1    instance-00000583             running 
  5.  2    instance-000005df             running 
  6.  3    instance-00000603             running 
  7.  4    instance-00000654             running 
  8.  5    instance-0000068f             running 
  9.  6    instance-000006d7             running 
  10.  7    instance-0000070d             running 
  11.  9    instance-00000769             running 
  12.  10   instance-0000090d             running 
  13.  11   instance-00000a37             running 

計算節點Compute153上啟動了10個虛擬機。

  1. Compute153 
  2. :~  
  3. # brctl show 
  4. bridge name     bridge id               STP enabled     interfaces 
  5. qbr7fc1e7d0-0c          8000.bee6e69f9457       no              qvm7fc1e7d0-0c 
  6.                                                        tap7fc1e7d0-0c 
  7. qbr931641ad-4b          8000.eaa1a27fffcb       no              qvm931641ad-4b 
  8.                                                        tap931641ad-4b 
  9. qbr963c4b38-70          8000.7635674ec1fc       no              qvm963c4b38-70 
  10.                                                        tap963c4b38-70 
  11. qbr9df6f9f9-42          8000.2e1eba67aca5       no              qvm9df6f9f9-42 
  12.                                                        tap9df6f9f9-42 
  13. qbrb9dd9478-0f          8000.2e954943421c       no              qvmb9dd9478-0f 
  14.                                                        tapb9dd9478-0f 
  15. qbrc24f2999-b9          8000.427df7c7a333       no              qvmc24f2999-b9 
  16.                                                        tapc24f2999-b9 
  17. qbrc3833757-af          8000.7e6eb025950b       no              qvmc3833757-af 
  18.                                                        tapc3833757-af 
  19. qbrc78917be-9c          8000.1a67a8814d03       no              qvmc78917be-9c 
  20.                                                        tapc78917b0-9c 
  21. qbrd5cbf3b0-ef          8000.f6de8391f526       no              qvmd5cbf3b0-ef 
  22.                                                        tapd5cbf3b0-ef 
  23. qbrfe79631b-85          8000.c2d425903a69       no              qvmfe79631b-85 
  24.                                                        tapfe79631b-85 

可以看到有10個qbr,每一個虛擬機的每一張網卡都有對應的qbr。每一個qbr都有對應的 tap和qvm,對應圖上的qbr北向與南向接口。

3.2.2 ovs bridage信息

通過ovs-vsctl可以查詢主機上已有的 OVS bridge及其中的 port。

  1. Bridge "plyc24f2999-b9" 
  2.         Port "qvmc24f2999-b9" 
  3.             Interface"qvmc24f2999-b9" 
  4.                 type: internal 
  5.         Port "plyc24f2999-b9" 
  6.             Interface"plyc24f2999-b9" 
  7.                 type: internal 
  8.         Port "pvic24f2999-b9" 
  9.             Interface"pvic24f2999-b9" 
  10.                 type: patch 
  11.                 options: {peer="pvoc24f2999-b9"

可以看到ply網橋信息,上面對接qvm,下面對接br-int,ply與br-int之間是一對port接口, pvi與pvo接口。

  1. Bridge br-int 
  2.         fail_mode: secure 
  3.         Port "pvoc78917be-9c" 
  4.             tag: 5 
  5.             Interface"pvoc78917be-9c" 
  6.                 type: patch 
  7.                 options:{peer="pvic78917be-9c"
  8.         Port "pvob9dd9478-0f" 
  9.             tag: 9 
  10.             Interface"pvob9dd9478-0f" 
  11.                 type: patch 
  12.                 options:{peer="pvib9dd9478-0f"

注意pov端口是有tag的,這是一個內部的tag,主要是為了區分同一虛擬機的不同虛擬網 卡 設備,會將多張網卡依次編號。

  1. Bridge br-int 
  2.         fail_mode: secure 
  3.         Port "pvoc78917be-9c" 
  4.             tag: 5 
  5.             Interface"pvoc78917be-9c" 
  6.                 type: patch 
  7.                 options:{peer="pvic78917be-9c"
  8.         Port "pvob9dd9478-0f" 
  9.             tag: 9 
  10.             Interface"pvob9dd9478-0f" 
  11.                 type: patch 
  12.                 options:{peer="pvib9dd9478-0f"
  13.         Port br-int 
  14.             tag: 4095 
  15.             Interface br-int 
  16.                 type: internal 
  17.         Port int-brcps 
  18.             Interface int-brcps 
  19.                 type: patch 
  20.                 options: {peer=phy-brcps} 
  21.         Port "pvo9df6f9f9-42" 
  22.             tag: 5 
  23.             Interface"pvo9df6f9f9-42" 
  24.                 type: patch 
  25.                 options:{peer="pvi9df6f9f9-42"

可以看到br-int網橋上的所有端口信息,向上是pvo口,向下是int-brcps口,是用來連接 brcps網橋。

  1. Bridge br-int 
  2.         fail_mode: secure 
  3.         Port "pvoc78917be-9c" 
  4.             tag: 5 
  5.             Interface"pvoc78917be-9c" 
  6.                 type: patch 
  7.                 options:{peer="pvic78917be-9c"
  8.         Port int-brcps 
  9.             Interface int-brcps 
  10.                 type: patch 
  11.                 options: {peer=phy-brcps} 

int-brcps和phy-brcps接口是br-int與brcps網橋相連的接口,查詢br-int是可以找到與之相連的int-brcps,查詢brcps網橋可以找到與之相連的phy-brcps接口。

  1. Bridge brcps 
  2.         Port external_om 
  3.             tag:1405 
  4.            Interface external_om 
  5.                type: internal 
  6.         Port "trunk0" 
  7.            Interface "trunk0" 
  8.         Port phy-brcps 
  9.            Interface phy-brcps 
  10.                type: patch 
  11.                options: {peer=int-brcps} 
  12.         Port external_api 
  13.             tag:1400 
  14.            Interface external_api 
  15.                type: internal 
  16.         Port brcps 
  17.             tag:0 
  18.            Interface brcps 
  19.                type: internal 
  20.         Port "om-physnet1" 
  21.             tag:1089 
  22.            Interface "om-physnet1" 
  23.                type: internal 

管理面網橋brcps上有多個端口,用于與外部通信打通的external_om與external_api端口,帶tag;向上的phy-brcps接口;本地接口brcps,以及端口om-physnet1,還有最重要的trunk0,實際的數據物理通信接口。

以上就是vlan模式虛擬機通信需要經過的所有端口,數據流向如下:

1)數據幀從VM出來,經過TAP提供的虛擬網口vNIC,再經過Linux網橋qrb安全驗證,走到qvm,會打上一個內部的VLANtag,成為主機節點內部的local id。這個id的作用是區分同一個主機內部的不同VM;

2)繼續南下到ply,資料顯示作用是過濾掉非本機的MAC,主要作用是為了方便訪問同一個主機的其他VM,如果目的源是同一臺主機則直接訪問,不用br-int轉發;

3)繼續走到br-int會實現轉發到目的幀主機,南下到patch port,port會把幀中間的之前打的內部VLAN ID即local id刪除,換成外部的VLAN ID;

4)之后幀走到實際的外部物理交換機網口,發送到目的地。

3.2.2 br-int dump-flows信息

br-int完成從brcps上過來流量(從口int-brcps到達)的vlan tag轉換,下面例子可以看到從外部VLAN ID:1013轉換為內部VLAN ID:2。

  1. Compute153 
  2. :~  
  3. # ovs-ofctl dump-flows br-int 
  4. NXST_FLOW reply (xid=0x4): 
  5.  cookie=0xaf3ffaad56834ff8,duration=8767986.702s, table=0, n_packets=138635866, n_bytes=49130127982,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=1013actions=mod_vlan_vid:2,NORMAL 
  6.  cookie=0xaf3ffaad56834ff8,duration=8759690.249s, table=0, n_packets=902894466, n_bytes=111008267998,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=1014actions=mod_vlan_vid:3,NORMAL 
  7.  cookie=0xaf3ffaad56834ff8,duration=8606291.966s, table=0, n_packets=75523546, n_bytes=7721353259,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=503actions=mod_vlan_vid:4,NORMAL 
  8.  cookie=0xaf3ffaad56834ff8,duration=7943259.828s, table=0, n_packets=27312770, n_bytes=4039091682,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=1011actions=mod_vlan_vid:5,NORMAL 
  9.  cookie=0xaf3ffaad56834ff8,duration=7248098.099s, table=0, n_packets=17132221, n_bytes=1590164809,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=504actions=mod_vlan_vid:6,NORMAL 
  10.  cookie=0xaf3ffaad56834ff8,duration=5730798.970s, table=0, n_packets=35859018, n_bytes=4389953008,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=1012actions=mod_vlan_vid:7,NORMAL 
  11.  cookie=0xaf3ffaad56834ff8,duration=583874.187s, table=0, n_packets=2041814, n_bytes=433205117,idle_age=0, hard_age=65534, priority=3,in_port=1,dl_vlan=1015actions=mod_vlan_vid:8,NORMAL 
  12.  cookie=0xaf3ffaad56834ff8,duration=146306.053s, table=0, n_packets=435169, n_bytes=31391505, idle_age=0,hard_age=65534, priority=3,in_port=1,dl_vlan=1016 actions=mod_vlan_vid:9,NORMAL 
  13.  cookie=0xaf3ffaad56834ff8,duration=9233017.369s, table=0, n_packets=8966890076, n_bytes=2799828872226,idle_age=0, hard_age=65534, priority=2,in_port=1 actions=drop 
  14.  cookie=0xaf3ffaad56834ff8, duration=9233016.732s,table=0, n_packets=1106708092, n_bytes=190560627712, idle_age=0,hard_age=65534, priority=0 actions=NORMAL 
  15.  cookie=0xaf3ffaad56834ff8,duration=9233019.667s, table=23, n_packets=0, n_bytes=0, idle_age=65534,hard_age=65534, priority=0 actions=drop 
  16.  cookie=0xaf3ffaad56834ff8,duration=9233019.551s, table=24, n_packets=0, n_bytes=0, idle_age=65534,hard_age=65534, priority=0 actions=drop 

3.2.3 brcps dump-flows信息

brcps上負責從br-int上過來的流量(從口phy-brcps到達),實現local vlan到外部vlan的轉換,下面例子可以看到從內部VLAN ID:2轉換為外部VLAN ID:1013。

  1. Compute153 
  2. :~  
  3. # ovs-ofctl dump-flows brcps 
  4. NXST_FLOW reply (xid=0x4): 
  5.  cookie=0xaaf94399aad7707e,duration=8768079.505s, table=0, n_packets=4610859, n_bytes=723908441,idle_age=6, hard_age=65534, priority=4,in_port=5,dl_vlan=2actions=mod_vlan_vid:1013,NORMAL 
  6.  cookie=0xaaf94399aad7707e,duration=8759783.046s, table=0, n_packets=1061625441, n_bytes=180117774176,idle_age=0, hard_age=65534, priority=4,in_port=5,dl_vlan=3actions=mod_vlan_vid:1014,NORMAL 
  7.  cookie=0xaaf94399aad7707e,duration=8606384.765s, table=0, n_packets=12135266, n_bytes=3806123480,idle_age=32, hard_age=65534, priority=4,in_port=5,dl_vlan=4actions=mod_vlan_vid:503,NORMAL 
  8.  cookie=0xaaf94399aad7707e,duration=7943352.621s, table=0, n_packets=8783552, n_bytes=1513703385,idle_age=0, hard_age=65534, priority=4,in_port=5,dl_vlan=5actions=mod_vlan_vid:1011,NORMAL 
  9.  cookie=0xaaf94399aad7707e,duration=7248190.902s, table=0, n_packets=2559355, n_bytes=510785011,idle_age=16, hard_age=65534, priority=4,in_port=5,dl_vlan=6actions=mod_vlan_vid:504,NORMAL 
  10.  cookie=0xaaf94399aad7707e,duration=5730891.771s, table=0, n_packets=16831749, n_bytes=3864947698,idle_age=0, hard_age=65534, priority=4,in_port=5,dl_vlan=7actions=mod_vlan_vid:1012,NORMAL 
  11.  cookie=0xaaf94399aad7707e,duration=583966.979s, table=0, n_packets=169878, n_bytes=24055409, idle_age=29,hard_age=65534, priority=4,in_port=5,dl_vlan=8 actions=mod_vlan_vid:1015,NORMAL 
  12.  cookie=0xaaf94399aad7707e,duration=146398.874s, table=0, n_packets=1541, n_bytes=157171, idle_age=132,hard_age=65534, priority=4,in_port=5,dl_vlan=9 actions=mod_vlan_vid:1016,NORMAL 
  13.  cookie=0xaaf94399aad7707e,duration=9233110.012s, table=0, n_packets=78, n_bytes=6780, idle_age=65534,hard_age=65534, priority=2,in_port=5 actions=drop 
  14.  cookie=0xaaf94399aad7707e,duration=9233111.393s, table=0, n_packets=10761364888, n_bytes=3180091314185,idle_age=0, hard_age=65534, priority=0 actions= 

3.2.4 iptables安全組

每一個虛擬機的tap都對應2個chain表(out和in),dhcp agent到虛擬機的訪問策略定義在out表;

  1. Compute153 
  2. :~  
  3. #  iptables -Lneutron-openvswi-sg-chain 
  4. Chain 
  5.  neutron-openvswi-sg-chain ( 
  6. 20 
  7.  references
  8. target     prot opt source               destination         
  9. neutron-openvswi-i7fc1e7d0-0 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtap7fc1e7d0-0c --physdev-is-bridged /* Jump to the VM specific chain. */ 
  10. neutron-openvswi-o7fc1e7d0-0 all  --  anywhere             anywhere             PHYSDEV match --physdev-intap7fc1e7d0-0c --physdev-is-bridged /* Jump to the VM specific chain. */ 
  11. neutron-openvswi-i931641ad-4 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtap931641ad-4b --physdev-is-bridged /* Jump to the VM specific chain. */ 
  12. neutron-openvswi-o931641ad-4 all  --  anywhere             anywhere             PHYSDEV match --physdev-intap931641ad-4b --physdev-is-bridged /* Jump to the VM specific chain. */ 
  13. neutron-openvswi-i963c4b38-7 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtap963c4b38-70 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  14. neutron-openvswi-o963c4b38-7 all  --  anywhere             anywhere             PHYSDEV match --physdev-intap963c4b38-70 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  15. neutron-openvswi-i9df6f9f9-4 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtap9df6f9f9-42 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  16. neutron-openvswi-o9df6f9f9-4 all  --  anywhere             anywhere             PHYSDEV match --physdev-intap9df6f9f9-42 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  17. neutron-openvswi-ib9dd9478-0 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtapb9dd9478-0f --physdev-is-bridged /* Jump to the VM specific chain. */ 
  18. neutron-openvswi-ob9dd9478-0 all  --  anywhere            anywhere             PHYSDEV match --physdev-intapb9dd9478-0f --physdev-is-bridged /* Jump to the VM specific chain. */ 
  19. neutron-openvswi-ic24f2999-b all  --  anywhere             anywhere             PHYSDEV match --physdev-outtapc24f2999-b9 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  20. neutron-openvswi-oc24f2999-b all  --  anywhere             anywhere             PHYSDEV match --physdev-intapc24f2999-b9 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  21. neutron-openvswi-ic3833757-a all  --  anywhere             anywhere             PHYSDEV match --physdev-outtapc3833757-af --physdev-is-bridged /* Jump to the VM specific chain. */ 
  22. neutron-openvswi-oc3833757-a all  --  anywhere             anywhere             PHYSDEV match --physdev-intapc3833757-af --physdev-is-bridged /* Jump to the VM specific chain. */ 
  23. neutron-openvswi-ic78917be-9  all --  anywhere             anywhere             PHYSDEV match --physdev-outtapc78917be-9c --physdev-is-bridged /* Jump to the VM specific chain. */ 
  24. neutron-openvswi-oc78917be-9  all --  anywhere             anywhere             PHYSDEV match --physdev-intapc78917be-9c --physdev-is-bridged /* Jump to the VM specific chain. */ 
  25. neutron-openvswi-id5cbf3b0-e all  --  anywhere             anywhere             PHYSDEV match --physdev-outtapd5cbf3b0-ef --physdev-is-bridged /* Jump to the VM specific chain. */ 
  26. neutron-openvswi-od5cbf3b0-e all  --  anywhere             anywhere             PHYSDEV match --physdev-intapd5cbf3b0-ef --physdev-is-bridged /* Jump to the VM specific chain. */ 
  27. neutron-openvswi-ife79631b-8 all  --  anywhere             anywhere             PHYSDEV match --physdev-outtapfe79631b-85 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  28. neutron-openvswi-ofe79631b-8  all  -- anywhere             anywhere             PHYSDEV match --physdev-intapfe79631b-85 --physdev-is-bridged /* Jump to the VM specific chain. */ 
  29. ACCEPT     all  -- anywhere             anywhere    
  1. Compute153 
  2. :~  
  3. # iptables -L neutron-openvswi-oc78917be-9 
  4. Chain 
  5.  neutron-openvswi-oc78917be- 
  6.  ( 
  7.  references
  8. target     prot opt source               destination         
  9. RETURN     udp  -- default             255.255.255.255      udpspt:bootpc dpt:bootps /* Allow DHCP client traffic. */ 
  10. neutron-openvswi-sc78917be-9 all  --  anywhere             anywhere            
  11. RETURN     udp  -- anywhere             anywhere             udp spt:bootpc dpt:bootps /* AllowDHCP client traffic. */ 
  12. DROP       udp  -- anywhere             anywhere             udp spt:bootps udp dpt:bootpc /*Prevent DHCP Spoofing by VM. */ 
  13. RETURN     all  -- anywhere             anywhere             state RELATED,ESTABLISHED /*Direct packets associated with a known session to the RETURN chain. */ 
  14. RETURN     all  --  anywhere             anywhere            
  15. DROP       all  -- anywhere             anywhere             state INVALID /* Drop packets thatappear related to an existing connection (e.g. TCP ACK/FIN) but do not have anentry in conntrack. */ 
  16. neutron-openvswi-sg-fallback all  --  anywhere             anywhere              
  17. /*  
  18. Send 
  19.  unmatched traffic to thefallback chain. */ 
  1. Compute153 
  2. :~  
  3. #  iptables -Lneutron-openvswi-ic78917be-9 
  4. Chain 
  5.  neutron-openvswi-ic78917be- 
  6.  ( 
  7.  references
  8. target     prot opt source               destination         
  9. RETURN     all  -- anywhere             anywhere             state RELATED,ESTABLISHED /*Direct packets associated with a known session to the RETURN chain. */ 
  10. RETURN     udp --  xxx.xxx.xxx.xxx      anywhere             udp spt:bootps udp dpt:bootpc  ---DHCP 
  11. RETURN     udp --  xxx.xxx.xxx.xxx       anywhere             udp spt:bootps udp dpt:bootpc  ---DHCP 
  12. RETURN     all  -- anywhere             anywhere            
  13. DROP       all  -- anywhere             anywhere             state INVALID /* Drop packets thatappear related to an existing connection (e.g. TCP ACK/FIN) but do not have anentry in conntrack. */ 
  14. neutron-openvswi-sg-fallback all  --  anywhere             anywhere             /* Send unmatched traffic to thefallback chain. */ 

3.3 計算節點的vlan隔離

在vlan模式下,每個 vlan network 都有自己的 bridge,從而也就實現了基于 vlan 的隔離,vlan tag的轉換需要在br-int和brcps兩個網橋上進行相互配合。br-int負責從int-brcps過來的包(帶外部vlan)轉換為內部vlan,而brcps負責從phy-brcps過來的包(帶內部vlan)轉化為外部的vlan。租戶的流量隔離也是通過vlan來進行的,因此包括兩種vlan,虛擬機在Compute Node內流量帶有的local vlan和在Compute Node之外物理網絡上隔離不同租戶的vlan。物理交換機與eth網卡相連的 port 設置成 trunk 模式,實現同一塊物理網卡上面通過多個不同vlan 的數據。

責任編輯:武曉燕 來源: 客技院
相關推薦

2014-01-07 10:54:43

openstackvlan網絡模式

2017-01-06 08:32:26

主流大數據層次

2011-04-14 14:43:38

SSISTransformat

2011-04-19 09:18:02

SSIS數據轉換

2011-12-15 10:25:32

VLAN模式

2023-11-13 11:01:25

數據技術

2011-03-02 14:25:46

網絡拓撲結構數據流量

2010-07-10 12:04:28

2023-12-01 18:06:35

2023-02-28 09:10:28

設計模式解耦數據

2015-08-27 09:35:29

OpenStack運維指南VLAN

2010-01-08 13:40:26

2017-05-16 10:49:20

大數據數據流程圖數據結構

2020-04-03 16:15:38

運營商數據疫情

2011-12-14 15:57:13

javanio

2022-09-06 23:59:29

數據安全人工智能隱私計算

2015-02-12 09:14:41

2010-01-18 17:02:06

2022-12-05 11:17:58

數據安全數據流通數字化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草网在线视频 | 欧美精品一区二区免费 | 国产精品国产三级国产aⅴ原创 | 激情欧美一区二区三区 | 男女视频免费 | 亚洲精品福利视频 | 毛片视频网站 | 精品日韩| 久久久久国产一区二区三区四区 | 91丨九色丨国产在线 | 成人午夜免费视频 | 中文字幕在线二区 | 精品欧美乱码久久久久久1区2区 | 在线视频亚洲 | 亚洲一区 | 最新中文字幕久久 | 欧美成人a∨高清免费观看 欧美日韩中 | 精品一区二区在线看 | 久草欧美视频 | 久久久精品网 | 亚洲 日本 欧美 中文幕 | www.日韩在线| 日韩毛片免费看 | www亚洲精品| 天天综合网天天综合 | 午夜视频精品 | 91xx在线观看 | 天天拍天天插 | 精品毛片 | 日批av | 特黄色一级毛片 | 欧美一区二区三区精品免费 | 亚洲精品欧美精品 | 99tv| 日韩综合在线视频 | 亚洲 欧美 日韩 精品 | 久久久av中文字幕 | 国产成人精品一区 | 在线四虎 | 亚洲成人综合在线 | 免费国产一区 |