两条宽带 100M,机器是双网卡,绑了 2 个网关,如何指定程序使用哪个网络?
- 0次
- 2021-07-16 15:25:20
- idczone
之前试过绑定2个网关,程序使用的时候调用curl的interface比如eth0,刚开始重启network后没问题,运行1晚以后完全就串了,比如eth0走了eth1的网关,或者eth1完全就上不了网
ps: eth1使用的路由器每10分钟会重拨一次
ps: 两条网关使用的都是同一个网段,eth0:192.168.1.1, eth1:192.168.1.2, 两条路由器之间直接插网线,去掉eth1的dhcp,,本本网卡指定网关192.168.1.1的网关就会走宽带1, 指定192.168.1.2就会走宽带2 单网卡使用完全没问题
路由表
多谢,是下面这条命令么?
route add default gw {IP-ADDRESS} {INTERFACE-NAME}
路由表到现在还没搞懂
如果是要进来的流量,程序绑定本地 IP 的时候,直接选定绑在哪个 IP 地址上就好了。
如果是要出去的流量,只能根据目标 IP 来编写不同的路由表,非常之麻烦。
唔。。查了一下,在 Windows 下有一款名为 “Connectify Dispatch” 的收费软件可以做到按照应用程序来指定网关,不知道有没有开源实现。
多谢,这么说的话其实一根网线也能达成走不通的网关吧?
是的,完全可以,你完全可以在使用一根网线的情况下,在同一个网卡上占两个 IP
多谢,那么linux也一样的道理吧?
http://blog.5istar.net/archives/577
--windows网段路由
--键入 route -p add [目标] [mask <网络掩码>] [网关] [metric <度量值>] [if <接口>]
route print
route delete
route -p add 172.16.19.0 mask 255.255.255.0 198.15.0.1
注意关闭windows防火墙
--Linux(有点不同,请注意版本对应)
--添加网段路由
vi /etc/sysconfig/network-scripts/route-eth0
172.16.19.0/24 via 198.16.2.1
defult via 198.17.1.1
--SuSE
vi /etc/sysconfig/network/routes
172.16.19.0 198.16.2.1 255.255.255.0 eth0
default 172.16.19.1 - -
--AIX(smitty吧,我不是高手)
最后补充一点,做双网卡的主要目的应该是高可用考虑,一般采用主备(Active-Backup) or 轮询(Round-Robin),所以没有必要双网卡Bond
谢谢 这也是另外一个解决方法
多谢,明天试试
其实我的是家庭网络,普通宽带来的
http://serverfault.com/questions/93678/load-balancing-nat-ing-multiple-isp-connections-on-linux
多谢,,route+iptable,两个都很有挑战
以前当时我用的是这个解决方案,使用LD_PRELOAD实现的, 比较简单,不过windows上没法用
http://www.ryde.net/code/bind.c.txt
-----------------------------------
当时是强制 firefox 使用 某个 ip
BIND_ADDR="xxx.xxx.xxx.xxx" LD_PRELOAD=/usr/lib/bind.so firefox
sorry, 好像看错了 :)
多谢, 其实尝试过使用php的bing address,但是不生效不知道为什么
ip route add 192.168.1.0/24 dev em1 src 192.168.1.11 table 100
ip route add default via 192.168.1.1 dev em1 table 100
ip rule add from 192.168.1.11 lookup 100
ip route add 192.168.1.0/24 dev em2 src 192.168.1.12 table 200
ip route add default via 192.168.1.1 dev em2 table 200
ip rule add from 192.168.1.12 lookup 200
启动时执行上面的命令,从em1进入的包从em1出去,从em2进入的包从em2出去
相当,感谢,回去试
搞定