linux 创建虚拟网卡的几种方法

linux 创建虚拟网卡的几种方法,第1张

Linux添加虚拟网卡的多种方法

有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在Linux服务器上添加虚拟网卡.

我们向eth0中添加一块虚拟网卡:

第一种方法:快递创建\删除虚拟网卡

sudo ifconfig eth0:0 192.168.10.10 up

以上的命令就可以在eth0网卡上创建一个叫eth0:0的虚拟网卡,他的地址是:192.168.1.63

如果不想要这个虚拟网卡了,可以使用如下命令删除:

sudo ifconfig eth0:0 down

重启服务器或者网络后,虚拟网卡就没有了.

hzhsan:但是发现添加的虚拟网卡和原网卡物理地址是一样的。

第二种方法:修改网卡配置文件

在ubuntu下,网卡的配置文件是/etc/network/interfaces,所以我们修改它:

sudo vim /etc/network/interfaces

在这个文件中增加如下内容并保存:

auto eth0:0

iface eth0:0 inet static

address 192.168.10.10

netmask 255.255.255.0

#network 192.168.10.1

#broadcast 192.168.1.255

保存后,我们需要重启网卡(重新加载配置文件)才会生效,使用如下命令重启:

sudo /etc/init.d/networking restart

他的优点是重启服务器或者网卡配置不会丢失。

-------------------------------------------

在linux中虚拟网卡的方法

第三种方法:创建tap

前两种方法都有一个特点,创建的网卡可有不同的ip地址,但是Mac地址相同。无法用来创建虚拟机。

添加虚拟网卡tap

tunctl -b

附上相关命令简介:

显示网桥信息

brctl show

添加网桥

brctl addbr virbr0

激活网桥

ip link set virbr0 up

添加虚拟网卡tap

tunctl -b

tap0 ------->执行上面使命就会生成一个tap,后缀从0,1,2依次递增

激活创建的tap

ip link set tap0 up

将tap0虚拟网卡添加到指定网桥上。

brctl addif br0 tap0

给网桥配制ip地址

ifconfig virbr1 169.254.251.4 up

将virbr1网桥上绑定的网卡eth5解除

brctl delif virb1 eth5

给virbr1网桥添加网卡eth6

brctl addif virbr1 eth6

Linux系统(3):基础命令

Linux系统(3):基础命令

(1)cd命令

cd /--------------进入根目录(主目录)

cd /目录1----------进入目录1(进入单级目录)

cd /目录1/目录2-----进入目录2(进入多级目录,目录2在目录1内)

cd .--------------返回当前目录

cd ..-------------返回到上一级目录

cd ~--------------返回到当前用户

(2)tap命令

tab-----输入目录的首字母按下tab,会自动d出该目录;

如果目录首字母相同,两次tab,会d出首字母相同的所有目录

(3)ls命令

ls----------查看当前目录下的内容

ls - l------查看当前目录的详细信息(可以简写为ll)

ls - a------查看当前目录下的所有内容(包括隐藏的文件)

ls - la-----查看当前目录的所有详细信息

(4)

pwd------------查看当前目录的路径

man 当前命令-----打开当前命令的帮组手册(帮组命令查询当前命令的使用方式),点击键盘Q退出手册

(5)mkdir命令

mkdir xx-----------在当前目录下创建目录xx

mkdir -p a/b/c----迭代创建(在当前目录下创建了a目录,在a目录内又创建了b目录,在b目录内又创建了c目录)

(6)rmdir命令(只能删除空目录)

rmdir x------------删除当前目录下的x目录(前提:目录x是空目录)

rmdir a/b/c--------删除当前目录下的,a目录内的b目录内的c目录(前提:目录c是空目录)

(若直接删除a或b目录,会报错,因为a或b目录不是空目录)

rmdir -p a/b/c----迭代删除(删除当前目录下的目录a、目录b和目录c)

(前提:目录a的子目录只有目录b,目录b的子目录只有目录c,目录c是空目录)

(7)rm命令

rm 权限比较高的删除命令(什么都能删,而且删掉以后不会进回收站)

rm f---------------------跳过提示信息

rm r---------------------强制删除

rm rf--------------------跳过提示信息强制删除

rm -rf c--------------删除当前目录内,目录a下的目录b下的目录c以及目录c内部的所有东西

rm -rf a/b/c----------删除当前目录内,目录a以及目录a内部的所有东西(目录b、c及其内部的东西都会被删除)

rm -rf v*-------------删除当前目录下以v开头的所有文档

rm -rf **-------------删除当前目录下的所有文档

切记:

