Articles of linux

在select出站帧的MAC地址时,Linux会在什么情况下忽略路由表?

在debugging在KVM下运行的一组虚拟机的networkingconfiguration问题时,我发现了一个情况:虚拟机中的内核已经决定在外出的以太网帧上加上一个与它所在的地址冲突的目标地址select是否与内核IP路由表相关。 因此,在这个例子中,我预计出站帧将被传送到de:ad:be:3b:24:48,这对应于拥有IP地址10.11.11.2的主机,并拥有到10.8.0.0/24的路由。 实际发生的情况是内核决定用00:10:db:ff:70:01的目的地来标记帧,这个目标发送帧的方向是10.11.11.1,不知道如何路由到10.8.0.0 / 24,结果数据包被丢弃。 这个决定违反了本地路由表,明确指出10.8.0.0/24的路由是通过10.11.11.2。 详情请参阅原始问题报告。 [错误的目标地址是通过在正在向不正确的方向发送帧的访客VM中运行tcpdump来显示的。 实际上,通过压缩本地arp表使10.11.11.1的表观MAC地址与10.11.11.2的实际MAC地址相同,我就能够正确地确定帧的stream向。 所以我的问题是:在访客虚拟机或KVM主机中,什么机制都可能导致客机内核忽略本地路由表,并在10.11.11.1将数据包发送到(错误的)主机,即使10.11 .11.1未被列为目标networking的网关(10.8.0.0/24)? 注意:iptables在当时被禁用了。 我不知道在KVM主机上是否启用了ebtables,但是即使是这样,这也会导致guest虚拟机内核在10.11.11.1的方向发送数据包? 我注意到的一个行为是,如果我清除受影响的主机的ARP表并从10.8.0.0/24networking向受影响的主机发送ping请求,它将接收到请求,然后立即发送10.11.11.1的arp广播在10.11.11.1而不是10.11.11.2,因此10.8.0.0/24发送ping响应之前。 是什么导致它尝试10.11.11.1哪一个没有被指定为网关?

除了手动改变它,MTU是如何设置的?

我最近发现了一个无法连接到我们的服务器的Windows 7客户端 。 原来问题是服务器被设置为1514的MTU,客户端设置为1504。 服务器运行CentOS和grep -i MTU /etc/sysconfig/network-scripts/ifcfg*什么都不显示。 非公开接口eth1仍然是1500.在MTU上,我们的服务器端其他机器都没有1500以外的东西。 在客户端,还有另外一台Windows 7机器,也有1504台机器。把这些机器离开现场,导致他们再次工作(但我不知道这是不是MTU不好,或者是否新的位置导致Windowsselect一个有效的一个),但失败一次带回来。 什么会导致这两个Windows机器有这个非标准的MTU设置? Windows如何确定MTU设置? 为什么eth0的MTU设置为1514? Linux如何确定MTU设置? 我是否应该从现在开始将MTU=1500硬编码到我所有的ifcfg文件中,因为担心别的东西会使它更高? 什么会覆盖1500的默认值?

sar命令在Linux中仅生成CPU利用率和networking统计信息

我希望能够每隔30秒或每分钟生成一次系统活动报告,并将其存储在一个文件中,并在我的虚拟机上用于诊断目的。 所以我给sar命令一个输出文件,并使用“-f”选项读取它。 但是我只使用报告的CPU利用率和networking利用率部分,剩下的就是我不想保存的东西(浪费磁盘空间来存储这些报告)。 另外,生成的sar文件都是二进制的。 有没有办法只为CPU和networking使用收集这些统计数据? 那么几乎可以节省2/3的磁盘空间?

Linux DNS绑定域子域configuration

我有一个关于域和子域的绑定configuration的问题。 例如,我有“example.lcl”的主要域名,下面我在站点A有“alpha.example.lcl”的子域,在站点B有“beta.example.lcl”。 站点A的Linux DNS服务器对“example.lcl”和“alpha.example.lcl”是权威的。 我想知道如何configuration区域以及如何configuration正向和反向查找区域文件。

ulimit文件大小为0

我不小心键入了ulimit 0而不是ulimit -c 0 。 我已经试过sudo ulimit unlimited它给我一个文件大小的错误。 有没有办法很容易从这个恢复? 提前致谢。

VPN iptables转发:networking到networking

我试图去看看这个网站的其他地方,但我找不到任何匹配这个问题的东西。 现在我的本地networking和远程networking之间有一条ipsec隧道。 目前,运行Openswan ipsec并打开隧道的本地盒可以ping远程ipsec盒和远程networking中的任何其他计算机。 login到远程计算机时,我可以ping任何本地networking中的盒子。 这是什么工作,这是什么不: 我不能通过不是ipsec框的本地机器ping任何远程计算机。 以下是我们的networking图: [local ipsec box] ———-\ \ [arbitrary local computer] –[local gateway/router] — [internet] — [remote ipsec box] — [arbitrary remote computer] 本地ipsec盒和任意本地计算机没有直接联系,而是通过网关/路由器进行通信。 路由器已经被设置为将来自本地计算机的远程子网的请求转发到ipsec框。 这工作。 问题是ipsec盒不转发任何东西。 每当任意一台本地计算机在远程子网上ping一些东西时,就是这样的回应: [user@localhost ~]# ping 172.16.53.12 PING 172.16.53.12 (172.16.53.12) 56(84) bytes of data. From 10.31.14.16 icmp_seq=1 Destination Host Prohibited From 10.31.14.16 icmp_seq=2 Destination Host […]

使用后缀dynamic地将bounce_notice_recipient转发到外部地址

好的,我已经把这个头撞了几个小时了。 我试图转发所有退回消息到外部反弹处理器,无论域。 在任何时候都有数十个域正在使用,偶尔会有域被添加和删除。 为了试图保持它的dynamic性,我在postfix main.cf中添加了以下几行: notify_classes=bounce bounce_notice_recipient=postmaster 据我所知,这将把所有反弹的副本转发给邮政局长。 我知道,退回的邮件被退回给发件人,但是目标是转发所有域的所有退回的副本,只要他们从本地smtp发送。 当我尝试这个时,我收到以下错误: undeliverable postmaster notification discarded 所以我的问题是这里发生了什么? 这是本地交付的问题吗? 而且我将如何将邮件转发到postmaster到一个外部地址? 而更大的问题是:这是否是将来自服务器的所有退回邮件(无论是否pipe理域列表)都发送到外部地址的最佳策略? 我会感激任何input。

将数据从RAID 1磁盘备份到服务器外

在我看来,我面临着一个非常简单的问题。 我已经从RAID1中提取了一个工作磁盘,我正在寻找只复制数据(FS和RAIDconfiguration无关紧要)到另一个位置(另一个FS)。 我的问题是我无法正确地挂载到另一个linux的这个磁盘。 我首先看了分区表: # fdisk -l /dev/sdc Disk /dev/sdc: 640.1 GB, 640135028736 bytes 255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start […]

Linux NetSec / IDS桥

我期待的是一个充当桥梁的Linux系统。 它简单地将在一个设备上发送的任何数据转发到下一个设备。 它不会尝试阻止传入的攻击或redirect任何stream量。 它所做的是在networking上执行IDSangular色。 任何可疑活动都会被logging并报告。 Snort就是这样一款软件,但是我想知道其他社区有什么解决scheme和想法。

Nagios主机停机时间安排

好吧,我已经花了很多时间在这个上,而且我似乎无法在我的环境中工作。 我有一个NConf 1.3的Nagios 3.3.1服务器。 一切运作良好,我很高兴。 但是,我有一个需要安排主机停机时间,由于各种原因,每天或每周,并希望创build和cron来处理这个。 够简单吧? 我发现了下面的脚本(稍微定制),我一直无法让它成功安排主机的停机时间。 http://pastebin.com/MLdebCfR 我将展示一个命令行来运行这个脚本的例子: ./nagios_host_downtime.sh hostname '20120417 06:30:00' '20120417 08:30:00' 120 nagiosadmin test 在日志文件 – /usr/local/nagios/var/nagios.log – 我看到: [1334609909] EXTERNAL COMMAND: SCHEDULE_HOST_DOWNTIME;hostname;1334665800;1334553600;0;0;nagiosadmin;test; 但是,在Web控制台的“停机时间”部分,我从来没有看到任何条目,并且在停机期间仍会收到警报。 任何人有任何想法? 我可能只是搞砸了一些简单的东西,但我浪费了很多时间,没有快乐,只需要这个工作。