主頁 >  其他 > VXLAN 基礎教程:在 Linux 上配置 VXLAN 網路

VXLAN 基礎教程:在 Linux 上配置 VXLAN 網路

2020-09-13 13:38:51 其他

上篇文章結尾提到 Linux 是支持 VXLAN 的,我們可以使用 Linux 搭建基于 VXLAN 的 overlay 網路,以此來加深對 VXLAN 的理解,畢竟光說不練假把式,

1. 點對點的 VXLAN

先來看看最簡單的點對點 VXLAN 網路,點對點 VXLAN 即兩臺主機構建的 VXLAN 網路,每臺主機上有一個 VTEPVTEP 之間通過它們的 IP 地址進行通信,點對點 VXLAN 網路拓撲圖如圖所示:

為了不影響主機的網路環境,我們可以使用 Linux VRF 來隔離 root network namespace 的路由,VRF(Virtual Routing and Forwarding)是由路由表和一組網路設備組成的路由實體,你可以理解為輕量級的 network namespace,只虛擬了三層的網路協議堆疊,而 network namespace 虛擬了整個網路協議堆疊,詳情參看 Linux VRF(Virtual Routing Forwarding)的原理和實作,

Linux Kernel 版本大于 4.3 才支持 VRF,建議做本文實驗的同學先升級內核,

當然了,如果你有專門用來做實驗的干凈主機,可以不用 VRF 來隔離,

下面結合 VRF 來創建一個點對點 VXLAN 網路,

首先在 192.168.57.50 上創建 VXLAN 介面:

$ ip link add vxlan0 type vxlan \
  id 42 \
  dstport 4789 \
  remote 192.168.57.54 \
  local 192.168.57.50 \
  dev eth0

重要引數解釋:

  • id 42 : 指定 VNI 的值,有效值在 1 到 \(2^{24}\) 之間,
  • dstport : VTEP 通信的埠,IANA 分配的埠是 4789,如果不指定,Linux 默認使用 8472
  • remote : 對端 VTEP 的地址,
  • local : 當前節點 VTEP 要使用的 IP 地址,即當前節點隧道口的 IP 地址,
  • dev eth0 : 當前節點用于 VTEP 通信的設備,用來獲取 VTEP IP 地址,這個引數與 local 引數目的相同,二選一即可

查看 vxlan0 的詳細資訊:

$ ip -d link show vxlan0

11: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vrf-test state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 82:f3:76:95:ab:e1 brd ff:ff:ff:ff:ff:ff promiscuity 0
    vxlan id 42 remote 192.168.57.54 local 192.168.57.50 srcport 0 0 dstport 4789 ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx

接下來創建一個 VRF,并將 vxlan0 系結到該 VRF 中:

$ ip link add vrf0 type vrf table 10
$ ip link set vrf0 up
$ ip link set vxlan0 master vrf0

再次查看 vxlan0 的資訊:

$ ip -d link show vxlan0

13: vxlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vrf0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether aa:4d:80:e3:75:e0 brd ff:ff:ff:ff:ff:ff promiscuity 0
    vxlan id 42 remote 192.168.57.54 local 192.168.57.50 srcport 0 0 dstport 4789 ageing 300 udpcsum noudp6zerocsumtx noudp6zerocsumrx
    vrf_slave table 10 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

你會發現多了 VRF 的資訊,

接下來為 vxlan0 配置 IP 地址并啟用它:

$ ip addr add 172.18.1.2/24 dev vxlan0
$ ip link set vxlan0 up

執行成功后會發現 VRF 路由表項多了下面的內容,所有目的地址是 172.18.1.0/24 網路包要通過 vxlan0 轉發:

$ ip route show vrf vrf0

172.18.1.0/24 dev vxlan0 proto kernel scope link src 172.18.1.2

同時也會增加一條 FDB 轉發表:

$ bridge fdb show

00:00:00:00:00:00 dev vxlan0 dst 192.168.57.54 self permanent

這個表項的意思是,默認的 VTEP 對端地址為 192.168.57.54,換句話說,原始報文經過 vxlan0 后會被內核添加上 VXLAN 頭部,而外部 UDP 頭的目的 IP 地址會被冠上 192.168.57.54

在另一臺主機(192.168.57.54)上也進行相同的配置:

$ ip link add vxlan0 type vxlan id 42 dstport 4789 remote 192.168.57.50
$ ip link add vrf0 type vrf table 10
$ ip link set vrf0 up
$ ip link set vxlan0 master vrf0
$ ip addr add 172.18.1.3/24 dev vxlan0
$ ip link set vxlan0 up

一切大功告成之后,就可以相互通信了,在 192.168.57.50 上 ping 172.18.1.3

$ ping 172.18.1.3 -I vrf0

同時使用 wireshark 遠程抓包:

$ ssh [email protected] 'tcpdump -i any -s0 -c 10 -nn -w - port 4789' | /Applications/Wireshark.app/Contents/MacOS/Wireshark -k -i -

具體含義我就不解釋了,參考 Tcpdump 示例教程,

可以看到 VXLAN 報文可以分為三塊:

  • 最內層是 overlay 網路中實際通信的物體看到的報文(比如這里的 ARP 請求),它們和經典網路的通信報文沒有任何區別,除了因為 MTU 導致有些報文比較小,
  • 中間一層是 VXLAN 頭部,我們最關心的欄位 VNI 確實是 42
  • 最外層是 VTEP 所在主機的通信報文頭部,目的 IP 地址為對端 192.168.57.54

下面來分析這個最簡單的模式下 vxlan 通信的程序:

  1. 發送 ping 報文到 172.18.1.3,查看路由表,報文會從 vxlan0 發出去,

  2. 內核發現 vxlan0 的 IP 是 172.18.1.2/24,和目的 IP 在同一個網段,所以在同一個局域網,需要知道對方的 MAC 地址,因此會發送 ARP 報文查詢,

  3. ARP 報文源 MAC 地址為 vxlan0 的 MAC 地址,目的 MAC 地址為全 1 的廣播地址(ff:ff:ff:ff:ff:ff),

  4. VXLAN 根據配置(VNI 42)添加上頭部,

  5. 對端的 VTEP 地址為 192.168.57.54,將報文發送到該地址,

  6. 對端主機接收到這個報文,內核發現是 VXLAN 報文,會根據 VNI 發送給對應的 VTEP

  7. VTEP 去掉 VXLAN 頭部,取出真正的 ARP 請求報文,同時,VTEP 會記錄源 MAC 地址和 IP 地址資訊到 FDB 表中,這便是一次學習程序,然后生成 ARP 應答報文,

$ bridge fdb show
 
00:00:00:00:00:00 dev vxlan0 dst 192.168.57.50 self permanent
aa:4d:80:e3:75:e0 dev vxlan0 dst 192.168.57.50 self
  1. 應答報文目的 MAC 地址是發送方 VTEP 的 MAC 地址,目的 IP 是發送方 VTEP 的 IP 地址,直接發送給目的 VTEP,

  2. 應答報文通過 underlay 網路直接回傳給發送方主機,發送方主機根據 VNI 把報文轉發給 VTEP,VTEP 解包取出 ARP 應答報文,添加 ARP 快取到內核,并根據報文學習到目的 VTEPIP 地址和目的 MAC 地址,添加到 FDB 表中,

$ ip neigh show vrf vrf0
 
172.18.1.3 dev vxlan0 lladdr 76:06:5c:15:d9:78 STALE
 
$ bridge fdb show
 
00:00:00:00:00:00 dev vxlan0 dst 192.168.57.54 self permanent
fe:4a:7e:a2:b5:5d dev vxlan0 dst 192.168.57.54 self
  1. 至此 VTEP 已經知道了通信需要的所有資訊,后續 ICMP 的 ping 報文都是在這條邏輯隧道中單播進行的,不再需要發送 ARP 報文查詢,

總結以上程序:一個 VXLAN 網路的 ping 報文要經歷 ARP 尋址 + ICMP 回應 兩個程序,一旦 VTEP 設備學習到了對方 ARP 地址,后續通信就可以免去 ARP 尋址的程序,

2. VXLAN + Bridge

上述的點對點 VXLAN 網路通信雙方只有一個 VTEP,且只有一個通信物體,而在實際生產中,每臺主機上都有幾十臺甚至上百臺虛擬機或容器需要通信,因此需要一種機制將這些通信物體組織起來,再通過隧道口 VTEP 轉發出去,

方案其實也很常見,Linux Bridge 就可以將多塊虛擬網卡連接起來,因此可以選擇使用 Bridge 將多個虛擬機或容器放到同一個 VXLAN 網路中,網路拓撲圖如圖所示:

和上面的模式相比,這里只是多了一個 Bridge,用來連接不同 network namespace 中的 veth pair,同時 VXLAN 網卡也需要連接到該 Bridge

首先在 192.168.57.50 上創建 VXLAN 介面:

$ ip link add vxlan0 type vxlan \
  id 42 \
  dstport 4789 \
  local 192.168.57.50 \
  remote 192.168.57.54

然后創建網橋 bridge0,把 VXLAN 網卡 vxlan0 系結到上面,然后將 bridge0 系結到 VRF 中,并啟動它們:

$ ip link add br0 type bridge
$ ip link set vxlan0 master br0
$ ip link add vrf0 type vrf table 10
$ ip link set br0 master vrf0
$ ip link set vxlan0 up
$ ip link set br0 up
$ ip link set vrf0 up

下面創建 network namespace 和一對 veth pair,并把 veth pair 的其中一端系結到網橋,然后把另一端放到 network namespace 并系結 IP 地址 172.18.1.2

$ ip netns add ns0

$ ip link add veth0 type veth peer name eth0 netns ns0
$ ip link set veth0 master br0
$ ip link set veth0 up

$ ip -n ns0 link set lo up
$ ip -n ns0 addr add 172.18.1.2/24 dev eth0
$ ip -n ns0 link set eth0 up

用同樣的方法在另一臺主機上配置 VXLAN 網路,系結 172.18.1.3 到另外一個 network namespace 中的 eth0:

$ ip link add vxlan0 type vxlan \
  id 42 \
  dstport 4789 \
  local 192.168.57.54 \
  remote 192.168.57.50
  
$ ip link add br0 type bridge
$ ip link set vxlan0 master br0
$ ip link add vrf0 type vrf table 10
$ ip link set br0 master vrf0
$ ip link set vxlan0 up
$ ip link set br0 up
$ ip link set vrf0 up

$ ip netns add ns0

$ ip link add veth0 type veth peer name eth0 netns ns0
$ ip link set veth0 master br0
$ ip link set veth0 up

$ ip -n ns0 link set lo up
$ ip -n ns0 addr add 172.18.1.3/24 dev eth0
$ ip -n ns0 link set eth0 up

172.18.1.2 ping 172.18.1.3 發現整個通信程序和前面的實驗類似,只不過容器發出的 ARP 報文會先經過網橋,再轉發給 vxlan0,然后在 vxlan0 處由 Linux 內核添加 VXLAN 頭部,最后發送給對端,

邏輯上,VXLAN 網路下不同主機上的 network namespace 中的網卡都被連接到了同一個網橋上,這樣就可以在同一個主機上創建同一 VXLAN 網路下的多個容器,并相互通信了,

3. 多播模式的 VXLAN

上面兩種模式只能點對點連接,也就是說同一個 VXLAN 網路中只能有兩個節點,這怎么能忍,,,有沒有辦法讓同一個 VXLAN 網路中容納多個節點呢?我們先來回顧一下 VXLAN 通信的兩個關鍵資訊:

  1. 對方虛擬機(或容器)的 MAC 地址
  2. 對方所在主機的 IP 地址(即對端 VTEP 的 IP 地址)

跨主機的容器之間首次通信時需要知道對方的 MAC 地址,因此會發送 ARP 報文查詢,如果有多個節點,就要把 ARP 查詢報文發送到所有節點,但傳統的 ARP 報文廣播是做不到的,因為 Underlay 和 Overlay 不在同一個二層網路,默認情況下 ARP 廣播是逃不出主機的,要想實作 Overlay 網路的廣播,必須要把報文發送到所有 VTEP 所在的節點,為了解決這個問題,大概有兩種思路:

  1. 使用多播,把網路中的某些節點組成一個虛擬的整體,
  2. 事先知道 MAC 地址和 VTEP IP 資訊,直接把 ARPFDB 資訊告訴發送方 VTEP,一般是通過外部的分布式控制中心來收集這些資訊,收集到的資訊會分發給同一個 VXLAN 網路的所有節點,

我們先來看看多播是怎么實作的,分布式控制中心留到下一篇再講,

如果 VXLAN 要使用多播模式,需要底層的網路支持多播功能,多播地址范圍為 224.0.0.0~239.255.255.255

和上面的 點對點 VXLAN + Bridge 模式相比,這里只是將對端的引數改成 group 引數,其他不變,命令如下:

# 在主機 192.168.57.50 上執行
$ ip link add vxlan0 type vxlan \
  id 42 \
  dstport 4789 \
  local 192.168.57.50 \
  group 224.1.1.1
  
$ ip link add br0 type bridge
$ ip link set vxlan0 master br0
$ ip link add vrf0 type vrf table 10
$ ip link set br0 master vrf0
$ ip link set vxlan0 up
$ ip link set br0 up
$ ip link set vrf0 up

$ ip netns add ns0

$ ip link add veth0 type veth peer name eth0 netns ns0
$ ip link set veth0 master br0
$ ip link set veth0 up

$ ip -n ns0 link set lo up
$ ip -n ns0 addr add 172.18.1.2/24 dev eth0
$ ip -n ns0 link set eth0 up
# 在主機 192.168.57.54 上執行
$ ip link add vxlan0 type vxlan \
  id 42 \
  dstport 4789 \
  local 192.168.57.54 \
  group 224.1.1.1
  
$ ip link add br0 type bridge
$ ip link set vxlan0 master br0
$ ip link add vrf0 type vrf table 10
$ ip link set br0 master vrf0
$ ip link set vxlan0 up
$ ip link set br0 up
$ ip link set vrf0 up

$ ip netns add ns0

$ ip link add veth0 type veth peer name eth0 netns ns0
$ ip link set veth0 master br0
$ ip link set veth0 up

$ ip -n ns0 link set lo up
$ ip -n ns0 addr add 172.18.1.3/24 dev eth0
$ ip -n ns0 link set eth0 up

和上面的實驗明顯有區別的是 FDB 表項的內容:

$ bridge fdb show

00:00:00:00:00:00 dev vxlan0 dst 224.1.1.1 self permanent

dst 欄位的值變成了多播地址 224.1.1.1,而不是之前對方的 VTEP 地址,VTEP 會通過 IGMP(Internet Group Management Protocol) 加入同一個多播組 224.1.1.1

我們來分析下多播模式下 VXLAN 通信的全程序:

  1. 發送 ping 報文到 172.18.1.3,查看路由表,報文會從 vxlan0 發出去,
  2. 內核發現 vxlan0 的 IP 是 172.18.1.2/24,和目的 IP 在同一個網段,所以在同一個局域網,需要知道對方的 MAC 地址,因此會發送 ARP 報文查詢,
  3. ARP 報文源 MAC 地址為 vxlan0 的 MAC 地址,目的 MAC 地址為全 1 的廣播地址(ff:ff:ff:ff:ff:ff),
  4. VXLAN 根據配置(VNI 42)添加上頭部,
  5. 到這一步就和之前不一樣了,由于不知道對端 VTEP 在哪臺主機,根據多播配置,VTEP 會往多播地址 224.1.1.1 發送多播報文,
  6. 多播組中的所有主機都會收到這個報文,內核發現是 VXLAN 報文,就會根據 VNI 發送給相應的 VTEP
  7. 收到報文的所有主機的 VTEP 會去掉 VXLAN 的頭部,取出真正的 ARP 請求報文,同時,VTEP 會記錄源 MAC 地址和 IP 地址資訊到 FDB 表中,這便是一次學習程序,如果發現 ARP 不是發送給自己的,就直接丟棄;如果是發送給自己的,則生成 ARP 應答報文,
  8. 后面的步驟就和上面的實驗相同了,

整個通信程序和之前比較類似,只是 Underlay 采用組播的方式發送報文,對于多節點的 VXLAN 網路來說比較簡單高效,但多播也是有它的問題的,并不是所有網路設備都支持多播(比如公有云),再加上多播方式帶來的報文浪費,在實際生成中很少被采用,下篇文章就著重介紹如何通過分布式控制中心來自動發現 VTEPMAC 地址等資訊,

4. 參考資料

  • linux 上實作 vxlan 網路

微信公眾號

掃一掃下面的二維碼關注微信公眾號,在公眾號中回復?加群?即可加入我們的云原生交流群,和孫宏亮、張館長、陽明等大佬一起探討云原生技術

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/24832.html

標籤:其他

上一篇:matlab程式代碼,跪求大神賜教

下一篇:Excel操作實作資料匯總

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more