linux下如何设置路由?

linux下如何设置路由?,第1张

1、查看本机路由信息

[root@Router ~]# ip route ls

192.168.70.0/24 dev eth0 proto kernel scope link src 192.168.70.70

192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.70

169.254.0.0/16 dev eth1 scope link

default via 192.168.1.1 dev eth0

2、确认是否需要改变默认路由

[root@Router ~]# ip route replace default via 192.168.70.254 dev eth0 table main

[root@Router ~]# ip route ls

192.168.70.0/24 dev eth0 proto kernel scope link src 192.168.70.70

192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.70

169.254.0.0/16 dev eth1 scope link

default via 192.168.1.1 dev eth0

3、建立特殊路由表

[root@Router ~]# vi /etc/iproute2/rt_tables

255 local

254 main

253 default

200 test

4、向test路由表中添加它自己的默认路由

[root@Router ~]# ip route add default via 192.168.1.1 table test

注意:这个table test一定不要忘了写,否则写到了主路由表中

5、先看看机器当前的ip rule

[root@Router ~]# ip rule ls

0: from all lookup local

32766: from all lookup main

32767: from all lookup default

可以看到,规则中走了3个路由表,local、main、default

我们平常用route看到的,实际是路由表main

这些规则是按序号大小顺序走的,一个不同,则走下一个,知道通路或走完为止

6、添加路由到路由表test中

[root@Router ~]# ip rule add to 59.76.0.0/16 pref 10000 table test

这个意思是说,去向IP地址范围为59.76.0.0/16的访问,则启用test的路由表中的路由规则

而test的路由规则是什么呢?上面已经设置了,走的是202.196.x.1的路由.

现在再来看一下当前的ip rule

[root@Router ~]# ip rule ls

0: from all lookup local

10000: from all to 59.76.0.0/16 lookup test

32766: from all lookup main

32767: from all lookup default

第一:你的告诉别人,你的linux的发布版是是什么(centos,suse or aix)

第二:用GATWAY参数只能设置一个默认值,也就是说默认网关只有一个。(cetos/redhat)

第三:如果是centos/redhat,那么请修改该文件(没有则创建)/etc/sysconfig/static-routes

格式如下:

any net 10.10.10.0/24 gw 10.10.10.30

any host 192.168.3.83 gw 10.10.10.60

any net 172.16.3.0/24 gw 172.16.0.1 dev eth3

第四:如果是suse,请修改/etc/sysconfig/network下的routes,具体格式请参照百度。

如果一个linux服务器有三个口接三个不同的网络,对应的网络信息是如下

传统情况下,如果是为了从内向外访问获得更好的速度,让访问电信走电信,访问网通走网通,那么配置是网关只能够配置一个。

比如以电信为主的,那么网关就只设置电信的1.1.1.254,而针对网通和教育网设置不同的路由,路由下一跳指向网通和教育网对应的 网关。

如果这样做的目的只是实现内部访问外面,那么是没问题了,但是如果是为了让外面的用户能够正常访问到服务器上的服务就会出问题。比如电信用户会无法访问网通和教育网的ip,网通用户会无法访问电信和教育网的ip。而且只有设置了默认路由的那个网络能被跨网络访问,其它两个网络只能被本子网的设备访问。

要解决这个问题,思路就是由哪个网口进来的流量希望全部就由哪个回去。用lartc里面提到的方法就是来源的口不同,走不同的路由表。在默认的路由表基础上再建立三个路由表。

用 ip route show 可以看到默认有local,main,default三个路由表,这三个路由表的名称命名来自 /etc/iproute2/rt_tables ,这里先在这个配置文件里面添加三个不同的路由表表名,

之后建立这三个路由表的内容,因为这三个路由表的只是用来响应来自不同接口的,而不是用来相应从哪个接口出去的,所以只需要每个路由表里面建立默认网关即可。

之后再加上三条规则,使来自不同的口的走不同的路由表

至此无论是电信还是网通还是教育网用户,访问三个ip的任意一个地址都能够连通了。即便是服务器上本身的默认路由都没有设置,也能够让外面的用户正常访问。三个网络的IP都能被跨网络访问了。

命令汇总:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7794498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存