Welcome 微信登录

首页 / 操作系统 / Linux

Linux桥设备以及iptables的效率的一些问题

Linux桥设备以及iptables的效率的一些问题

一.组播和网桥1.一般的IP服务都是和底层的网卡设备没有关系的,完全由路由来决定,但是组播除外,因为组播需要将一个网卡显式的加入到一个组播组当中,一边该接口可以接收组播包,因此IP层和链路层就联系了起来。2.使能桥接的系统上,由broute来判断数据包将此设备当成一个桥设备还是一个路由器设备,如果当成路由器设备,那么桥的概念对于此数据包将彻底消失,如果当成桥设备,那么即使本地接收的情况下,IP层看到的接收也是一个桥设备而不是实际接收数据包的物理网卡设备。3...
再次深入到ip_conntrack的conntrack full问题

再次深入到ip_conntrack的conntrack full问题

增加nf_conntrack_max固然可以缓解这个问题,或者说减小conntrack表项占据内核内存的时间也可以缓解之,然而这种补救措施都是治标不治本的.注解:不要过度减小NEW以及TCP的establish的CT状态的timeout的原因尽量不要减小NEW状态时间,因为对于某些恶劣的网络,一个数据包的来回确实需要很长时间,对于TCP而言,此时RTT还没有测量呢。如果NEW状态的conntrack保留时间过短,就会导致大量NEW状态的连接,而对于很多依赖...
Linux Stateless无状态NAT-使用TC来配置

Linux Stateless无状态NAT-使用TC来配置

如果想在Linux上配置NAT,那么大家众所一言的就是使用iptables的NAT表来配置,iptables提供了灵活丰富的配置来配置SNAT和DNAT,然而我们知道iptables的NAT依赖了ip_conntrack,也就是说,凡是一个命中了NAT表规则的流就会有一条连接追踪生成,由于ip_conntrack追踪了所有的数据包,因此当有大量连接经过了本地设备时,ip_conntrack空间将被撑满,这个在接入区特别容易重现,在骨干网反而不容易重现,然而...
Linux之ip_conntrack容易混淆的问题点滴

Linux之ip_conntrack容易混淆的问题点滴

《再次深入到ip_conntrack的conntrack full问题》最后的一个问题提示ip_conntrack有一个event机制,可以主动通报ip_conntrack的一些事件,包括追踪信息到期删除等事件,通知给谁呢?当然是通知给所有感兴趣的模块了,其中之一就是用户态进程,这样用户态进程得知可以采取一些措施,比如防火墙上设置一些放过规则等,这个通知机制使用了观察者设计模式。Linux ip_conntrack的一些细节问题由于Linux的ip_con...
iptables和策略路由实现VPN感兴趣流的截获

iptables和策略路由实现VPN感兴趣流的截获

感兴趣流是VPN的术语,说的是需要进行保护的流量,也就是说需要进入VPN隧道的流量,然则仔细推敲之后,发现基于IP层加密的VPN这么使用“流”的概念是有问题的,因为对于IP,根本不存在流的概念,实质在于IP协议根本就没有方向。即使这样,本文还是介绍了一种全网互通的感兴趣流的截获技术。下面是一个拓扑图:可以看出,这个拓扑图中有四个网段,其中VPN端点的每一侧都有两个,两个网段中的其中一个的资源是需要加密访问的。虽然图比较简单,但是它却很有代表性,几乎囊括了所...
Linux的ip_conntrack半景

Linux的ip_conntrack半景

ip_conntrack内置于Linux协议栈的Netfilter框架,其实现比较复杂,然而其逻辑却很简单。ip_conntrack追踪每一个流,一个流由五元组来定义,五元组这个网络基本术语就不解释了。因此ip_conntrack必然能对“哪里是一个流的开始”做出判断,虽然这种判断不总是精确的,详见《linux之ip_conntrack容易混淆的问题点滴》http://www.linuxidc.com/Linux/2012-03/55823.htm。ip_...
一个Linux虚拟机里面的Bridge设备引发的悲剧

一个Linux虚拟机里面的Bridge设备引发的悲剧

事情是这样的,公司内部技术部门一般属于一个局域网段,我们当然也不例外。如果部门内部人员太多但是又不方便用VLAN隔离的话,一般使用switch或者hub来进行隔离,这种设备是不隔离广播域的,hub甚至都不隔离冲突域,既然这样,事故很容易就发生了。 我和部门其它3个人共同接在一个hub上,D-Link的设备,可能是低端的switch,不管它了!不知道怎么回事,我们这里的这个hub总是莫名奇妙的出现问题,一下子我们4人都无法正常联网。起初是以为设备坏了,后来网...
Fedora 16的Gnome3相关配置笔记

Fedora 16的Gnome3相关配置笔记

我新入了一个本子,所以按照我的习惯,我很乐意在它上面安装配置Linux。另外在安装配置Linux的过程中,我遇到了一个非常操蛋的Linux核心崩溃问题,这个恶心的问题折腾了我整整4天的时间,我尝试了Ubuntu 12.04,Xubuntu 12.04,Debian Sid,Archlinux,最后都发现了恶心的崩溃问题,最后我装了Fedora 16,发现居然有一上午崩溃问题没有出现,这令我对Fedora非常有好感,于是乎我便尝试着配置了一下Fedora,发...
Ubuntu下如何将普通用户提升到root权限

Ubuntu下如何将普通用户提升到root权限

最近在Ubuntu下开发一个项目的时候,需要用到一个包(libpcap),利用这个包可以进行网络流的底层解析,可是要使用这个包进行网络嗅探的时候,需要使用root权限,经常使用sudo来运行很麻烦,最后为了方便项目的调试,于是就将自己的当前用户提升到root权限。提升的方法如下:在shell里面输入 sudo gedit /etc/passwd 将里面的当前用户的ID值进行修改。譬如我的当前用户是linuxidc则找到了 linuxidc:x:1001:1...
Linux hrtimer分析--配置高精度模式

Linux hrtimer分析--配置高精度模式

本文介绍Linux2.6.29中,配置高精度模式的hrtimer与未配置高精度模式时行为的区别。本文暂不考虑高精度模式对Linux系统时钟中断的影响。在没有配置高精度模式时,hrtimer的超时在系统时钟中断的轮循中检查,所以此时hrtimer的定时精度(jiffy)还是以轮循的间隔为单位,精度与传统的时间轮定时器一样。在配置高精度模式后,hrtimer的超时由struct clock_event_device的超时中断完成。clock_event_dev...
Linux hrtimer分析--未配置高精度模式

Linux hrtimer分析--未配置高精度模式

本文分析了Linux2.6.29中hrtimer的实现。Linux2.6中实现了一种新的定时器hrtimer。与传统定时器使用时间轮算法不同,hrtimer使用了红黑树算法。hrtimer本身可以配置成高精度和普通精度两种,在单CPU系统和多CPU系统中的实现也有区别。这里先分析最简单的配置成普通精度、单CPU的情况。配置成高精度的情况见后续文章。1. 时钟源的定义为了实现hrtimer,Linux为系统中每一个CPU定义了一个hrtimer_cpu_ba...
ARM Linux系统的时钟机制

ARM Linux系统的时钟机制

1. Linux下有两类时钟:1.1 实时钟RTC它由板上电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。1.2 系统时钟“System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时钟是要读取RTC时间来进行时间同步.2. 标准计时器2.1 时钟...
<< 541 542 543 544 545 546 547 548 549 550 >>