论坛风格切换切换到宽版
  • 756阅读
  • 9回复

[问题求助]linux双网卡的疑惑 [复制链接]

上一主题 下一主题
离线laa110.
 
发帖
2019
C币
-152388
威望
394
贡献值
1
银元
-2
铜钱
4669
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
搞了一个4电口的X86设备,遇到几个问题,请.指教.
os :fc4
没有起用路由和NAT 数据包转发等功.能电脑


在系统里起用了2个口,
eth.0,eth1  均已up域名

[root@loca.lhost ~]# ifco.nfig            杀毒
eth0 Link encap:E.thernet HWaddr 00:91:27:76:00:A8. .
inet addr:.1.92.168.1.23 Bcast:192.168.1.255 Mask:255.255.255.0[成人用品]
inet.6 .addr: fe80::291:27ff:fe76:a8/64 Scope:Link服务器
UP BROADCAST RUNNING. .MULTICAST MTU:1500 Metric:1          婚庆
RX packets:.54 err.ors:0 dropped:0 overruns:0 frame:0           女人
TX packets:89 errors:0 dropped:0 overruns:0. carr.ier:0.
collisi.ons:0 txqueuelen:100.0 学习
RX bytes:8635 (8.4 K.iB) .TX bytes:7707 (7.5 KiB).
Interrupt:9

