OS:ubuntu 12.04
一、Linux下基本环境搭建:
Linux下的基本环境是指内核静态编译进来8021q模块或者运行后动态加载8021q模块,以及vlan的配置工具。通常linux已经自己帮我们动态编译好了8021q模块,我们只需要加载就可以了。
1、 加载8021q模块
运行:modprobe 8021q 命令加载内核模块
运行:lsmod |grep ‘8021q’ 查看模块加载成功与否
2、安装vlan工具
运行:apt-getinstall vlan
3、安装vlan的时候提示找不到vlan包(这是由于系统的软件源表里面找不到指定的包)
运行:sudo apt-get update,更新一下系统的软件源就可以了。
4、提示brctl 找不到
运行: sudo apt-get install bridge-utils
二、linux系统提供的查询网络状态常用命令
熟练使用linux的网络命令可以迅速帮助我们分析问题的关键所在。
1、 查询路由表
运行:route
其中destination表示网络包的目的网络地址,gateway表示网关,iface表示这个包将走哪一个网卡出去。
2、 系统路由相关操作
添加指定网络的路由:
route add –net 192.168.9.0 netmask 255.255.255.0 dev eth0
删除指定网络的路由:
route del –net 192.168.9.0 netmask 255.255.255.0 dev eth0
添加主机的默认网关:
route add –host 192.168.9.25 default gw 192.168.9.1
3、开启系统路由转发功能
Sysctlnet.ipv4.ip_forward
//0,已经开启
//1,还未开启
4、 查询arp表
运行:arp命令
其中的iface表示这个arp是从这个端口学习到的。
三、vlan配置
Vlan配置的拓扑图:
图3.1 vlan配置拓扑图
因为实验用的机子是单网卡,所以Eth1、Eth2、Eth3、Eth4、Eth5就没有加在里面但是原理其实是一样的。
过程:
1、 添加vlan,给指定的网卡添加vlan,一张网卡Eth0可以添加多个vlan,vlan10、vlan20。
运行:vconfig eth0 10
vconfig eth0 20
2、 给vlan配上ip,并激活
运行:ifconfig eth0.10 192.168.9.29 netmask 255.255.255.0 up
ifconfig eth0.20192.168.8.29 netmask 255.255.255.0 up
3、 查询vlan配置情况
运行:ifconfig
完成上述三个步骤即完成了linux下vlan的配置。
接下来是测试vlan
设备:二层交换机一台、话机两台,pc一台。
网络拓扑图:
f0配置成trunk口,添加话机1跟话机2的vlan
f1f0配置成trunk口,vlan跟话机1的vlan一样
f1f0配置成trunk口,vlan跟话机2的vlan一样
pc机中装ubuntu系统,里面配置两个vlan,vlan跟话机中的vlan一致。
搭建好环境后可以进行测试。
Linux下使用tcpdump抓包工具总结
Ubuntu默认是安装好了tcpdump工具的,如果没有安装的话使用sudo apt-get install tcpdump即可安装。
(如果遇到tcpdump: no suitable device found的问题,检查一下是不是在用root权限运行tcpdump,tcpdump只能在root权限下工作
1. tcpdump -D 获取网络适配器列表,以下是在Ubuntu上获取到的结果
2. tcpdump -i <需要监控的网络适配器编号>,例如我想监控我的无线网卡wlan0,则使用tcpdump-i 2。
3. 使用无线网卡wlan0监控IP地址为172.16.86.111上443端口的tcp协议:
tcpdump -i 2 host 172.16.86.111 and tcp port 443
4. 如果想要显示数据包的内容,需要使用-X参数,如,我想要显示捕获的https数据包http header的内容:
tcpdump -X -i 2 host 172.16.86.111 and tcp port 443
可以看到该结果只显示了https头的一部分,没有显示全,是因为tcpdump默认将显示的数据长度截断了,可以使用-s后面加数据长度,来设置数据显示长度:
tcpdump -X -s 0 -i 2 host 172.16.86.111 and tcp port 443
5. 捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用-w参数:
tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000