Linux虚拟网卡

| 2011年2月19日

昨天研究了下利用虚拟网卡实现两个机器利用一个物理网卡连接外网的内核源码和设置,其实利用虚拟网卡上网的例子在上学 的时候就做过类似的实验,一般可以在一个机器A的一个网卡上配置一个外网ip一个内网ip,另一个内部机器B只配置内网ip,让后B的网关设置为A的内网ip,在A机器上启用netfilter的NAT功能,再启用A机器的路由转发功能,就可以实现B由A上外网的功能了!就如下面这个图。

INTERNET<——>eth0<——>host1<——>eth0:0<——>eth0<——>host2

昨晚又看了看netfilter的代码,恩,太乱了,还需要读读,以前分析有点太浅了。

今天有顺便虚拟网卡的例子,根据以前一个网卡程序,修改了下,32的内核中,网卡的操作方法也一struct ops的形式出现了,共同归net_device来管理,踢出了原来的init方法,在修改了这些后,实现了简单的一个虚拟网卡,在上面的实验中测试了下,也没有问题,虚拟机可以根据既有的配置找到这个虚拟网卡,并且可以通信!哈哈,内核还是好玩。回头想想怎么把这个实际应用下!

看完本文有收获?请分享给更多人

关注「黑光技术」,关注大数据+微服务