- 论坛徽章:
- 0
|
请问一个问题
有两条不同ISP的外网,怎样能够让不同的ip分别走自己的isp的线路?
目前我的做法是,使用其中一根线路做为主线路,另一根作为分流线路
在main ip route 表里面呈现 主线路。
使用在另一个自定义ip route表里面呈现分流线路
使用ip rule 定义那些网段访问自定义的route表,走分流线路
但是缺点是显而易见的:
1 无法确认有多少ip是归分流线路的资源,只能发现多少增加多少
2 ip rule 定义比main优先级高的规则必然要经过越来越多的判断,导致网速下降。每增加一条新的rule,就意味着每个数据包都需要经过多一次判断才能通过。。。。而且似乎占用的是网卡的资源而非cpu。。
自从做好之后就经常出现
server kernel: printk: 2 messages suppressed.
messages 数量基本上在1-30以内
偶尔会出现
server kernel: eth2: Too much work in interrupt, status e401.
eth2 是我的主线路
加了
echo 2048 >; /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 8192 >; /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 16384 >; /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo 65535 >; /proc/sys/net/ipv4/ip_conntrack_max
~
之后
有所好转,但还是数据量一上去就报错
我的正常流量是
eth0 40M bps左右
eth1 10M bps左右
eth2 20M bps左右
请问有更好的方法解决吗?
谢谢 |
|