欢迎访客 ( 登陆 | 注册 )

论坛索引 | 最新主题 | 热门主题 | 搜索论坛 | 成员列表 | 在线帮助

 
linux双网卡的疑惑 (坛子里的网络大虾们给个RFC吧)
« 上一篇主题 | 下一篇主题 » 跟踪主题 | 邮寄主题 | 打印主题
  带脚镣跳舞 离线
1. linux双网卡的疑惑 (坛子里的网络大虾们给个RFC吧)
HP : 73 / 733
MP : 405 / 11111
EXP : 34%
名动江湖


成员等级: 30
发表总数: 1215
金币总数: 571
所属组别: 核心成员
注册日期: 2003/09/27

搞了一个4电口的X86设备,遇到几个问题,请指教
os :fc4
没有起用路由和NAT 数据包转发等功能


在系统里起用了2个口,
eth0,eth1  均已up

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:91:27:76:00:A8
inet addr:192.168.1.23 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::291:27ff:fe76:a8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:8635 (8.4 KiB) TX bytes:7707 (7.5 KiB)
Interrupt:9

eth1 Link encap:Ethernet HWaddr 00:91:27:76:00:A9
inet addr:192.168.2.24 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::291:27ff:fe76:a9/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 cool.gif TX bytes:0 (0.0 cool.gif
Interrupt:10

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

[root@localhost ~]# dmesg
eth0: freeing mc frame.
eth0: freeing mc frame.

[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
169.254.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

现在开始ping 192.168.2.24不通,抓包发现
竟然能获得MAC地址,如图

1 从路由表中能看出 192.168.2.0只能通过eth1
当对2.24的ARP请求发过去后,
eth0不但回复,而且伪造了2.24这个IP和自己的MAC地址,
icmp request过来后,到了IP层又被丢弃,导致不通
难道是打开了ARP代理???

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

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


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

不过可以正常使用

附带图片




凡是纸马的帖子一定要看
凡是纸马的帖子一定要顶

签名
--------------
两个凡是 把个人崇拜进行到底

发表于2007/12/21, 19:52
      Top
  带脚镣跳舞 离线
2. Re:linux双网卡的疑惑
HP : 73 / 733
MP : 405 / 11111
EXP : 34%
名动江湖


成员等级: 30
发表总数: 1215
金币总数: 571
所属组别: 核心成员
注册日期: 2003/09/27

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回应的网络接口来进行发送


找了半天


凡是纸马的帖子一定要看
凡是纸马的帖子一定要顶

签名
--------------
两个凡是 把个人崇拜进行到底
发表于2007/12/22, 15:34
      Top
  xxbin 离线 荣誉奖品 (1)
3. Re:linux双网卡的疑惑
HP : 1029 / 1715
MP : 4140 / 29674
EXP : 62%
rotartsinimdA


成员等级: 69
发表总数: 12421
金币总数: 433
所属组别: 管理员
注册日期: 2003/01/1

自己也不回个帖子说明一下

怎样,查到资料了吧
这是符合RFC规范的吧?
哈哈




user posted image
xxbin@netbuddy.org
发表于2007/12/24, 13:30
    Top
  带脚镣跳舞 离线
4. Re:linux双网卡的疑惑 (坛子里的网络大虾门给个RFC吧)
HP : 73 / 733
MP : 405 / 11111
EXP : 34%
名动江湖


成员等级: 30
发表总数: 1215
金币总数: 571
所属组别: 核心成员
注册日期: 2003/09/27

我做个测试,你来看看结果
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的规范!!!郁闷``


凡是纸马的帖子一定要看
凡是纸马的帖子一定要顶

签名
--------------
两个凡是 把个人崇拜进行到底
发表于2007/12/24, 23:20
      Top
主题评分
未评分. 匿名用户无权对主题进行评分
0 名会员正在浏览该主题 (0 名游客 和 0 名隐身会员)
0 名会员:
有 3 篇回复自 2007/12/21, 19:52 跟踪主题 | 邮寄主题 | 打印主题

<< Back to UNIX论坛

 




Powered by PhoenixBBS v1.2 © 2000-2003  NetBuddy.Org