eth1 Link e.ncap:Ethe.rnet HWaddr 00:91:27:76:00:A9 [成人用品]
inet addr:192.168.2.24 Bcast:192.168.2.255 Mask:255.25.5..255.0    外汇
inet6 addr: fe80::291:27.ff:f.e76:a9/64 Scope:Link(广告)
UP BROAD.CAST MULTICA.ST MTU:1500 Metric:1.
RX p.acket.s:0 errors:0 dropped:0 overruns:0 frame:0(        游戏          )
TX p.ackets:0 errors:0 d.ropped:0 overruns:0 carrier:0            杀毒
coll.ision.s:0 txqueuelen:1000 (        游戏          )
RX byte.s:0 (0..0  TX bytes:0 (0.0     健康
Interrupt:10

网.线插在eth0上,直接和本子对连              乙肝

[root@localhost ~]# .dmesg    外汇
eth0: freeing mc. frame.域名
eth0: freeing mc fr.ame..
[root@localho.st ~]# route电脑
Kernel IP routin.g table教育
Destination Gat.eway Genmask Flag.s Metric Ref Use Iface    健康
1.92.168.2.0 * 255..255.255.0 U 0 0 0 eth1.
192.168.1.0 * 255.25.5.255.0 U 0. 0 0 eth0<性病>
169.2.54..0.0 * 255.255.0.0 U 0 0 0 eth1             汽车
default 192..168.1.1 0.0.0.0 UG 0 .0 0 eth0            杀毒


本子上单网卡配置了2个ip
192.168.1.22
192.168.2.2

现在开始pin.g 19.2.168.2.24不通,抓包发现--- 印刷
竟然能获得MAC地址,如图

1 从路由表中能看出 1.92.168.2..0只能通过eth1学习
当对2.24的A.RP请求发过去后,(广告)
eth0不.但回复,而且伪造了2..24这个IP和自己的MAC地址,.
icmp .request过来后,到.了IP层又被丢弃,导致不通.

我认为这个ARP请.求应该是丢掉,而不是回复,.
并且 我这边ICMP发过去了 又被它丢掉 起不是很没效率 为什么第.一次不丢.掉 丢掉就没这样的事了--- 印刷

难道是eth0 收到A.RP查询的时候,eth0先伪造.一个回复,等ICMP报文过来,核对下IP,再查.看有没有开启路由转发功能,发现没有 于是丢弃,实在是搞不懂


2  eth0: freei.ng mc frame学习
eth2.eth3两个千M电口和本子的电口对连..(显示正常 速率 双工 OK)电脑
eth.0 ,eth1这两个百M电.口和本子相连就出现这个问题.
是最.高速率不匹配,还是双工出了问题.

不过可以正常使用
http://upload.bbs.csuboy.com/Mon_1004/126_7092_9b620f33a380b5e.gif[/img]  http://upload.bbs.csuboy.com/Mon_1004/126_7092_3d234bfacebeb63.jpg[/img]下载 (115.17 KB).

2.007-12-21 20:01.

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线resoo.
发帖
2070
C币
-60419
威望
390
贡献值
1
银元
0
铜钱
4606
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
打开了ARP代理。

离线woofwoof.
发帖
2259
C币
-235050
威望
413
贡献值
1
银元
-2
铜钱
5026
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
默认就打开了??
哪里可以看到 并且可以调整,请指教

[ 本帖最后由 带脚镣跳舞 于 2007-12-21 21:25 编辑 ]

离线wtwone.
发帖
1879
C币
-61192
威望
343
贡献值
1
银元
-4
铜钱
4274
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
在/proc/sys下面用find搜一下arp就可以了

离线zxlovest.
发帖
2235
C币
-60023
威望
421
贡献值
1
银元
-1
铜钱
5033
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
实在很遗憾,小弟笨拙,还是没能找到
搜索了一下
proc/sys/net/ipv4/conf/eth0/proxy_arp 0
proc/sys/net/ipv4/conf/eth1/proxy_arp 0


这两个全是0 按照网上的资料 我这个机器应该是没有打开ARP代理

郁闷

发帖
2055
C币
-235906
威望
360
贡献值
1
银元
-1
铜钱
4622
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-13
哦,这样啊。

你另找台双网卡的机器试试。好像LINUX就是这个样子的。

再查看有没有开启路由转发功能
//好像此种情况如果客户端没配置2段的那个IP的话,如果网关设置为LINUX设备,即使没开转发也好像能PING通。

我正好有机器,给你试试再说吧。

发帖
1973
C币
-198791
威望
339
贡献值
1
银元
-1
铜钱
4278
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-13
试验过了。
LINUX无论是否开启ARP代理,对会对本机的IP做出ARP回应,尽管查询不是来自本网段,这种特性应该是正确的。

不通的原因:
当数据包到达LINUX后,LINUX实质上是有返回数据包的,但是由于此时路由表中192.168.2.0网段的出口为ETH2,因此回复的ICMP数据包从ETH2口发出,因此会不通,如果要通的话可以在LINUX机器上加入到192.168.2.2.机器的主机路由,出口为ETH0,下一跳为192.168.1.22

离线yszkm.
发帖
2099
C币
-152659
威望
380
贡献值
1
银元
-3
铜钱
4664
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-13
我做个测试,你来看看结果
laptop (A)------------------(B)  PC  (C)
笔记本A口接PC的B口 PC还有一个网卡C口 下面以A B C来代替


OS :WINDOWS2003
  C口上没插线,也就是链路是不通的 没有一个能成功的,现在不讨论这个不插线的情况下

现在讨论插线的情况下
ABC 为同一网段
A PING B  OK
A PING C  NG
无法获得C的MAC地址

AB 为同一个网段 C是另外一个网段  把A口上的网关配置为B
A PING B OK
A PING C OK

A C 同一网段,B是另外一个网段

A PING B NG
A PING C NG
无法获得C的MAC地址


二 PCOS FC4 C口上没插线 (请注意是没插网线) /sbin/ifconfig ethC up
ABC  同一网段
A PING B OK
A PING C OK

AB同一网段,C不是 把A的网关配置成B
A PING B OK
A PING C OK

A C  同一网段 B 另外一个段
A PING B NG
A PING C NG
但是A在PING C的时候获得了 B的MAC地址
A把ARP查询包发到B口上
B口代替C回应了ARP应答
但是使用的是C上的IP B上的MAC

大家来看 OS不同 在双网卡处理的情况下是不同的(不知道协议栈是怎么写的)

其实我发此帖的目的就是想知道关于这方面的RFC标准是什么,到底哪个符合RFC的标准,
小弟眼拙,一直没找到,
如果哪个兄弟知道的 请贴出来,或者给个URL 感激不尽

离线绯闻.
发帖
2135
C币
-604579
威望
374
贡献值
1
银元
-2
铜钱
4727
人人网人气币
0
只看该作者 8楼 发表于: 2010-04-13
arp_ignore : INTEGER
默认为0
定义对目标地址为本地IP的ARP询问不同的应答模式



0 - (默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对10.1.1.1 的arp查询也会回应--而原本这个请求该是出现在eth1上,也该有eth1回应的)



1 - 只回答目标IP地址是来访网络接口本地地址的ARP查询请求(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,那么即使eth0收到来自10.1.1.2这样地址发起的对192.168.0.1的查询会回答,而对10.1.1.1 的arp查询不会回应)
2 -只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内(比如eth0=192.168.0.1/24,eth1=10.1.1.1/24,eth1收到来自10.1.1.2这样地址发起的对192.168.0.1的查询不会回答,而对192.168.0.2发起的对192.168.0.1的arp查询会回应)
3 - 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied 翻译地似乎不好,这个我的去问问人)
4-7 - 保留未使用


arp_announce : INTEGER
默认为0
对网络接口上本地IP地址发出的ARP回应作出相应级别的限制:



确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口
0 - (默认) 在任意网络接口上的任何本地地址
1 -尽量避免不在该网络接口子网段的本地地址. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果改来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理.
2 - 对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送



我想应该就是这个玩意控制,m$的没有 所以 嘿嘿

离线soomi.
发帖
2064
C币
-235379
威望
372
贡献值
1
银元
-2
铜钱
4643
人人网人气币
0
只看该作者 9楼 发表于: 2010-04-13
呵呵.应该就是.
CISCO的设备我也实验了,结果和LINUX不一样.
应该就是你说的参数在控制.
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个