首先 /etc/iproute2/rt_tables 里面添加2个table, 对应2个不同的网段(net3 net5)
配置思路是 用ip route 命令为net3 table增加default gw 118.126.3.1,net5 table 增加default gw 118.126.5.1
然后用 ip rule 命令 使用源地址匹配规则 源地址为118.126.3.16的数据包选择 net3 table, 源地址为118.126.5.251的数据包选择net5 table.
当然你也需要设置本机的默认default gw(直接用route命令),那么由本机生成的数据包,默认会选用与default gw连接的那块网卡的ip地址对外通讯(程序指定的除外)。
以上配置对于正常开发的 tcp通讯软件完全可以正确工作,ping也没有问题。 不过某些开发不正确的udp软件可能运行会不正常(这种udp软件,在有两个以上ip地址的主机上工作都会有问题)
linux双网卡绑定一个IP教程由于客户机比较多我们可以做到二块网卡同时工作。开始做了。
rh el 5测试通过。。
网卡1为eth0 网卡2为eth1 (这个大家都知道)
1.先修改eth0 和eht1这2个网卡配置文件.目录在(/etc/sysconfig/network-scripts/)如下:
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
BOOTPROTO=none (这个最好不要为DHCP 一点启动慢,二点你网吧有DHCP了,想想!呵呵)
2. eth1 也是同样的修改.如下:
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
BOOTPROTO=none (这个最好不要为DHCP 一点启动慢,二点你网吧有DHCP了,想想!呵呵)
3.新建一个虚拟网卡bond0,我们可以复制eth0的,复制后要修改内容.
复制 (cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0)修改内容为如下:
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.227
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
TYPE=Ethernet
4.修改/etc/modprobe.conf,添加内容如下:
alias bond0 bonding
options bond0 miimon=100 mode=1
注意:mode可以为0, 1, 0为负载均衡,1为失效保护, 我们只用到0
关于:modprobe.conf文件在AS版本里面有,linux9.0的是这个modules.conf文件
mode指定了bond0的工作模式,常用的是0和1,0表示负载均衡方式,1表示主从方式,可根据需要自行配置。常用的为0,1两种。mode=0表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。 miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
5:修改/etc/rc.d/rc.local,添加内容如下:
ifenslave bond0 eth0 eth1
route add -net 192.168.0.255 netmask 255.255.255.0 bond0
完成。。。。。。。。。。。
查看:
[root@LMsev ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:73:0f
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ea:73:19
如果bond关闭后,使用一下命令启动:
ifenslave bond0 eth0 eth1
1.不通是什么概念?TCP不通还是ICMP不通?2.内向外不通还是外向内不通?
3.外部不通的那个对端是同一子网还是不同子网?
4.你的双网卡配置了两个默认网关,这种做法是错的。你需要在其中一个网口上指定一个默认网关,另一个网口用静态路由逐条指定。
比如,上网通过eth0,gateway=10.213.1.1这个没错。
访问另外几个局域网172.16.0.0/16、192.168.111.0/24通过eth1
ip route add 172.16.33.0/16 via 192.168.2.1
ip route add 192.168.111.0/24 via 192.168.2.1
如果不通的对端是其他子网,用ip route 或者route -n看看你的路由表是否正确。不正确的路由表删除,删除方法类似上面两个命令,add换成del
5.其他检查方法
a.fconfig eth1看看你的IP是否设置正确,并真实存在
b.用mii-tool看看你的物理连接是否网线松动
c.看看iptables
iptables -nvL INPUT
如果有规则,就清空规则:
redhat、fc、centos用一条命令搞定:
service iptables stop
其他版本用三个命令:
iptables -P INPUT ACCEPT
iptables -F
iptables -X
三楼说用ip rules,简单问题复杂化了,那是网关的做法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)