Articles of networking

从struct sk_buff提取数据

我试图从struct sk_buff提取数据,但没有收到我期待的输出。 有问题的帧是34字节; 包含8字节(实验协议)头的14字节以太网报头: struct monitoring_hdr { u8 version; u8 type; u8 reserved; u8 haddr_len; u32 clock; } __packed; 在这个头之后,有两个可变长度的硬件地址(它们的长度由上面的haddr_len字段决定)。 在这个例子中,它们都是6个字节长。 以下代码正确地提取标题(结构),但不是以下两个MAC地址。 发件人方面: … skb = alloc_skb(mtu, GFP_ATOMIC); if (unlikely(!skb)) return; skb_reserve(skb, ll_hlen); skb_reset_network_header(skb); nwp = (struct monitoring_hdr *)skb_put(skb, hdr_len); /* … Set up fields in struct monitoring_hdr … */ memcpy(skb_put(skb, dev->addr_len), src, dev->addr_len); memcpy(skb_put(skb, […]

使用tc模拟特定端口上的networking延迟

我试图在ubuntu上使用tc命令模拟来自源端口7000的tcp数据包的固定时间延迟。 我使用的命令是: sudo tc qdisc add dev eth1 root handle 1: prio sudo tc qdisc add dev eth1 parent 1:1 handle 2: netem delay 3000ms sudo tc filter add dev eth1 parent 1:0 protocol ip u32 match ip sport 7000 0xffff flowid 2:1 这个filter似乎没有任何延迟,有人可以指出我要去哪里错了吗? 另外,有什么办法可以ping一个端口或做一些等效的testing延迟? 谢谢!

linux支持802.1ag和Y1731

我需要做的是在运行linux的OpenWRT路由器上使用CFM OAM(802.1ag)开源客户端 Linuxnetworking堆栈中是否有任何实现? 802.1ag? Y1731? 如果是的话请提及linux版本。

使用Linux上的命令行PHP检查互联网连接

我在Linux上使用命令行PHP来打开蓝牙拨号连接,我需要一个快速的方法来检查互联网连接是否处于活动状态。 那么,不必肮脏,但快速表示赞赏。 :)使用exec来运行外部命令不是一个问题。 我想ping一些稳定的服务器(如谷歌),但我想知道是否有更好的方法。 也许检查输出的ifconfig ? 一个明确的响应(“无法连接到服务器”,“连接”)的命令自然是最好的。 想法?

socket.gaierror:名称或服务未知

伙计们,我是一个新手到套接字编程下面的程序是一个客户端程序,从服务器请求一个文件,但我得到的错误,如下所示..我的input是GET的index.html和代码是谁能解决这个错误…? #!/usr/bin/env python import httplib import sys http_server = sys.argv[0] conn = httplib.HTTPConnection(http_server) while 1: cmd = raw_input('input command (ex. GET index.html): ') cmd = cmd.split() if cmd[0] == 'exit': break conn.request(cmd[0],cmd[1]) rsp = conn.getresponse() print(rsp.status, rsp.reason) data_received = rsp.read() print(data_received) conn.close() input command (ex. GET index.html): GET index.html Traceback (most recent call last): File […]

在scapy中过滤sniff函数的选项

我正在开发一个基于scapy的工具,在这里我需要根据协议和目标的ip地址来嗅探数据包 我想知道如何使用sniff()函数中的filter选项。 我尝试在文档中使用格式,但大多数情况下它会导致这样的问题。 scapy中的sniff函数的filter不能正常工作 。 我使用的是 a=sniff(filter="host 172.16.18.69 and tcp port 80",prn = comp_pkt,count = 1) 提前致谢!

Linux TUN / TAP:无法从TAP设备读取数据

问题是关于如何正确configuration想要使用Tun / Tap模块的Linux主机。 我的目标: 利用现有的路由软件(下面的APP1和APP2),但拦截并修改它发送和接收的所有消息(由调解员完成)。 我的情景: Ubuntu 10.04 Machine +———————————————+ | | |APP1 — tap1 — Mediator — tap2 — APP2 | | | +———————————————+ tap1和tap2:分别使用IFF_TAP标志和IP 10.0.0.1/24和10.0.0.2/24设置的tap设备。 创build设备的代码如下所示: #include <stdlib.h> #include <stdio.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <fcntl.h> #include <linux/if.h> #include <linux/if_tun.h> #include <string.h> #include <errno.h> #include <sys/resource.h> void createTun(char *, char *, short); int […]

检查从简单的Linux CLI应用程序的networkingstream量

我正在命令行上运行一个小应用程序,并试图监视它创build的(http)networkingstream量。 有什么包装程序(如'时间',或'看'),可以显示所有networkingstream量和我的应用程序? (或者至less在文件中复制一份)

如何configurationlinux路由,将数据包从一个接口发送出去,通过一个网桥,并进入同一个盒子的另一个接口

我试图testing一个以太网桥接设备。 我有一个Linux机箱上的多个以太网端口。 我希望将数据包从一个接口(例如IP 192.168.1.1的eth0)发送到另一个接口(例如IP为192.168.1.2的eth1)在同一个子网上。 我意识到通常你不要在同一个子网上configuration两个接口,如果你直接把内核路由到每个接口,而不是通过networking。 我怎样才能覆盖这种行为,使stream量到192.168.1.2出去的192.168.1.1接口,反之亦然? 提前致谢!

如何获取NIC卡的逻辑名称,给出与其相关的IP地址?

我正在研究一个shell脚本,它需要知道与给定ip关联的逻辑名(eth0,eth1等)。 我正在使用的当前过程是使用filterparsingifconfig的输出并获取与给定IP关联的NIC卡。 我想知道是否存在一个简单的方法或直接stream水线Linux命令来获得上述细节?