免费注册 查看新帖 |

Chinaunix

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

[通信方式] debian下同一网段多网口配置,可以tcp通讯么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-18 15:54 |显示全部楼层 |倒序浏览
本帖最后由 charry_nj 于 2014-10-21 09:37 编辑

参照论坛一位大神的经验,我这样配置的:
主机(A)共有4块网卡,需要独立连接4台控制器(BCDE),每个控制器只有一个网口,且都在同一个网段,彼此之间不能连通。
我设定eth0 : 192.168.2.1
         eth1:192.168.2.2
         eth2:192.168.2.3
         eth3:192.168.2.4

在rc.local中添加了以下一段:
route add -net 0.0.0.0/0 netmask 0.0.0.0 gw 192.168.2.254 dev eth0
route add -net 0.0.0.0/0 netmask 0.0.0.0 gw 192.168.2.254 dev eth1
route add -net 0.0.0.0/0 netmask 0.0.0.0 gw 192.168.2.254 dev eth2
route add -net 0.0.0.0/0 netmask 0.0.0.0 gw 192.168.2.254 dev eth3
ip route add to 0.0.0.0/0 via 192.168.2.254 dev eth0 table 10
ip rule add from 192.168.2.1/32 table 10
ip route add to 0.0.0.0/0 via 192.168.2.254 dev eth1 table 20
ip rule add from 192.168.2.2/32 table 20
ip route add to 0.0.0.0/0 via 192.168.2.254 dev eth2 table 30
ip rule add from 192.168.2.3/32 table 30
ip route add to 0.0.0.0/0 via 192.168.2.254 dev eth3 table 40
ip rule add from 192.168.2.4/32 table 40

保存重新启动后,发现可以从主机指定网口ping到与之连接的控制器的的ip,但是从控制器上是无法ping到主机对应连接网络的ip,这是为什么呢????(问题一)
比如:A的第2个口(eth1)可以ping到C控制器的IP,但从C控制器上反过来ping,就ping不通。

另外请问一下:这样配置后是否可以达到各控制器之间相互隔离的作用(问题二)
问题三:
在网络编程时,基于TCP的socket能否成功呢?主机作为TCP的客户端,能否从指定网口出去建立tcp连接??


请大神指教!!不胜感激!!!

论坛徽章:
0
2 [报告]
发表于 2014-10-20 16:02 |显示全部楼层
非常谢谢Tinnal 的回答!

可能我的描述不太对。重新说一下:假如有5台主机,A、B、C、D、E,其中A主机有4个网口,通过这4个网口分别连接到B、C、D、E主机,但是B、C、D、E主机只有一个网口,而且他们的IP都是同一个网段,甚至某两个IP相同,但是现在通过A与BCDE直接连接,在A上面写程序实现分别与BCDE主机通讯,但是要保证BCDE之间相互独立没有任何连接。那么应该怎么配置呢?

“你需要对4个网卡进行桥绑定”——我还不懂桥绑定的含义,想请问一下,上面的这种需求,桥绑定能实现么?

论坛徽章:
0
3 [报告]
发表于 2014-10-20 16:09 |显示全部楼层
主机A有点类似于防火墙的功能,各个网口可以配置成相互隔离,逻辑隔离

论坛徽章:
0
4 [报告]
发表于 2014-10-21 09:27 |显示全部楼层
好的,非常谢谢

运维的板块

论坛徽章:
0
5 [报告]
发表于 2014-10-21 13:39 |显示全部楼层
感谢楼上
你采用的是掩码区分吧

问题上BCDE设备早已存在,且ip不可以改动,
我主要是想从A上着手解决问题。

论坛徽章:
0
6 [报告]
发表于 2014-10-29 08:25 |显示全部楼层
已经搞定了!可能还有问题,但是解决了目前的问题.
更正一下rc.local内容
在rc.local中添加了以下一段:
route add -net 0.0.0.0/0 netmask 0.0.0.0 dev eth0
route add -net 0.0.0.0/0 netmask 0.0.0.0 dev eth1
route add -net 0.0.0.0/0 netmask 0.0.0.0 dev eth2
route add -net 0.0.0.0/0 netmask 0.0.0.0 dev eth3
ip route add to 0.0.0.0/0 dev eth0 table 10
ip rule add from 192.168.2.1/32 table 10
ip route add to 0.0.0.0/0 dev eth1 table 20
ip rule add from 192.168.2.2/32 table 20
ip route add to 0.0.0.0/0 dev eth2 table 30
ip rule add from 192.168.2.3/32 table 30
ip route add to 0.0.0.0/0 dev eth3 table 40
ip rule add from 192.168.2.4/32 table 40

这样可以通过ping 命令ping通各个口,在程序处理中,需要注意的是建立tcp客户端时,需要bind一个网卡的ip。

我的QQ:1176479828
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP