免费注册 查看新帖 |

Chinaunix

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

[网络管理] 双网卡,都要访问内网的问题。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-25 21:16 |只看该作者 |倒序浏览
一台Redhat AS2.1服务器配置了两个网卡,需要用不同的网卡访问两个不同网段的内网,88段,89段;

eth0配置文件/etc/sysconfig/network-scripts/ifcfg-eth0如下:
  1. DEVICE=eth0
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.88.21
  5. NETMASK=255.255.255.0
复制代码


eth1配置文件为:
  1. DEVICE=eth1
  2. ONBOOT=yes
  3. BOOTPROTO=static
  4. IPADDR=192.168.89.21
  5. NETMASK=255.255.255.0
复制代码


/etc/resolv.conf文件为:
  1. nameserver 192.168.88.1
  2. search localdomain
复制代码


路由信息如下:
  1. # route
  2. Kernel IP routing table
  3. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  4. 192.168.89.0    *               255.255.255.0   U     0      0        0 eth1
  5. 192.168.88.0    *               255.255.255.0   U     0      0        0 eth0
  6. 127.0.0.0       *               255.0.0.0       U     0      0        0 lo
  7. default         192.168.88.1    0.0.0.0         UG    0      0        0 eth0
复制代码


现在的问题是ping 88段的网关可以ping得通,而ping 89段的就不能ping通:
  1. # ping 192.168.88.1
  2. PING 192.168.88.1 (192.168.88.1) from 192.168.88.21 : 56(84) bytes of data.
  3. 64 bytes from 192.168.88.1: icmp_seq=0 ttl=255 time=888 usec
  4. 64 bytes from 192.168.88.1: icmp_seq=1 ttl=255 time=675 usec
  5. 64 bytes from 192.168.88.1: icmp_seq=2 ttl=255 time=694 usec
  6. 64 bytes from 192.168.88.1: icmp_seq=3 ttl=255 time=792 usec
  7. 64 bytes from 192.168.88.1: icmp_seq=4 ttl=255 time=809 usec
  8. 64 bytes from 192.168.88.1: icmp_seq=5 ttl=255 time=657 usec
  9. 64 bytes from 192.168.88.1: icmp_seq=6 ttl=255 time=674 usec

  10. --- 192.168.88.1 ping statistics ---
  11. 7 packets transmitted, 7 packets received, 0% packet loss
复制代码

  1. # ping 192.168.89.1
  2. PING 192.168.89.1 (192.168.89.1) from 192.168.89.21 : 56(84) bytes of data.
  3. From 192.168.89.21: Destination Host Unreachable
  4. From 192.168.89.21: Destination Host Unreachable
  5. From 192.168.89.21: Destination Host Unreachable
  6. From 192.168.89.21: Destination Host Unreachable
  7. From 192.168.89.21: Destination Host Unreachable
  8. From 192.168.89.21: Destination Host Unreachable

  9. --- 192.168.89.1 ping statistics ---
  10. 8 packets transmitted, 0 packets received, +6 errors, 100% packet loss
复制代码


网络物理上连接是没有问题的,还请高手不吝赐教啊 谢谢!

论坛徽章:
0
2 [报告]
发表于 2007-04-26 08:58 |只看该作者

回复 #1 Jync 的帖子

以前好像有写双网卡配置的文章,不过找不到。。。

论坛徽章:
0
3 [报告]
发表于 2007-04-26 10:59 |只看该作者
原帖由 single0 于 2007-4-26 08:58 发表于 2楼  
以前好像有写双网卡配置的文章,不过找不到。。。

我找到了一些,但是都试过了,没有用啊

论坛徽章:
0
4 [报告]
发表于 2007-04-26 17:40 |只看该作者
把ip route default改成89网段的,是不是就ping 89的可以,ping  88的不行?

论坛徽章:
0
5 [报告]
发表于 2007-04-26 17:52 |只看该作者
给你提供一些配置双网卡的资料............


免费**********

友情支持你一下!


7.13. 配置网络脚本
本节仅适用于需要配置网卡的情况。
如果不使用网卡,就不需要创建关联网卡的配置文件,这样的话,在所有运行级目录(/etc/rc.d/rc*.d) 下删除 network 符号链接。
7.13.01. 创建网络接口的稳定名称
这一段的说明对于单网卡是可选的。
由于 Udev 和网络驱动的模块化,网络设备的接口的加载顺序在每次reboot后可能会不同,因为驱动是并行加载的,所以顺序会变成随机。例如,在一台计算机上有两块网卡Intel 和 Realtek。Intel 制造的网卡可能是 eth0,Realtelk 的网卡是 eth1;但是重启后网卡的顺序可能反过来。为避免这种情况,我们应该根据网卡的MAC地址或总线位置来为他们命名。
如果想要根据MAC地址来识别网卡,可以使用如下命令:
grep -H . /sys/class/net/*/address
为每个网卡(除loopback),设计一个描述性的名字,比方 “realtek”, 然后参照如下建立Udev规则:
cat > /etc/udev/rules.d/26-network.rules << EOF
ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:e0:4c:12:34:56", NAME="realtek"
ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:a0:c9:78:9a:bc", NAME="intel"
EOF
如果要以总线位置作为标准,可以创建如下的Udev规则:
cat > /etc/udev/rules.d/26-network.rules << EOF
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:00:0c.0", NAME="realtek"
ACTION=="add", SUBSYSTEM=="net", BUS=="pci", ID=="0000:00:0d.0", NAME="intel"
EOF
这个规则会把网卡名字每次都定为 “realtek” 和 “intel”, 以替代eth0和eth1 (即:原来的eth0和eth1接口不存在了除非把他们加到 NAME 下)。在下面的文件中我们使用描述性的名字来替代eth0 等。
需注明以上规则并不永远适用。例如, 当VLAN 和 网桥 使用时,以MAC为基准的命名就会出问题。由于 VLAN 和 网桥在网卡上有相同的MAC地址。如果只想重新命名网卡接口,而不是brige和VLAN接口,但是规则都会匹配它们。如果使用虚拟接口,我们会有两种解决办法。其一是把 DRIVER=="?*" 关键字加在 SUBSYSTEM=="net" 后。但这种方法对于一些老型号的网卡不起作用,因为这些网卡的 uevent 中没有 DRIVER 变量,因此按规则就不可能匹配到这些卡。 另外一种就是以总线位置命名。
另外一种已知的不能工作的情况存在于无线网络中,当应用MadWifi 或 HostAP 驱动时, 他们会以相同的MAC地址和总线位置创建至少两个接口。例如,Madwifi 驱动会创建一个 athX 和 wifiX 接口(X是一个数字)。为区别这些接口,可以把 KERNEL 参数,比如 KERNEL=="ath*" 加到 SUBSYSTEM=="net"后。
可能还有很多情况会导致不能正常工作,现在这方面的 bug 仍然不断的报告给 Linux 的各个发布版,没有一个解决方法可以解决所有的情况。
7.13.02. 创建网络接口配置文件
network 脚本启用或关闭哪个接口由 /etc/sysconfig/network-devices 目录下的文件决定,这个目录下的文件应该是类似于 ifconfig.xyz 的形式,这里"xyz"是网络接口名(例如 eth0 或者 eth0:1)。这个目录中的文件将定义接口的属性,比如IP地址、子网掩码等等。
在这个目录下新建文件,下面是一个为 eth0 设备创建 ipv4 文件的示例:
cd /etc/sysconfig/network-devices &&
mkdir -v ifconfig.eth0 &&
cat > ifconfig.eth0/ipv4 << "EOF"
ONBOOT=yes
SERVICE=ipv4-static
IP=192.168.1.1
GATEWAY=192.168.1.2
PREFIX=24
BROADCAST=192.168.1.255
EOF
每个文件中的这些变量的值都要改成您的设置,如果 ONBOOT 变量设置为"yes",network 脚本会在系统启动的时候启动 NIC(Network Interface Card 网络接口卡,简称网卡),如果设置为"yes"以外的值,网卡会被 network 脚本忽略而没有启动。
SERVICE 变量定义获取 IP 地址的方式,LFS-Bootscripts 有一套模块化的 IP 地址分配格式,并在 /etc/sysconfig/network-devices/services 目录下为其它的 IP 分配方式创建了附加的文件,这通常用作 DHCP(Dynamic Host Configuration Protocol 动态主机配置协议)方式,在 BLFS 里有详细介绍。
GATEWAY 变量应该设置为默认网关的 IP 地址,如果没有默认网关,就把这个变量完全注释掉。
PREFIX 变量设置为子网使用的位数,IP 地址的每个字节是 8 bit ,如果子网掩码是 255.255.255.0 ,那么它使用前三个字节(24 bit)指定网络号;如果网络掩码是 255.255.255.240 ,它用前 28 bit 来指定网络号。长于 24 bit 的前缀一般由 DSL 和 cable 的 ISP(Internet Service Providers 因特网服务提供商)使用,我们的例子里(PREFIX=24),子网掩码是 255.255.255.0 ,请根据您的网络情况调整 PREFIX 变量。

[ 本帖最后由 青铜镜 于 2007-4-26 17:58 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2007-04-28 14:07 |只看该作者
原帖由 zhy0414 于 2007-4-26 17:40 发表于 4楼  
把ip route default改成89网段的,是不是就ping 89的可以,ping  88的不行?

是的!真不知怎么回事。。。

还要感谢青铜镜兄的友情支持 又学到了很多东西,可是我的问题还是没有解决,如上所述

论坛徽章:
0
7 [报告]
发表于 2007-04-28 14:24 |只看该作者
配置文件没有任何问题。
执行

  1. iptables -nL
复制代码

看看是不是有防火墙。

论坛徽章:
0
8 [报告]
发表于 2007-04-28 14:26 |只看该作者
关于双网卡的问题的总结:
1.ping测试时,在双网卡机子上分别ping 两个网段内的其它机子通.本机正常连接了两个网段.
2.从一个网段内的其它机子ping此双网卡机,两次, 第一次ping 本网段接口,通.正常. ping另一个口正常.好的,你离成功不远了.
3.检查两个网段机子的连接性,不通?
路由转发开了吗? echo 1 > /proc/sys/net/ipv4/ip_forward.
双网卡机子上看看arp信息能正常学习到吗?
arp -a
指向彼此的路由是否写了,或写对了?

小提示:根据我写的,你应该能提供是在第几步出了问题.

论坛徽章:
0
9 [报告]
发表于 2007-04-28 16:09 |只看该作者
原帖由 maluyao 于 2007-4-28 14:24 发表于 7楼  
配置文件没有任何问题。
执行
iptables -nL
看看是不是有防火墙。


没有啊:
  1. # iptables -nL
  2. Chain INPUT (policy ACCEPT)
  3. target     prot opt source               destination         

  4. Chain FORWARD (policy ACCEPT)
  5. target     prot opt source               destination         

  6. Chain OUTPUT (policy ACCEPT)
  7. target     prot opt source               destination     
复制代码


先谢过wysilly兄:
关于双网卡的问题的总结:
1.ping测试时,在双网卡机子上分别ping 两个网段内的其它机子通.本机正常连接了两个网段.
2.从一个网段内的其它机子ping此双网卡机,两次, 第一次ping 本网段接口,通.正常. ping另一个口正常.好的,你离成功不远了.
3.检查两个网段机子的连接性,不通?
路由转发开了吗? echo 1 > /proc/sys/net/ipv4/ip_forward.
双网卡机子上看看arp信息能正常学习到吗?
arp -a
指向彼此的路由是否写了,或写对了?

小提示:根据我写的,你应该能提供是在第几步出了问题.


我第2步就不通了,路由转发已开启,查看路由,发现看不到89段网关的MAC地址:
  1. # arp -a
  2. ? (192.168.88.1) at 00:50:0B:B0:94:1C [ether] on eth0
复制代码

论坛徽章:
0
10 [报告]
发表于 2007-04-28 22:58 |只看该作者
按照道理将应该都是通的才对?我在同样的环境下这样设置没有问题啊。
我使用的是2.6的Linux。
要不你添加策略路由看看。就是分别设置两个网卡的各自网关,具体参考 linux路由高级设置 的资料。
参考4.2.1 流量分割的路由设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP