虛擬網路卡介面VETH(Virtual Ethernet )建立使用和繫結關係
1. veth建立與使用
VETH(Virtual Ethernet )是Linux提供的另外一種特殊的網路裝置,中文稱為虛擬網路卡介面。它總是成對出現,要建立就建立一個pair。一個Pair中的veth就像一個網路線纜的兩個端點,資料從一個端點進入,必然從另外一個端點流出。每個veth都可以被賦予IP地址,並參與三層網路路由過程,可以實現不同netns之間網路通訊。
# yum install -y iproute ##確保安裝iproute工具
$ ip netns add blue #建立命令空間
$ ip link add veth-red type veth peer name veth-blue
$ ip link set veth-blue up netns blue
$ ip link set veth-red up
# 開啟veth-red,賦予它IP地址192.168.15.1,子網掩碼為255.255.255.0
$ ip addr add 192.168.15.1/24 dev veth-red
$ ip link set veth-red up
# 開啟veth-blue,賦予它IP地址192.168.15.2,子網掩碼為255.255.255.0
$ ip netns exec blue ip addr add 192.168.15.2/24 dev veth-blue
$ ip netns exec blue ip link set veth-blue up
#檢視命令空間blue的路由
$ ip netns exec blue route -n
# 互相ping通
$ ip netns exec red ping 192.168.15.2
#檢視arp表,發現blue的arp表中出現了red的ip地址以及MAC地址記錄,相應的red的arp表中也出現了blue的記錄。
$ ip netns exec blue arp
2. 檢視docker veth pair與網路卡的對應關係
- 執行ip link命令檢視veth的對映關係
...
$ ip link
#如下示例:
18: veth5971b02@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-6c2a98b60161 state UP mode DEFAULT group default
link/ether ce:52:40:36:5d:1b brd ff:ff:ff:ff:ff:ff link-netnsid 2
通過該命令,看到18: veth5971b02@if17,代表當前網路卡的id號18和網路卡介面(interface)id號17相互對映;
- 在檢視iflink檔案
我們可以通過/sys/class/net/目錄,看到當前網路名稱空間所有邏輯網路卡的路徑;然後,通過檢視各自路徑下的iflink檔案檢視到對應網路卡的id號;
#當前預設網路空間中的網路卡
$ ls /sys/class/net
br-6c2a98b60161 docker0 lo veth5971b02 veth-red virbr0-nic
br-8aa7231af266 ens33 veth079ec9b veth6448963 virbr0
$ cat /sys/class/net/veth5971b02/iflink
18
這樣就可以確定:
nginx這個容器的eth0在物理機上對應的veth pair是18: veth5971b02@if17;
同時可以查詢blue網路名稱空間中的veth網路卡id號
$ ip netns exec blue ls /sys/class/net
lo veth-blue
$ ip netns exec blue cat /sys/class/net/veth-blue/iflink
23
相關文章
- 【kubernetes】網路虛擬網路卡對veth pair、flannel網路模型實現原理AI模型
- Linux虛擬網路卡TUN和TAPLinux
- linux 網路卡繫結Linux
- Linux網路卡繫結Linux
- 剖析網路卡繫結模式模式
- Linux(09):網路卡繫結Linux
- CENTOS 7 使用ORACLE VM VirtualBox 建立兩個虛擬網路卡注意事項CentOSOracle
- 代理伺服器和虛擬專業網的關係伺服器
- 虛擬機器網路卡配置虛擬機
- windows11升級系統後重新安裝virtualbox虛擬網路卡變 virtualbox host only Ethernet adapter #2WindowsAPT
- Linux 虛擬網路卡技術:MacvlanLinuxMac
- 虛擬機器、容器和沙箱是什麼關係?虛擬機
- KVM虛擬機器新增物理網路卡虛擬機
- win10如何修改虛擬網路卡ip_win10虛擬網路卡怎麼設定ip地址Win10
- Oracle 11gR2 RAC 單網路卡轉雙網路卡繫結配置Oracle
- 虛擬私有云(Virtual Private Cloud,VPC)Cloud
- Virtual Box 虛擬機器擴容虛擬機
- 如何找到VEth裝置的對端介面VEth peer
- Azure Virtual Netwok(二)配置 ExpressRoute 虛擬網路閘道器Express
- 使用 Cockpit 建立虛擬機器KPI虛擬機
- Linux雙網路卡繫結單個IP之(team)Linux
- vmware虛擬網路卡驅動無法安裝
- 國產網路卡:虛擬化應用,民族品牌
- 技術界中的虛擬機器、容器和沙箱的關係虛擬機
- Linux 中的虛擬網路介面Linux
- 如何使用Python建立AI虛擬助手PythonAI
- 使用Conda建立NodeJS虛擬環境NodeJS
- Windows10系統新增虛擬網路卡的方法Windows
- Linux中虛擬網路卡是什麼?有何作用?Linux
- Vue 為什麼要用虛擬 DOM(Virtual DOM)Vue
- 使用Loom建立虛擬執行緒 - davidOOM執行緒
- Python虛擬環境的建立和管理Python
- Conda 建立和刪除虛擬環境
- 虛擬主機資料庫與空間關係資料庫
- 介面的繫結方案和動態SQLSQL
- Angular Ngrx Store 裡 State 和 Reducer 的繫結關係是如何實現的Angular
- Java 21 新特性:虛擬執行緒(Virtual Threads)Java執行緒thread
- 深度分析Linux下雙網路卡繫結七種模式 多網路卡的7種bond模式原理Linux模式