⼀般的路由设置⽅式为⽬的路由,即对⽬的IP做匹配,若满⾜⼀定的规则,则把数据从某个⽹⼝发出去(同时也决定了⽬的MAC地址)。源地址路由,顾名思义,对源地址IP做匹配,若满⾜⼀定的规则,则把数据从某个⽹⼝发出去。 公牍 在linux上,可以做ip route2⼯具做源地址路由设置,⽽windows上是没有类似的⼯具包的。有⼀些情况下,⽬的路由满⾜不了我们的要求,⽽需要做源地址路由。
如我们的服务器有多个⽹关的情况(甚⾄同⼀个⽹卡下有多个⽹段地址,对应了多个⽹关),⽽⽬的端的IP地址⽆法确定(⽐如设备上传的IP不确定),做不了⽬的路由,数据就会从默认的路由出去,这样就会导致数据从⽹关2进来,回复的数据从⽹关1出去,这样数据肯定会有问题的。
解决此问题有多个⽅案:
1,在路由器上做源地址转换,把外部IP转换成内部IP 老山击剑俱乐部 1)⽬前在华为路由器上⽀持此功能,⽽在思科路由器上⾯没有到
2)此⽅案的效率不是最优的,可能由路由器带来⽐较重的负担
连通性 3)内部的服务看不到真实的外部IP
2,在服务器上新建虚拟机,化解多个⽹关的问题
柏林恐袭致12死 1)虚拟机⽐较费资源,效率不是最优的
2)虚拟机的稳定性⽐较差
3,在服务器上做源地址路由
1)⽬前在linux上有现成的⼯具,⽽windows上没有2)windows上需要写ndis驱动,需要开发
3)此⽅案在效率上是最优的,对应⽤也是不可见的。
我采⽤了第3种:⽅案:在服务器上做源地址路由,在这⾥我把源码给⼤家分享出来。 小型航空发动机
代码中的配置还不是很灵活,但已经在实际环境中使⽤过了(windows2003sp1,windows2008r2)。
以上就是基于windows的源地址路由设置的三个⽅法,谢谢阅读,如果帮到了您,不妨分享给更多的朋友,让他们受惠。请继续关注,我们会努⼒分享更多优秀的⽂章。
郑州都市村庄