在linux中虚拟网卡的方法

在linux中虚拟网卡,可以在/etc/network/interface里加,但是不能改MAC地址。在网上搜到了下面的文章,需要装一下vlan,挺好用的。

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

       在实验环境中,一直想在一台机器上模拟出多个客户端,这样在搭环境的时候就可以不用使用那么多的机器。但是,仅仅能在一个网卡上模拟出一个IP有时是不行的,需要mac地址也不一样。

  

      对于这个需求,我一直想咋整,一直不知道,在CSDN和Chinaunix上也发贴问,也没见着回的。而我知道,virtualBox和WM等虚拟机是可以实现的,它的虚拟机里发出数据包的mac就是和系统的mac不一样,也就是说,这个是可以实现的,只是我不知道方法而已。

 

      后来,终于google到了一个叫mac-vlan的补丁(http://www.candelatech.com/~greear/vlan.html),mac-vlan代码在内核2.6.29版本及以后已经加入内核。它可以被ip工具集操作。

 

       方法:

      1.加载8021q模块:

               #sudo modprobe 8021q

 

      2. 启用目标网卡,在这块网卡上配置一个vlan。

                #sudo ifconfig eth0 up

 

      3.配置出一个vlan:

               #sudo vconfig add eth0 2

              Added VLAN with VID == 2 to IF -:eth0:-

         系统会生成一个属于vlan2的网卡,可以用ifconfig -a来查看:

             [moldao@moldao python]$ ifconfig eth0.2

eth0.2    Link encap:Ethernet  HWaddr 00:1F:16:2E:28:C7  

          BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0 

          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

          4.之后就可以用ipconfig或者ip 命令来进行配置,配置其ip,mac等:
          $ sudo ifconfig -s eth0.2 10.0.1.1 broadcast 10.0.1.0 netmask 255.255.255.0 up
          5.按照官网上说明,mac-vlan的特性有:
           

 

  • Implements 802.1Q VLAN spec.
  • Can support up to 4094 VLANs per ethernet interface.
  • Scales well in critical paths: O(n), where n is the number of PHYSICAL ethernet interfaces, and that is only on ingress. O(1) in every other critical path, as far as I know.
  • Supports MULTICAST
  • Can change MAC address of VLAN.
  • Multiple naming conventions supported, and adjustable at runtime.
  • Optional header-reordering, to make the VLAN interface look JUST LIKE an Ethernet interface. This fixes some problems with DHCPd and anything else that uses a SOCK_PACKET socket. Default setting is off, which works for every other protocol I know about, and is slightly faster.
虚拟网卡是基于主机的物理网卡虚拟网络接口,用于在一台服务器上设置多个IP地址而不需要添加多块网卡。在Linux,有两种方式可以添加虚拟网卡。 第一种方式是使用ifconfig命令临时配置,重启机器后会失效。可以使用命令"ifconfig eth0:0 192.168.10.10 up"在eth0网卡上创建一个名为eth0:0的虚拟网卡,其IP地址为192.168.10.10。如果想删除虚拟网卡,可以使用命令"ifconfig eth0:0 down"。 第二种方式是修改配置文件,在重启机器后仍然有效。可以在配置文件"/etc/sysconfig/network-scripts/ifcfg-eth0:0"新增以下内容来创建虚拟网卡eth0:0: DEVICE=eth0:0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.6.100 NETMASK=255.255.255.0 GATEWAY=192.168.6.1 HWADDR=00:10:5A:5E:B1:E4 USERCTL=no 其,DEVICE表示虚拟网络接口,ONBOOT表示系统启动时是否激活,BOOTPROTO表示使用静态IP地址,IPADDR表示虚拟网络接口的IP别名,NETMASK表示子网掩码,GATEWAY表示网关,HWADDR表示网卡MAC地址,USERCTL表示是否给予非root用户设备管理权限。 如果想要删除虚拟网卡,可以使用命令"sudo ifconfig eth0:0 down"。 总结起来,在Linux添加虚拟网卡方法有两种:使用ifconfig命令临时配置或修改配置文件。前者在重启后会失效,而后者在重启后仍然有效。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值