- 博客(9)
- 资源 (5)
- 论坛 (1)
- 收藏
- 关注
原创 网桥接口的混杂模式
网桥接口的混杂模式取决于三个因素,一个是自身的混杂模式设置;第二是vlan过滤是否开启;最后是处于自动状态(auto_port)的子接口的数量。网桥的混杂模式管理函数br_manage_promisc如下:void br_manage_promisc(struct net_bridge *br){ if ((br->dev->flags & IFF_PROMISC) ...
2018-06-29 09:43:59
4640
3
原创 数据包VLAN标签的剥离和添加
使用vconfig或者ip命令创建的802.1q虚拟设备,并不会负责vlan标签的剥离和添加。其操作位于数据包的接收和发送流程中。vconfig add eth0 10或者ip link add link eth0 eth0.10 type vlan id 10vlan标签的剥离是在数据包接收函数__netif_receive_skb_core中处理,skb_vlan_untag函数最终执行unt...
2018-06-22 18:11:34
6167
原创 Linux网桥中的伪造路由
内核中在新建一个网桥时,为其分配一个伪造的路由表项(fake_rtable)。之所以是伪造,因为并不是通过查询FIB路由表而得出,而是手动创建并且不能用于路由数据包,其操作函数集中大部分函数为空,目前仅fake_mtu函数会返回一个相关网络设备device的mtu值,其它函数诸如fake_redirect等都为空。static unsigned int fake_mtu(const struct ...
2018-06-20 22:35:15
594
原创 网桥的vlan filtering过滤功能
网桥的VLAN Filtering功能,顾名思义实现对入口与出口数据包依据VLAN信息的过滤。vlan filtering功能默认是关闭的,可通过如下命令开启:echo 1 > /sys/class/net/brx/bridge/vlan_filtering或者ip link set brx type bridge vlan_filtering 1初始化VLAN过滤Linux网桥在初始化时,...
2018-06-15 13:54:50
4775
1
原创 非交互式批量命令处理ssh客户端
最近有需求,要在程序中通过ssh登录到一台服务器上批量执行bash命令脚本。在网上搜索到libssh2-1.8.0的ssh开发库源代码,于是在此基础上写了一个例程ssh2_batch。源码ssh2_batch.c放在了libssh2库的example目录下,执行configure/make即会编译出可执行文件ssh2_batch。首先来看使用方法:root@localhost:~/work/lib...
2018-06-13 22:48:18
377
原创 linux命令brctl与ip(vconfig)配置交换机功能
默认情况下,所有物理接口都是VLAN 1的子接口brctl addbr vlan_default_1brctl addif vlan_default_1 <all physical interfaces>以下更改接口VLAN的操作,都需要先把接口从vlan 1中删除brctl delif vlan_default_1 <ethx>1)创建VLAN接口 VLAN接口的创建实现...
2018-06-08 18:21:34
3830
原创 THRESH控制网桥netfilter规则执行流程
NF_HOOK_THRESH函数的参数thresh控制从何等优先级的hook函数开始执行,所以低于thresh优先级的函数将不会被遍历执行。hook函数的注册由nf_register_hook函数完成。priority的值越小优先级越高,所有注册的hook函数优先级由高到低排序。int nf_register_hook(struct nf_hook_ops *reg){ list_for...
2018-06-06 10:55:53
586
原创 网桥调用iptables规则的善后处理
本文主要讲述BR_NF_PRE_ROUTING点的相关处理。Linux网桥在BR_NF_PRE_ROUTING hook点的处理上,有两个主要的执行流程:第一执行ebtables在此hook点添加的规则,第二如果PROC文件bridge-nf-call-iptables为真,执行iptables在hook点NF_INET_PRE_ROUTING配置的IPv4或IPv6协议相关规则。由于iptabl...
2018-06-05 12:09:16
1517
原创 freeradius安装配置
开源radius服务端软件freeradius,在Ubuntu 16.10 server版上的安装命令:sudo apt-get install freeradius配置文件目录位于/etc/freeradius/3.0/中。首先修改users认证用户配置文件,查找 steve Cleartext-Password :="testing" (73行), 取消该行的注释。另外为测试方便,可在文件的末...
2018-06-05 09:59:44
2879
redwingz的留言板
发表于 2020-01-02 最后回复 2020-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