当前位置: 移动技术网 > IT编程>数据库>Mysql > linux中路由、策略路由的配置

linux中路由、策略路由的配置

2017年12月18日  | 移动技术网IT编程  | 我要评论
路由

网关:到其他网段的出口

动态路由:是路由器自动创建的路由表,当网络结构发生变化时,路由器会更具网络情况自动修改路由表。
静态路由:手动制定的路由表,网卡架构发生变化时需要手动修改路由表。

启用路由

临时启用路由功能

[root@snat ~]# cat /proc/sys/net/ipv4/ip_forward
1

永久启动路由功能

[root@snat ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@snat ~]# sysctl -p    #读取配置文件
net.ipv4.ip_forward = 1
设置路由

临时路由

[root@snat ~]# route add -net 192.168.80.0 netmask 255.255.255.0 gw 192.168.6.1

永久路由

[root@snat ~]# vim /etc/sysconfig/network-scripts/route-eth1
ADDRESS0=192.168.7.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.6.1
路由表

查看在linux中所有的路由表

[root@ecs-wyy-snt ~]# cat /etc/iproute2/rt_tables 
#
# reserved values
#
255 local   #本地路由表
254 main    #主要路由表,使用命令ip route 或者 route -n 打印的都是这个路由表中的内容
253 default  #可以存放默认路由,如果不指定该表,默认路由存放在main表中
0   unspec  

格式:路由表的编号 路由表的名称

查看制定路由表中的路由

[root@snat ~]# ip route show table test
default via 192.168.6.1 dev eth1

查看默认的主路由表中的路由

default via 192.168.6.1 dev eth1 
[root@snat ~]# ip route
169.254.169.254 via 192.168.6.1 dev eth0  proto static 
192.168.6.0/24 dev eth0  proto kernel  scope link  src 192.168.6.39 
192.168.6.0/24 dev eth1  proto kernel  scope link  src 192.168.6.36 
192.168.6.0/24 dev eth2  proto kernel  scope link  src 192.168.6.20 
169.254.0.0/16 dev eth0  scope link  metric 1002 
169.254.0.0/16 dev eth1  scope link  metric 1005 
169.254.0.0/16 dev eth2  scope link  metric 1006 
default via 192.168.6.1 dev eth0  proto static 

[root@snat ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
169.254.169.254 192.168.6.1     255.255.255.255 UGH   0      0        0 eth0
192.168.6.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

0.0.0.0         192.168.6.1     0.0.0.0         UG    0      0        0 eth0

Destination :目标地址     
Gateway : 网关
Genmask:子网掩码
Flags :网络标记,U 正在启用,UG 此路由必须制定网关,H 目标是一个主机
Metric :经过几个路由
Ref    
Use :路由使用的次数
Iface :网卡
配置策略路由

在路由器上创建多个路由表,创建规则,可以根据数据包的源地址和应用层协议或者负载选择不同的路由表,进行路径的选择。

使用实例如果一个公司出口出有两条线路(联通、移动),如果配置领导上网使用联通、普通员工上网使用移动。需要写两个路由表,一个是配置联通线路的路由表、另外一个是移动线路的路由表。策略路由根据不同的源IP选择不同的路由表。

实例:一台服务器上的两个网卡在同一网段 服务器 网卡1 网卡2 网关 服务器A 192.168.0.100 192.168.0.200 192.168.0.1 服务器B 192.168.0.300   192.168.0.1

设置路由表名对于的编号

[root@ecs-wyy-snt ~]# vim /etc/iproute2/rt_tables

32000     test

增加test路由表中的默认路由

[root@ecs-wyy-snt ~]# ip route add default via 192.168.0.1 dev eth1 table test

设置策略路由,
从192.168.0.200来的包,使用路由表test,pref的值是策略路由的优先级。

[root@ecs-wyy-snt ~]# ip rule add from 192.168.0.200 table test pref 32000
实例:在公司的网络中有两个出口,一个电信一个联通,不同的IP访问走不同的路径 服务器 网卡1 网卡2 网卡3 网关 服务器A 192.168.6.182     192.168.6.39 服务器B 192.168.6.66     192.168.6.39 router 192.168.6.39 192.168.0.200 (映射公网IP 139.159.221.28) 192.168.5.120 (映射公网IP 139.159.228.71)  

本次测试在route在linux服务器上部署

[root@ecs-wyy-snt ~]# cat /etc/redhat-release 
CentOS release 6.9 (Final)
实验环境配置(可省略)

为保证多个网卡配置公网IP之后能够上网需要配置策略路由

外网能够通过公网访问该服务器

增加路由表

[root@ecs-wyy-snt ~]# vim /etc/iproute2/rt_tables
32000   test
32001   test1

配置策略路由保证使用公网IP能远程登录。本次测试的实验环境比较复杂,由于公网IP是映射到服务上的,故需要做策略路由的配置。

[root@ecs-wyy-snt ~]# ip route add default via 192.168.0.1 dev eth1 table test
[root@ecs-wyy-snt ~]# ip rule add from 192.168.0.200 table test pref 32000

[root@ecs-wyy-snt ~]# ip route add default via 192.168.5.1 dev eth2 table test1
[root@ecs-wyy-snt ~]# ip rule add from 192.168.5.120 table test1 pref 32001

配置NAT转发(实现上网)

[root@ecs-wyy-snt ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@ecs-wyy-snt ~]# sysctl -p
[root@ecs-wyy-snt ~]# iptables -t nat -I POSTROUTING -s 192.168.6.182/32 -j SNAT --to-source 192.168.0.200
[root@ecs-wyy-snt ~]# iptables -t nat -I POSTROUTING -s 192.168.6.66/32 -j SNAT --to-source 192.168.5.120


[root@router ~]# iptables-save

# Generated by iptables-save v1.4.7 on Sat Dec 16 23:23:51 2017

*nat
:PREROUTING ACCEPT [2636:117755]
:POSTROUTING ACCEPT [6:366]
:OUTPUT ACCEPT [6:366]
-A POSTROUTING -s 192.168.6.66/32 -j SNAT --to-source 192.168.5.120 
-A POSTROUTING -s 192.168.6.182/32 -j SNAT --to-source 192.168.0.200 
COMMIT

# Completed on Sat Dec 16 23:23:51 2017


# Generated by iptables-save v1.4.7 on Sat Dec 16 23:23:51 2017

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1450:149349]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT

# Completed on Sat Dec 16 23:23:51 2017

You have new mail in /var/spool/mail/root
路由器上配置策略路由

确保两张路由表上有默认上网的路由

[root@ecs-wyy-snt ~]# cat /etc/iproute2/rt_tables 
#

# reserved values

#
255 local
254 main
253 default
0   unspec
32000   test
32001   test1
#

# local

#

[root@ecs-wyy-snt ~]# ip route show table test
default via 192.168.0.1 dev eth1 
[root@ecs-wyy-snt ~]# ip route show table test1
default via 192.168.5.1 dev eth2 

增加策略路由

[root@router ~]# ip rule add from 192.168.6.182 lookup test pref 31000

[root@router ~]# ip rule add from 192.168.6.66 lookup test1 pref 31001

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网