虚拟网卡接口VETH(Virtual Ethernet )创建使用和绑定关系

24 篇文章 9 订阅
8 篇文章 3 订阅

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

虚拟以太网是指在真实的互联网中,通过软件方法在数据链路层实现一个 按以太网原理工作的虚拟网络。在虚拟网络中可以透明地运行所有应用程 序,支持各种第三层网络协议,如IP,IPv6,IPX等,可以进行普通的文件 共享以及ERP、VoIP等待应用。 特点: . 配置极其简单。 . 树形结构,可以从任一个节点接入,可谓一点接入,全网通行。 . 配合握手服务器(可由任一节点充当),可以实现两个节点间 直接 点对点 通讯,无需中转 !! . 3DES 数据加密 用途: . 创建企业虚拟网 . 创建专题虚拟网,你可以作为虚拟网的树根,然后把所有志同道合的人连接在一起,形成一个独具特色的 “虚拟以太网社区”。 简单地说,任何人都可以用VE建立自己的虚拟Internet世界。 使用说明: 1.双击virtualether.exe运行,程序会自动安装驱动程序va.sys,成功后会弹出设置界面。 2.设置方法。virtual ethernet的设置包括本地(local),远端(remote)和代理(proxy)。   local设置,本端作为虚拟HUB接受连接:  . 设置本端的连接监听端口,即虚拟HUB的连接端口。  . 设置本端的连接密码,当远端连接过来时,需要进行密码验证。 . 设置点对点通讯的握手服务器域名/IP,及其端口。 . 如果本端想做握手服务器,可以设置一个本地的UDP端口。 注:只有本端想做虚拟HUB时才需要正确设置。    remote设置,本端作为虚拟网卡向虚拟HUB发起连接:  . 远端虚拟HUB的IP或域名(当然可以是动态域名)  . 远端虚拟HUB的密码,即远端在 local 设置中的密码 . 远端虚拟HUB的连接端口,即远端在 local 设置中监听端口 注:1.只有本端想与虚拟HUB连接时才需要正确设置。 2.如果想连接到自己的虚拟HUB,则选择“connect to my local virtual HUB”。 Proxy设置,如果你机器通过代理上网,如HTTP代理,Socket代理,就需要根据你的 代理情况进行设置。(这个功能可以穿透firewall,网管要小心啦) 两个VA之间发生通讯时,如果已经配置握手服务器,软件会自动尝试建立点对点通道。 VE不会自动为虚拟网卡分配IP,如果有这个需要,只需要在虚拟网络中找一台机器运行DHCP服务即可。如选择其中一台提供HUB的机器运行DHCP服务。 如果你的上网方式是通过 http 代理,则可能需要把将要连接的虚拟HUM的监听端口设置成443才可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值