rm -rf /*------------删除根目录下的所有东西(该删除键容易导致系统崩溃)

在 *** 作命令之前,给系统拍摄快照,如果我们 *** 作系统失误的时候,可以通过快照恢复

(8)touch命令

touch test.txt-------创建名称为test的空白文件

注意:只能创建空白文件,如果文件名已存在,则不创建

(9)cp命令

cp -r /x1 /y--------将根目录下的x1目录复制到y目录下,在y目录下的名称为x

cp -r /x1 /y/x2-----将根目录下的x1目录复制到y目录下,且修改名为x2

(10)mv命令

mv /xx /yy-----------将根目录下的xx目录,剪切到yy目录下,在yy目录下的名称为xx

mv xx yy/zz----------将当前目录下的xx目录,剪切到yy目录下,并修改名称为zz

(11)vim命令

vim /a/b----------查看a目录下的b为文件

vim 文件名---------创建新文件,保存就创建,不保存,就不创建

注意:

vim因为意外终止,会产生交换文件(隐藏的),和源文件在同一级,此时打开源文件会报错;

通过ls - a找出隐藏文件,通过rm -rf 交换文件名,将交换文件删除掉

再重新打开源文件即可编辑

打开文本之后,如何进入编辑模式:

i:在当前光标,进入插入模式

o:下一行进入插入模式

如何进行行首行尾,开头末尾切换

行首:home或者0

行尾:end或者$

开头:gg

结尾:G

文本编辑过程中:

q------------退出

w------------保存

wq-----------保存并退出

q!-----------强制退出 不保存

w!-----------强制保存

wq!----------强制保存并退出

举例:

pwd-----查看当前路径

ls------查看当前目录下的子目录

man-----打开当前命令的帮组手册(帮组命令查询当前命令的使用方式),点击键盘Q退出手册

分类: Linux

通过 ip link add 可以创建多种类型的虚拟网络设备,在 man ip link 中可以得知有以下类型的device:

Virtual Ethernet Port Aggregator。它是HP在虚拟化支持领域对抗Cisco的VN-Tag的技术。

解决了虚拟机之间网络通信的问题,特别是位于同一个宿主机内的虚拟机之间的网络通信问题。

VN-Tag在标准的协议头中增加了一个全新的字段,VEPA则是通过修改网卡驱动和交换机,通过发夹弯技术回注报文。

TUN是Linux系统里的虚拟网络设备,它的原理和使用在 Kernel Doc 和 Wiki 做了比较清楚的说明。

TUN设备模拟网络层设备(network layer),处理三层报文,IP报文等,用于将报文注入到网络协议栈。

应用程序(app)可以从物理网卡上读写报文,经过处理后通过TUN回送,或者从TUN读取报文处理后经物理网卡送出。

创建:

创建之后,使用 ip addr 就会看见一个名为”tun-default”的虚拟网卡

可以对tun-default设置IP:

使用open/write等文件 *** 作函数从fd中进行读取 *** 作,就是在收取报文,向fd中写入数据,就是在发送报文。

TAP是Linux系统里的虚拟网络设备,它的原理和使用在 Kernel Doc 和 Wiki 做了比较清楚的说明。

不同于TUN的是,TAP设备模拟链路层设备(link layer),处理二层报文,以太网帧等。

TAP设备的创建过程和TUN类似,在ioctl设置的时候,将类型设置为IFF_TAP即可。

TAP设备与TUN设备的区别在于:

有时我们可能需要一块物理网卡绑定多个 IP 以及多个 MAC 地址,虽然绑定多个 IP 很容易,但是这些 IP 会共享物理网卡的 MAC 地址,可能无法满足我们的设计需求,所以有了 MACVLAN 设备,其工作方式如下:

MACVLAN 会根据收到包的目的 MAC 地址判断这个包需要交给哪个虚拟网卡。单独使用 MACVLAN 好像毫无意义,但是配合之前介绍的 network namespace 使用,我们可以构建这样的网络:

采摘

创建一个基于eth0的名为macv1的macvlan网卡:

macvlan支持三种模式,bridge、vepa、private,在创建的时候设置“mode XXX”:

bridge模式,macvlan网卡和物理网卡直接可以互通,类似于接入到同一个bridge。

vepa模式下,两个macvlan网卡直接不能直接通信,必须通过外部的支持“发夹弯”交换机才能通信。

private模式下,macvlan发出的广播包(arp等)被丢弃,即使接入了支持“发夹弯”的交换机也不能发现其它macvlan网卡,除非手动设置mac。

MACVTAP 是对 MACVLAN的改进,把 MACVLAN 与 TAP 设备的特点综合一下,使用 MACVLAN 的方式收发数据包,但是收到的包不交给 network stack 处理,而是生成一个 /dev/tapX 文件,交给这个文件:

由于 MACVLAN 是工作在 MAC 层的,所以 MACVTAP 也只能工作在 MAC 层,不会有 MACVTUN 这样的设备。

ipvlan和macvlan的区别在于它在ip层进行流量分离而不是基于mac地址,同属于一块宿主以太网卡的所有ipvlan虚拟网卡的mac地址都是一样的。

[图片上传失败...(image-d98b6f-1597455459947)]

veth设备是成对创建的:

创建之后,执行 ip link 就可以看到新创建的veth设备:

注意veth设备前面的ID, 58: 和 59: ,一对veth设备的ID是相差1的,并且系统内全局唯一。可以通过ID找到一个veth设备的对端。

veth设备理解

Intermediate Functional Block device,连接 ifb 中做了很详细的介绍。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/6227950.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存