背景
在《Linux中虚拟网络技术有哪些》一文中,我们介绍了多种创建虚拟网卡的方法。本文介绍使用Alias技术创建虚拟网卡。
分析
Alias技术
在计算机领域中,Alias技术指的是给一个实体(如文件、命令、网络接口等)起一个别名或替代名称的方法。这种技术常见于各种系统和应用程序中,以提供更方便的访问或使用方式。
- 文件系统中的Alias技术:
在文件系统中,Alias通常指的是一个文件或文件夹的替代名称。在MacOS系统中,Alias是一个指向原始文件或文件夹的快捷方式,允许用户通过别名轻松访问文件或文件夹,而无需直接找到原始文件。
- 命令行中的Alias技术:
在命令行环境中,Alias是一种将一个命令或一组命令与一个自定义名称相关联的技术。这使得用户可以通过简短的别名来执行常用的命令,从而提高工作效率并减少输入错误。例如,在Unix/Linux系统中,用户可以使用alias命令来创建命令别名,如将"ls -l"命令与别名"ll"相关联。
- 网络接口中的Alias技术:
在网络接口中,Alias技术允许一个物理网络接口拥有多个逻辑网络标识。这在需要一个物理网卡与多个IP地址或网络配置相关联的情况下非常有用。例如,通过创建虚拟网卡alias,一个物理网络接口可以同时使用多个IP地址,从而提供更灵活的网络配置选项。
- 数据库中的Alias技术:
在数据库中,Alias是指一个表、列或查询的替代名称。这种技术常用于简化复杂的查询语句或在查询中使用表的别名来消除歧义。
总的来说,Alias技术在计算机领域中被广泛应用,可以提高系统的易用性、灵活性和可维护性。通过为实体创建别名,用户可以更方便地访问和操作各种资源。
使用Alias来创建虚拟网卡
所谓Alias就是别名的意思。使用Alias创建的虚拟网卡,就类似于给物理网卡做一个快捷方式。不同的是,这个虚拟网卡可以指定新IP,和物理网卡的IP不一样。因为虚拟网卡是基于物理网卡的快捷方式,共享相同的MAC地址。从这个角度来看,这个算不上实际意义上的网卡,或者说,只能算是一个在L2层实现的虚拟网卡。因为一个网卡有一个全球唯一的MAC地址,这个是网卡的身份证。虽然虚拟网卡有新IP,相当于有一个新名字,但是身份证还是和物理网卡一样的。
创建虚拟网卡的命令有:ifconfig和ip addr
使用ifconfig创建虚拟网卡并启用网卡:
sudo ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
使用ifconfig查看结果:
可以看到,新建了一个虚拟网卡eth0:0,IP为192.168.1.100。而MAC地址和上面的eth0的MAC地址是一样的。虚拟网卡的名称使用的是物理网卡:序号。这个表示虚拟网卡是基于这个物理网卡。如果物理网卡不存在,则创建会失败。
使用ip addr创建虚拟网卡:
ip addr add 192.168.1.100/24 dev eth0 label eth0:0
这个命令执行的效果和上面的ifconfig一样。
如果要删除虚拟网卡,使用下面的命令就行:
sudo ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 down
或
ip addr del 192.168.1.100/24 dev eth0 label eth0:0
不过以上操作都是临时操作,如果重启了网络,上面创建的虚拟网卡就没有了。
如果要永久保存,重启网络或重启系统都可以保存下来,则需要写配置文件了。
永久创建虚拟网卡
1.复制配置文件
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0
2.修改ifcfg-eth0:0为如下内容
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
DEVICE:虚拟网卡名称。
TYPE:网卡类型,Ethernet 为以太网,就是常用的网卡。
ONBOOT:开机启动此网卡。
NM_CONTROLLED :是否支持NetworkManager来管理网卡。
BOOTPROTO:IP地址分配方法,static即静态固定,不要动态分配
IPADDR:IP地址
NETMASK:子网掩码
3.重启网络
service network restart
4.测试IP是否可以通信
ping 192.168.1.100
结果:
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=0.010 ms
这样就配置成功了。
总结
使用alias技术创建虚拟网卡,是Linux实现虚拟网卡最简单的方式。如果对于MAC没有要求,则可以使用alias技术来创建虚拟网卡。如果需要独立的MAC地址的虚拟网卡,只能使用其他技术来实现了。