利用TUN创建虚拟网络
下面创建一个简单的TAP网卡,本地通信检查TAP网卡的功能。
1 检查TUN模块。
首先检查内核是否支持TUN/TAP,可以通过以下命令检查。
# modinfo tun filename: /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/net/tun.ko alias: char-major-10-200 license: GPL author: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> srcversion: B59BCB1255A36FBC7557FC3 depends: vermagic: 3.10.0-327.el7.x86_64 SMP mod_unload modversions |
2 加载TUN模块。
# modprobe tun # lsmod | grep tun tun 27141 0 |
3 安装管理工具。
安装TUN/TAP的管理工具tunctl。
将tunctl-1.5-26.14.x86_64.rpm 软件包上传至/root/
利用本地安装命令
# yum -y localinstall tunctl-1.5-26.14.x86_64.rpm |
4 创建虚拟网卡。
创建名称为tap0的虚拟网卡。
# tunctl -b -u root -t tap0 tap0 |
5 创建临时IP。
为虚拟网卡配置临时IP。
# yum install net-tools -y #ifconfig tap0 10.0.1.2/24 (如果ifconfig命令执行不了,则要用系镜像文件安装) |
创建完成后通过ifconfig tap0命令查看系统内所有网络信息。
# ifconfig tap0 tap0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 10.0.1.2 netmask 255.255.255.0 broadcast 10.0.1.255 ether 16:7d:2b:4e:c7:e1 txqueuelen 500 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
6 检测连通性。
# ping 10.0.1.2 -c 4 PING 10.0.1.2 (10.0.1.2) from 10.0.1.2 tap0: 56(84) bytes of data. 64 bytes from 10.0.1.2: icmp_seq=1 ttl=64 time=0.058 ms 64 bytes from 10.0.1.2: icmp_seq=2 ttl=64 time=0.045 ms 64 bytes from 10.0.1.2: icmp_seq=3 ttl=64 time=0.048 ms 64 bytes from 10.0.1.2: icmp_seq=4 ttl=64 time=0.038 ms
--- 10.0.1.2 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3000ms rtt min/avg/max/mdev = 0.038/0.047/0.058/0.008 ms |
7 删除虚拟网卡。
# tunctl -d tap0 |