免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 15841 | 回复: 11
打印 上一主题 下一主题

[网络管理] 双网卡同网段IP一个网线2个IP都能通? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-06-04 15:10 |只看该作者 |倒序浏览
HP机器在两个网卡上面配置同一网段的IP 192.168.1.2、192.168.1.3,eth0为192.168.1.2并且插了网线,eth1 没有插网线,此时2个IP都可以ping通。这个是怎么回事,大家能解释一下么?
另外默认路由走的是eth0,此时交换机上只能看到eth0的mac,哪位大侠能讲下这个原理到底是因为什么么?

[ 本帖最后由 fuyic 于 2008-6-5 10:44 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-06-04 16:42 |只看该作者
不晓得!
我记得遇到过两次,两块网卡配置了两个同一网段的IP,之后只能ping通一个,要想ping通另外一个,只得把这个网卡停掉才可以。

论坛徽章:
0
3 [报告]
发表于 2008-06-04 23:53 |只看该作者
和路由表的直通路由顺序有关
route -n 看一下你会发现其实该网段 eth0 是先走的,而因此 eth1 实际就不走了
言外之意,ping eth0 所在地址,数据包流经 eth0,而 ping eth1 所在地址,数据包先流经 eth0,后由内部转向 eth1
可以再做个试验,仍然只插一根网线,但插在 eth1 上,你会发现两个 IP 都不通了
在网络上,linux 与 windows 的实现不同,因此通常意义上不建议两个网卡相同网段
若一定要这样做,可以有 3 个解决办法
1、两个网卡做 bond(但我没这样做过)
2、两个网卡做 bridge,设置桥地址及桥地址的 alias(我通常这样解决)
3、设置策略路由(这个我到现在也还糊涂呢)

论坛徽章:
0
4 [报告]
发表于 2008-06-05 10:48 |只看该作者
感谢白金兄的回复,其实在遇到这个问题的时候我们已经在组内询问过系统 网络的同事,不过得到的结论似乎就是路由问题。

没错,你所说的现象我已经实验过了,不过我还是没明白的是,你说的“内部转向”是什么原理或者什么功能实现的。

还有就是你说的3个办法,第一个我看过帖子了,能否讲讲第二个的做法。

对了,还有一个就是这是不是HP 380 G4服务器集成网卡的问题?还是说只要是linux系统下,pci网卡都会出现这个问题?

[ 本帖最后由 fuyic 于 2008-6-5 10:49 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-06-05 11:10 |只看该作者
本机网卡上的IP是肯定可以ping通的,它直接从内核中查找mac地址,不用走网络的

另外你交换机上只看到eth0的mac,是因为你只有eth0才与交换机通信,eth1都没有连接交换机,肯定没有它的mac地址

论坛徽章:
0
6 [报告]
发表于 2008-06-05 11:18 |只看该作者
原帖由 fuyic 于 2008-6-5 10:48 发表
感谢白金兄的回复,其实在遇到这个问题的时候我们已经在组内询问过系统 网络的同事,不过得到的结论似乎就是路由问题。

没错,你所说的现象我已经实验过了,不过我还是没明白的是,你说的“内部转向”是什么 ...

“内部转向”是我自己编的名词,也可能术语不是叫这个,意思就是 linux 内部有个直通路由表,它可以把数据包通过内部协议栈直接转交给自己继续处理
至于第二种网桥 alias 的方法,我来举例说明

  1. brctl addbr BR
  2. brctl addif BR eth0
  3. brctl addif BR eth1
  4. ifconfig eth0 0
  5. ifconfig eth1 0
  6. ifconfig BR 192.168.1.1 netmask 255.255.255.0
  7. ifconfig BR:bak 192.168.1.2 netmask 255.255.255.0
复制代码

这样,就能实现无论连哪根网线,同网段机器可以 ping 通 192.168.1.1 和 192.168.1.2 了

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
7 [报告]
发表于 2008-06-05 19:32 |只看该作者
主要就是路由表的谁先匹配的问题。
在同一个系统中的多个网卡是不能在同一网段的。

论坛徽章:
0
8 [报告]
发表于 2010-12-29 16:25 |只看该作者
回复 1# fuyic

我最近遇到类似问题了,请看其它朋友的讨论: http://bbs.chinaunix.net/viewthread.php?tid=1622182&page=1

我测试的结果发现eth1的MAC地址 不是一直用的eth0的MAC,它偶尔会变成正常的。

可能我的测试环境和 你的不太一样。

论坛徽章:
0
9 [报告]
发表于 2010-12-29 21:04 |只看该作者
总结出来就一句话:数据包进行路由选择时,是按路由表的顺序匹配的。
好东西,学习了。。。。。。

论坛徽章:
0
10 [报告]
发表于 2010-12-30 12:59 |只看该作者
总结出来就一句话:数据包进行路由选择时,是按路由表的顺序匹配的。
好东西,学习了。。。。。。
inknk 发表于 2010-12-29 21:04


找到答案了: http://linux.chinaunix.net/bbs/viewthread.php?tid=895346

基本原因 就是楼上2位说的

我的解决方案:

echo "210    local100" >> /etc/iproute2/rt_tables
echo "220    local200" >> /etc/iproute2/rt_tables

ip route add 192.168.1.0/24 dev eth0 src 192.168.1.1 table local100
ip route add 192.168.1.0/24 dev eth2 src 192.168.1.253 table local200
ip route add default dev eth0 table local100
ip route add default dev eth2 table local200

ip rule add from 192.168.1.1 table local100
ip rule add from 192.168.1.253 table local200

ip route flush cache


我的理解是: linux内核 在响应外部ARP请求的时候, 2块网卡 在同一个路由里面,因此 都有机会去响应arp请求
因此出现了 MAC地址错乱的情况
现在 的思路就是 把2块网卡 分到2个不同的路由表中, 这样就不出现 MAC地址冲突的事情了

这次的事情 也让我把路由,arp这些基础 协议 重新看了看, 基础太不扎实了。。。。

一开始还 觉得是 内核做的什么 自动路由,解决防止环路问题 这些高深的 关注点上了。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP