ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

linux下的双网卡和策略路由的测试方法

2014-11-1 03:00| 发布者: admin| 查看: 437| 评论: 0

摘要: 这几天又研究了一下,发现一个非常简便的方案。若主机A linux eth0为电信,电信网关为192.168.0.30,eth1为联通,联通网关为192.168.1.30 eth0 IPADDR=192.168.0.10 NETMASK=255.255.255.0 eth1 IPADDR=192.168 ...

这几天又研究了一下,发现一个非常简便的方案。若主机A linux eth0为电信,电信网关为192.168.0.30,eth1为联通,联通网关为192.168.1.30

eth0  IPADDR=192.168.0.10
          NETMASK=255.255.255.0

eth1  IPADDR=192.168.1.10
          NETMASK=255.255.255.0
修改IP转发文件
   # vi /etc/sysctl.conf
     net.ipv4.ip_forward = 1
   增加2个路由表,电信和联通
      # vi /etc/iproute2/rt_tables
      251 dianxin
      252 liantong

  1.  设置电信和联通的路由
      ip route add default via 192.168.0.30 dev eth0 table dianxin
      ip route add default via 192.168.1.30 dev eth1 table liantong

  2.  添加策略路由
     ip rule add from 192.168.0.10 table dianxin
     ip rule add from 192.168.1.10 table liantong
注: 我没有添加默认路由,所以主机自己主动访问外部的时候 是没有路由,不通的,不过可以响应外部的请求。
配置完成。

下面是虚拟机的实验。
在虚拟机上实验了一下基本可行,不过没有在生产环境上使用。

模拟环境:
主机A LINUX
          net1 (vmware虚拟网卡1)
          eth0  IPADDR=192.168.0.10
          NETMASK=255.255.255.0

          net2 (vmware虚拟网卡2)
          eth1  IPADDR=192.168.1.10
          NETMASK=255.255.255.0

主机B  windows 2003 系统,充当电信网关的
          网卡1,net1 (vmware虚拟网卡1)
          ip 192.168.0.30
              255.255.255.0

         网卡2, net3 (vmware虚拟网卡3) 接客户机
         ip  192.168.3.30
              255.255.255.0
        启用了路由和远程访问,就相当于一台路由器。

客户机C  windows 2003 系统
         网卡1  net3 (vmware虚拟网卡3)
                   ip  192.168.3.50
                         255.255.255.0
                  网关: 192.168.3.30   指向了B
linux 上的操作
修改IP转发文件
   # vi /etc/sysctl.conf
     net.ipv4.ip_forward = 1
   增加2个路由表,电信和联通
      # vi /etc/iproute2/rt_tables
      251 dianxin
      252 liantong

  1.  设置电信和联通的路由
      ip route add default via 192.168.0.30 dev eth0 table dianxin
      ip route add default via 192.168.1.30 dev eth1 table liantong
在我做到这一步后,我在 客户机上ping 192.168.0.10 的时候,ping不通。然后我添加了下面的策略路由之后,通了。
(虽然linux的 网卡2 192.168.1.10 没有测试,不过该网卡是活动的)

  2.  添加策略路由
     ip rule add from 192.168.0.10 table dianxin 注意是 linux主机的网卡ip地址
     ip rule add from 192.168.1.10 table liantong 注意是 linux主机的网卡ip地址

若有错误之处请指出。

一.参考链接:
按如下链接可以配置,在redhat linux可以实现目标地址为哪个块网卡地址,就从哪块网卡回去:
实际测试,即使不做任何配置,只配置一个默认网关,虽然icmp,tcp的流量从管理口进入,从业务口返回,也是没有问题的,可以正常接收ICMP和TCP会话建立(对于交换式的UDP不方便测试,没有测试)
二.测试环境:
                                     / (eth0)PC2
PC1(eth0)------------router
                                     (eth1)PC2

A.PC1 :
----windows xp
eth0:10.1.1.8/24 默认网关:10.1.1.1(路由器地址)
B.router
e0/0:10.1.1.1/24
e0/1:172.16.100.1/24
e0/2:192.168.100.1/24
C.PC2:
----Linux AS4 2.6.9-78.EL0000001Wed Jul 9 15:27:01 EDT 2008 i686 i686 i386 GNU/Linux
eth0:172.16.100.8/24 没有设置默认网关,规划走管理流量
eth1:192.168.100.8/24 默认网关:192.168.100.1,规划走业务流量

三.配置步骤:
A.添加路由表:
#vi /etc/iproute2/rt_tables
251 APP
252 MAN
B.两个路由表设置不同的默认路由:
ip route add default via 172.16.100.1 dev eth0 table APP
ip route add default via 192.168.100.1 dev eth1 table MAN
C.两个路由表设置策略路由:
ip rule add from 172.16.100.8 table APP
ip rule add from 182.168100.8 table MAN
----注意:这个地方是rule,不是route
D.将上述语句写到开机脚本中:
# vi /etc/rc.local
ip route add default via 172.16.100.1 dev eth0 table APP
ip route add default via 192.168.100.1 dev eth1 table MAN
ip rule add from 172.16.100.8 table APP
ip rule add from 182.168100.8 table MAN
四.效果测试:
A.配置前,用PC1去ping PC2的管理口地址时,回包是从业务口回的
-----因为只有业务口配置了默认路由
[root@AS4 ~]# tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:00:40.672269 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 26368
11:00:41.714285 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 26624
11:00:42.715187 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 26880
11:00:43.714274 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 27136
B.配置后,用PC1去ping PC2的管理口地址时,回包也从管理口回的
----因为配置了策略路由,从管理口发出的包,走MAN路由表,而MAN路由表配置的默认路由为管理口对端的地址
[root@AS4 ~]# tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
11:05:42.460413 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 27392
11:05:42.483457 IP 172.16.100.8 > 10.1.1.8: icmp 40: echo reply seq 27392
11:05:43.454196 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 27648
11:05:43.454250 IP 172.16.100.8 > 10.1.1.8: icmp 40: echo reply seq 27648
11:05:44.462939 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 27904
11:05:44.462996 IP 172.16.100.8 > 10.1.1.8: icmp 40: echo reply seq 27904
11:05:45.457045 IP 10.1.1.8 > 172.16.100.8: icmp 40: echo request seq 28160
11:05:45.457555 IP 172.16.100.8 > 10.1.1.8: icmp 40: echo reply seq 28160

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2025-10-27 06:48 , Processed in 0.029376 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部