`
webcenterol
  • 浏览: 951051 次
文章分类
社区版块
存档分类
最新评论

Linux高级路由---策略路由/捆绑/网桥

 
阅读更多

1.策略路由
基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址来选择转发路 径...
#/etc/iproute2/rt_tables 此文件存有linux 系统路由表默认表有255 254 253三张表
255 local 本地路由表 存有本地接口地址,广播地址,已及NAT地址.
local表由系统自动维护..管理员不能操作此表...
254 main 主路由表 传统路由表,ip route若没指定表亦操作表254.一般存所有的路由..
注:平时用ip ro sh查看的亦是此表设置的路由.
253 default 默认路由表一般存放默认路由...
注:rt_tables文件中表以数字来区分表0保留最多支持255张表
路由表的查看可有以下二种方法:
#ip route list table table_number
#ip route list table table_name
路由表添加完毕,即可在策略路由表内添加路由例:
#ip route add 192.168.1.0/24 dev eth0 via 192.168.1.66 realm 4
注:发往子网192.168.1.0/24的数据包通过分类4转发配合tc使用,后文有介绍讲解...
#ip route add default via 192.168.1.1 table int1
#ip route add 192.168.1.0/24 via 192.168.1.1 table int2
#ip route add 172.16.0.2/16 via 172.16.0.1 table int3
注:各路由表中应当指明默认路由,尽量不回查路由表.路由添加完毕,即可在路由规则中应用..
#ip rule sh 显示路由规则
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
进行路由时,正是根据路由规则来进行匹配,按优先级(pref后数值)从高到低匹配,直到找到合适的规则.所以在应用中配置默认路由是必要的..
策略路由一般手工添加路由表,路由表的添加只需编辑rt_tables文件,规定表序号,表名即可..
ip rule规则添加示例:
#ip rule add from 192.168.1.112/32 [tos 0x10] table test2 pref 999 prohibit
#ip rule add to 192.168.1.2 pref 1000 table test1
#ip rule add from 192.168.1.0/24 pref 1001 table test1
#ip rule add [from 0/0] table test1 pref 1003
#ip rule add fwmark 1 pref 1002 table test2 此句型配合iptables -t mangle应用.如先对数据
包作标记:
#iptables -t mangle -A PREROUTING -p tcp -m multiport
--dports 80,8080,20,21 -s 192.168.1.0/24 -j MARK --set-mark 1
注:创建完路由规则若需立即生效须执行#ip route flush cache;刷新路由缓冲
可参数解析如下:
From -- 源地址
To -- 目的地址(这里是选择规则时使用,查找路由表时也使用)
Tos -- IP包头的TOS(type of sevice)域
Dev -- 物理接口
 Fwmark -- 防火墙参数
采取的动作除了指定路由表外,还可以指定下面的动作:
Table 指明所使用的表
  Nat 透明网关
Prohibit 丢弃该包,并发送 COMM.ADM.PROHIITED的ICMP信息
Reject 单纯丢弃该包
Unreachable丢弃该包, 并发送 NET UNREACHABLE的ICMP信息
具体格式如下:
Usage: ip rule [ list | add | del ] SELECTOR ACTION
SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ][ dev STRING ] [ pref NUMBER ]
ACTION := [ table TABLE_ID ] [ nat ADDRESS ][ prohibit | reject | unreachable ]
[ flowid CLASSID ]
TABLE_ID := [ local | main | default | new | NUMBER ]

2.网卡捆绑(网关linux+多网卡)
#modprobe bonding mod=1 miimon=200 primary=eth1 创建bond0,模式为1,主网卡eth1..
#ip addr add dev bond$ 10.0.0.1/24 设置bond0的IP
#ifenslave bond0 eth1 eth2 添加绑定的dev
注:mode=0 轮转均衡(默认模式),此模式MAC频繁切换导致交换机负载大..
mode=1 主备模式 用primary指定网卡
mode=4 常用 802.3ad模式,动态链路采集模式.此模式要求SWITCH捆绑..
miimon=ms 每隔多少毫秒查询链路是否有效.
其它参数如:
arp_interval=ms
arp_ip_target=*.*.*.*

另一种网卡捆绑固化方式:
#vi /etc/modules.conf 加入以下行
  alias bond0 bonding
系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0..
#cd /etc/sysconfig/network-scripts
#vi ifcfg-bond0
DEVICE=bond0
IPADDR=11.0.0.1
NETMASK=255.0.0.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
#vi ifcfg-eth0
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
#vi ifcfg-eth1
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
#/etc/init.d/network restart 重启网络服务验证网卡的配置信息备份网卡被加上了NOARP标记
#cat /proc/net/bond0/info 查看bond信息

3.网桥(Linux+多网卡)
配置工具 brctl http://bridge.sourceforge.net/ 源码包名:bridge-utils-*形式
安装第一步:autoconf 后类同于源码包安装..
例.linu+二网卡eth0 eth1 配置成网桥
配置前去除加入网桥的eth0 eth1的IP
#ifconfig eth0/eth1 down
#ifconfig eth0/eth1 0.0.0.0 up
#brctl addbr br0
#brctl addif br0 eth0 eth1
#ip li set dev br0 up
#brctl showmacs br0 显示网桥MAC
撤网桥:
#ip li set dev br0 down
#brctl delif br0 eth0 eth1
#brctl delbr br0
网桥接口处亦可进行流量控制,无Ip的linux网桥可有效防御外界的功击,对linux网桥机的总控安全性高...

贴上一篇网桥应用实例,此实例是网桥的一种扩张应用...
脚本名:start_bridge.sh
#!/bin/sh
brctl addbr net1
brctl addif net1 eth0
ifconfig eth0 down
ifconfig eth0 0.0.0.0 up
ifconfig net1 192.168.5.1 up
#ip ro del 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.28
ip ro del 192.168.1.0/24
#route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.5.2
ip route add default via 192.168.5.2
echo "1" > /proc/sys/net/ipv4/ip_forward

Linux高级路由需结合iptables才能充分体现其功能的强大,实际工作中的应用多半基于此,当然要熟练掌握Linux高级路由+iptables 还需进一步的加强学习和实践的应用...
#################################################################################################################################

传统路由器在网络和需求变得复杂时将无法满足需要,而一种基于策略的路由给了我们更好的选择。本文给出一个Linux下的配置实例,它在2.4G奔 腾4处理器、256M内存的计算机上运行通过,并在160多台电脑的网络环境下运转正常。

基于策略的路由比传统路由更强大,使用更灵活,它使网络管理者不仅能够根据目的地址而且能够根据报文大小、应用或IP源地址来选择转发路径。在现实的网络应用中,这种选择的自由性还是很需要的。而Linux从2.1版本的内核开始就实现了对策略路由的支持,下面就介绍一个配置实例,以期对读者有所帮助。

实例背景

如图所示,两个内部网通过远端路由器1与因特网相联,通过远端路由器2与上级网相联, Linux服务器做策略路由器,内有4块网卡。IP地址的分配情况如表所示。

在应用需求方面,内网1允许通过远端路由器1(172.22.254.254)连接因特网,但只允许Http协议、FTP协议经常性通过,其他协议分时间段开放(这样做是为了避免员工在上班时间打网络游戏和聊天),例如在上班时间(7:30~16:30)封闭,在下班时间(16:30~7:30)和周六、日全天开放。而且,内网1无权访问内网2及上级网,但可以访问内网2上的服务器。而允许内网2访问外网,上级网则只能访问内网2上的192.168.1.2服务器。而防火墙主要用来阻止外网主动访问内网,防止网络攻击。

实现过程

这里我们选择Red Hat Enterprise Linux WS 3操作系统,其内核版本是2.4.21,对策略路由已经有了很好的支持,下面的配置也以此为基础。

1.设置IP地址

首先,执行如下命令:

ifconfig eth0 10.89.9.1 netmask 255.255.255.0

ifconfig eth1 192.168.1.1 netmask 255.255.255.0

ifconfig eth2 172.22.254.14 netmask 255.255.255.0

ifconfig eth3 10.140.133.14 netmask 255.255.255.0

为了让计算机启动时自动设置IP地址,还需要分别修改/etc/sysconfig/network-scripts/下的四个文件:ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3,将ONBOOT属性设为yes,即 “ONBOOT=yes”,文件格式如下:

# Intel Corp.82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:0c:76:20:54:71

ONBOOT=yes

TYPE=Ethernet

USERCTL=yes

PEERDNS=no

NETMASK=255.255.255.0

IPADDR=10.89.9.1

如果你不喜欢命令行模式,也可以在图形模式下进行以上操作:主菜单→系统设置→网络,设好IP地址并激活,并且选中“当计算机启动时激活设 备”选项。

2.打开转发功能

执行命令“echo “1” > /proc/sys/net/ipv4/ip_forward”,或者在/etc/sysconfig/network文件中添加 “FORWARD_IPV4=yes”。

3.创建路由表

编辑 /etc/iproute2/rt_tables 文件,执行如下命令。在这里新添加了4个路由表,分别为int1 、int2、int3、int4。

# reserved values

#255 local

#254 main

#253 default

#0 unspec

# local

#1 inr.ruhep

1 int1

2 int2

3 int3

4 int4

4.添加路由

执行如下命令:

ip route add default via 10.89.9.1 table int1

ip route add default via 192.168.1.1 table int2

ip route add default via 172.22.254.254 table int3

ip route add 192.168.0.0/16 via 10.140.133.254 table int4

ip route add default via 172.22.254.254 table int4

这里在int4路由表中添加了两条路由,当进入到该路由表之后,要到192.168.0.0/16的数据包则路由到 10.140.133.254,其他数据包则路由到172.22.254.254。

5.标记(MARK)特殊包

执行如下两条命令:

iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 80,8080,20,21 -s 10.89.9.0/24 -j MARK --set-mark 1

iptables -t mangle -A PREROUTING -p udp --dport 53 -s 10.89.9.0/24 -j MARK --set-mark 2

这两条命令是将来自10.89.9.0/24的目的端口是80、8080、20或21的数据包和UDP端口是53的数据包分别标记为1或 2,然后就可以针对这些标记过的数据包制定相应的规则了。(对外发出的DNS请求用的是UDP 53端口)

为了实现防火墙的功能,只允许已经建立联机的数据包进入内网,就要把进入两个内网的已经建立联机的数据包进行标记。执行如下命令:

iptables -t mangle -A PREROUTING -p ALL -d 10.89.9.0/24 -m state --state ESTABLISHED,RELATED -j MARK --set-mark 3

iptables -t mangle -A PREROUTING -p ALL -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j MARK --set-mark 4

6.创建路由规则

执行如下命令:

ip rule add from 192.168.1.0/24 pref 11 table int4

ip rule add to 192.168.1.2 pref 21 table int2

ip rule add fwmark 4 pref 31 table int2

ip rule add fwmark 1 pref 41 table int3

ip rule add fwmark 2 pref 42 table int3

ip rule add fwmark 3 pref 51 table int1

接着执行命令“ip route flush cache”,刷新路由缓冲,让以上的这些命令立刻生效,否则需要等上一段时间。

7.实现分时间段控制

若是按照以上的配置,内网1的用户只能上网浏览网页和下载,为了对其他功能实现分时间段开放,需要做以下工作:

首先编辑命令脚本文件ropen (开放)和rclose (限制)。执行命令“vi /bin/ropen”,ropen文件内容如下:

/sbin/ip rule add from 10.89.9.0/24 pref 40 table int3

/sbin/ip route flush cache

执行命令“vi /bin/rclose”,rclose文件内容如下:

/sbin/ip rule del from 10.89.9.0/24 pref 40

/sbin/ip route flush cache

如果不习惯命令行方式,也可以在图形界面下生成这两个文件,生成文件之后,需要增加可执行属性方可执行:分别执行命令“chmod +x ropen”和“chmod +x rclose”。

接着,利用crontab命令实现自动运行。这里需要编辑一个文本文件,格式如下:

minute hour dayofmonth monthofyear dayofweek “命令”

其中每部分名称及取值范围是:minute代表分钟,取值范围是00~59;hour代表小时,取值范围是 00~23;dayofmonth代表某天,取值范围是01~31;monthofyear代表月份,取值范围是01~12;dayofweek代表星期,取值范围是01~07。若需要忽略其中某一部分就用星号(*)代替。例如,文件名设为mycron,内容可编辑如下:

30 07 * * 01,02,03,04,05 "/bin/ropen"

30 16 * * 01,02,03,04,05 "/bin/rclose"

最后执行crontab命令,将所编辑的文件mycron装载并启动,命令为“crontab mycron”。

分享到:
评论

相关推荐

    网络技能考核题库.pdf

    - **路由策略与优化**:通过设置不同的路由策略,如负载均衡、路由过滤等,可以进一步提高网络的性能和可用性。 综上所述,这份题库覆盖了计算机网络技术专业中非常重要的两个方面——交换设备和路由设备的配置与...

    路由与交换技术(一)实训报告.pdf

    路由与交换技术是网络工程中的基础,涉及到网络通信的核心环节。本实训报告主要涵盖了路由交换技术的多个方面,包括 Telnet 配置、Trunk 和 Hybrid 技术、MSTP(多生成树协议)、链路聚合以及VLAN间的三层路由。下面...

    CCNA交换综合实验

    4. **EtherChannel**:通过捆绑多个物理端口为一个逻辑端口来增加带宽和提高可靠性。 #### 拓扑结构 本次实验采用了一种典型的网络拓扑结构,其中包括两台三层交换机(SW1和SW2)以及多台模拟客户端。这些设备通过...

    ccnp bcmsn 实验

    此文档主要围绕着企业级网络设计、配置与优化中的一些核心概念和技术进行阐述,包括VLAN(虚拟局域网)、生成树协议、VLAN间路由、冗余路由协议等方面。 ### 一、VLAN(虚拟局域网) #### 1.1 概念 - **定义**:...

    CISCO CATALYST局域网交换技术

    - **快速以太通道和以太网捆绑控制器**:这些控制器用于提高数据传输效率,支持高级功能如负载均衡和故障切换。 **6.6 小结** 本章详细介绍了Catalyst5000系列交换机的组成部分和特点。通过了解这些内容,读者可以...

    华为网络工程师培训教程

    - **WAN协议**:如PPP(点对点协议)、HDLC(高级数据链路控制)等。 ##### 1.5 小结 - 网络基础知识涵盖了网络的发展历史、层次模型、TCP/IP协议体系、局域网与广域网等方面。 #### 第二章:常见网络接口与线缆 -...

    锐捷组建局域网

    链路聚合是一种将多个物理接口捆绑成一个逻辑接口的技术,它能显著提高链路带宽,并在一定程度上提升网络可靠性。锐捷网络设备提供了丰富的链路聚合功能。 **配置目的:** 通过在两台路由器(Router_1 和 Router_2...

    计算机网络

    1.5 网络常用设备:涵盖了路由器、交换机、集线器、网桥等网络设备的基本功能和工作原理。 接下来是实验部分,包括: 实验一 交换机基本配置:通过实际操作,学习如何配置交换机的IP地址、VLAN、端口安全等基本...

    附录04企业总部局域网项目实验_h3c_v3.6-b03d01.pdf

    2. **链路捆绑(Link Aggregation)**:在核心层设备之间,可能采用了链路捆绑技术,如LACP(Link Aggregation Control Protocol),以提高带宽和提供冗余路径。这确保了即使单个链路失败,数据也能通过其他链路传输...

    中小型企业网综合实验

    VTP( VLAN Trunking Protocol)用于VLAN信息的传播,以太网通道用于增加带宽和冗余,vlan间路由确保不同VLAN间的通信,portfast用于快速启用接入端口,指定根网桥和HSRP(热备份路由协议)用于冗余和故障切换,确保...

    新ACM上网行为管理产品投标参数(含截图).pdf

    所有型号均支持路由模式、网桥模式和旁路模式,提供网络部署的灵活性。此外,部分型号还支持端口扩展,如ACM-51538和ACM-51638,可扩展至34个千兆接口,以适应网络规模的扩展需求。 软件功能参数上,新ACM产品提供...

    网络工程实践课程设计报告.pdf

    3. **STP预防环路**:启用STP,配置根网桥和备份根网桥,所有末端接口设置为portfast,避免二层环路。 4. **VLAN间通信**:通过三层交换机和单臂路由实现不同VLAN间的通信。 5. **OSPF配置**:配置OSPF避免不必要的...

    锐捷网络工程师历年考试试题

    - **知识点**: 网桥工作在数据链路层,更具体来说是在**介质访问控制子层**(MAC子层)。该子层负责管理介质访问控制地址(MAC地址)和数据帧的封装。 #### 11. 不适合做汇聚层设备的交换机型号 - **知识点**: **...

    全国2004年10月高等教育自学考试计算机与网络技术基础试题课程代码00894.pdf

    2. 在数据链路层实现两个网络间互联的设备是网桥,它的作用是连接不同物理网络并过滤数据帧。 3. 采用终端方式接入因特网,无法享用多媒体功能的、图形界面的Web服务,因为这种接入方式通常不具备高级的图形界面功能...

    网络交换技术考试题(全).doc

    9. **网桥工作层**:网桥工作在OSI模型的数据链路层的介质访问控制子层,负责解决同一网络段内的通信问题。 10. **汇聚层设备**:S2126系列设备不适合做汇聚层设备,因为它们通常不具备足够的性能和高级功能。 11....

    网吧维护技术资料 合集

    5306 网吧维护\资料\xp实用技巧\防范Windows XP的安全策略.txt 2191 网吧维护\资料\xp实用技巧\隔离组件和并列共享.txt 14502 网吧维护\资料\xp实用技巧\高级技巧与应用.txt 3525 网吧维护\资料\xp实用技巧\Windows...

    计算机网络设计试题及答案.doc

    网桥 14. 在中低端路由器中,( )负责交换路由信息、路由表查找以及转发数据包。 A.数据库 B.路由算法 C . CPU D.NVROM 15. 路由器在轻载条件下,丢包率一般小于( )%。 A.0.1 B.1 C . 2 D.5 16. 计算机网络是...

Global site tag (gtag.js) - Google Analytics