7.51路由概述 1.静态路由表 2.动态路由表 下面将会介绍 Linux主机路由器的实现 7.52静态路由设置 在Linuⅸ系统中,静态路由功能是由系统内核实现的,可以使用 route命令进行配置。 实例75设置静态路由 本实例用到的网络拓扑结构如图7-55所示,用一个路由器连接两个网络,即 192168.1.0/24网络和192.168.10024网络,IP地址的分配如图所示。 注意:PCl、PC2和R上运行的都是 Linux操作系统 第1步:R中,在终端窗口依次执行图7-56中的命令,为路由器的两个网络接口绑定 IP地址 网络2 21681254 192168.10254 图7-55网络拓扑结构图 [rootelocalhost"* ifconfig eth0 192. 168 1.254 up 图7-56配置路由器网络接口 第2步:R中,执行 route命令,查看内核路由表,如图7-57所示。路由表各字段含义 见表7-7。 Lrootalocalhost-F route Kernel IP routing table Destination Gateway Flags Metric Ref Use Ifac 255.255.255.0U 255.255.255.0U 0 ethI [ khost 图7-57查看内核路由表 表7-7路由表各字段含义 含义 Destination 目的网络或目的主机 网关地址,若无则用“*”表示 由路由的后台进程动态安装
7.5.1 路由概述 1.静态路由表 2.动态路由表 下面将会介绍 Linux 主机路由器的实现。 7.5.2 静态路由设置 在 Linux 系统中,静态路由功能是由系统内核实现的,可以使用 route 命令进行配置。 实例 7-5 设置静态路由 本实例用到的网络拓扑结构如图 7-55 所示,用一个路由器连接两个网络,即 192.168.1.0/24 网络和 192.168.10.0/24 网络,IP 地址的分配如图所示。 注意:PC1、PC2 和 R 上运行的都是 Linux 操作系统。 第 1 步:R 中,在终端窗口依次执行图 7-56 中的命令,为路由器的两个网络接口绑定 IP 地址。 图7-55 网络拓扑结构图 图7-56 配置路由器网络接口 第 2 步:R 中,执行 route 命令,查看内核路由表,如图 7-57 所示。路由表各字段含义 见表 7-7。 图7-57 查看内核路由表 表 7-7 路由表各字段含义 字段 含义 Destination 目的网络或目的主机 Gateway 网关地址,若无则用“*”表示 Genmask 子网掩码 Flags D 由路由的后台进程动态安装
目的是一个主机 由路由的后台进程修改 R恢复动态路由产生的表项 路由是活动的 拒绝路由 路由项引用次数,注: Linux内核没使用 查找路由项的次数 第3步:图7-57所示的路由表中,前两条记录说明系统自动添加了2个网络的路由表 项。如果系统没有自动添加这两个表项,可以使用 route命令手工添加,如图7-58所示 rootglocalhost:- [rootolocalhost"# route add -net 192. 168.1.0/24 etho [rootolocalhost* route add -net 192. 168 10.0/24 ethI [rootolocalhost -# 添加路由表项 第4步:PCI中,在终端窗口中执行图7-59所示的命令。第1条命令为网络接口绑定 IP地址,第2条命令为本机添加默认网关,第3条命令用来査看内核路由表。请读者自行 分析该表 第5步:PC2中,在终端窗口中依次执行命令# ifconfig eth0192.168.10.1up和# default gw 192. 168.10 254 [rootolocalhost F ifconfig etho 192.168.1.1 up [rootolocalhost" route add default gw 192.168.1.254 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168,1,0 255,255,255,0U 0 etho default 192.168.1.2540.0,0.0 [rootolocalhost* 图759为PC配置网络接口并且添加默认网关 第6步:PC1中,在终端窗口中执行ping命令,如图7-60所示,没有ping通另一个网 络中的一台主机,为什么?应该是路由器的问题,即不能转发数据包 root@localhost: Irootolocalhost-= ping 192.168.10.1-c4 PING192,168.10,1(192,168,10,1)56(84) bytes of data From 192. 168. 1. 1 icmp seq=2 Destination Host Unreachable From 192. 168. 1. 1 icmp_ seq=3 Destination Host Unreachable From 192 168.1.I icmp seq=4 Destinat ion Host Unreachable 4 packets transmitted. 0 received, +3 errors. 100% packet loss,, time 3000ms pipe 3 PC2,ping不通 第7步:R中,执行echo"1">/ proc/sys/net/ipv4 ip forward命令,开启内核包转发功能 第8步:PCI中,如图7-61所示,再次ping另一个网络中的一台主机,显示结果表示 可以ping通,即路由器提供了正常的包转发功能
H 目的是一个主机 G 使用网关 M 由路由的后台进程修改 R 恢复动态路由产生的表项 U 路由是活动的 ! 拒绝路由 Metric 路由距离 Ref 路由项引用次数,注:Linux 内核没使用 Use 查找路由项的次数 Iface 该路由表项对应的网络接口 第 3 步:图 7-57 所示的路由表中,前两条记录说明系统自动添加了 2 个网络的路由表 项。如果系统没有自动添加这两个表项,可以使用 route 命令手工添加,如图 7-58 所示。 图7-58 手工添加路由表项 第 4 步:PC1 中,在终端窗口中执行图 7-59 所示的命令。第 1 条命令为网络接口绑定 IP 地址,第 2 条命令为本机添加默认网关,第 3 条命令用来查看内核路由表。请读者自行 分析该表。 第 5 步:PC2 中,在终端窗口中依次执行命令#ifconfig eth0 192.168.10.1 up 和#route add default gw 192.168.10.254。 图7-59 为PC1配置网络接口并且添加默认网关 第 6 步:PC1 中,在终端窗口中执行 ping 命令,如图 7-60 所示,没有 ping 通另一个网 络中的一台主机,为什么?应该是路由器的问题,即不能转发数据包。 图7-60 ping PC2,ping不通 第 7 步:R 中,执行 echo "1" > /proc/sys/net/ipv4/ip_forward 命令,开启内核包转发功能。 第 8 步:PC1 中,如图 7-61 所示,再次 ping 另一个网络中的一台主机,显示结果表示 可以 ping 通,即路由器提供了正常的包转发功能
oot@localhost: [rootolocalhost"# ping 192.168.10.1-c 4 PING192,168,10.1(192.168.10,1)56(84) bytes of data 4 bytes from 192. 168. 10.1: icmp seq=l ttl=64 time=0. 131 ms 4 bytes from 192. 168.10.l: icmp seq=2 ttl=64 time=0. 127 ms 64 bytes from 192. 168. 10.1: icmp_seq=3 tt1=64 time=0. 130 ms 64 bytes from 192.168.10.1: icmp seg =4 ttl=64 time=0. 121 ms 192. 168.10, 1 ping statistics 4 packets transmitted, 4 received. 0% packet loss, time 2999ms rtt min/avg/max/mdev=0.121/0.127/0.131/0.008ms [rootolocalhost= 图7-61可ping通PC2 753动态路由设置 在Iinuⅸ系统中,要实现动态路由的功能,需要运行路由选择守护进程。 Linux支持的 路由选择守护进程有 routed、 gated和 zebra。下面将介绍 zebra o Zebra是一个以GNU版权方式发布的软件,可以使用 Zebra将 Linux系统设置成一台功 能完备的路由器。 Zebra支持的路由选择协议有:RPvl、RPV2、 RIPng、 OSPFv3、BGP-4 和BGP4+等 可以从htp:/www.zebra.org下载最新版本zebra-095atar.gz,然后依次执行如下命令, 对 zebra进行安装 # /configure --enable-vtysh make #f make install cd /usr/local/etc 执行如图7-62所示的后三条命令创建相关配置文件 [rootolocalhost etc = dir bgpd conf sample ospf6d conf sample rid. conf, sample vtysh conf sample bgpd. conf, sample2 ospfd conf sample ripngd conf sample zebra. conf sample [rootolocalhost etc l pwd /usr/local/etc [rootolocalhost etc= dir bg pd. conf, sample ospf6d conf sample rid. conf, sample vtysh conf sample bgpd. conf. sample2 ospfd conf sample ripngd conf sample zebra. conf sample [rootolocalhost etc cp zebra. conf, sample zebra con [rootolocalhost etc cp ripd conf sample ripd conf [rootolocalhost etc] cp vtysh. conf, sample vtyshconf Irooteloca lhost etc E 图7-62创建相关配置文件 实例7-6设置动态路由 本实例用到的网络拓扑结构如图7-63所示
图7-61 可ping通PC2 7.5.3 动态路由设置 在 Linux 系统中,要实现动态路由的功能,需要运行路由选择守护进程。Linux 支持的 路由选择守护进程有 routed、gated 和 zebra。下面将介绍 zebra。 Zebra 是一个以 GNU 版权方式发布的软件,可以使用 Zebra 将 Linux 系统设置成一台功 能完备的路由器。Zebra 支持的路由选择协议有:RIPv1、RIPv2、RIPng、OSPFv3、BGP-4 和 BGP-4+等。 可以从 http://www.zebra.org 下载最新版本 zebra-0.95a.tar.gz,然后依次执行如下命令, 对 zebra 进行安装: # tar xzvf zebra-0.95a.tar.gz # cd zebra-0.95a # ./configure --enable-vtysh # make # make install # cd /usr/local/etc 执行如图 7-62 所示的后三条命令创建相关配置文件。 图7-62 创建相关配置文件 实例 7-6 设置动态路由 本实例用到的网络拓扑结构如图 7-63 所示
网络2 192168:10253 192168,1 100254 1926811● 192143 1921681001 图7-63网络拓扑结构图 第1步:R1、R2中,分别执行# zebra&命令#ripd&命令,启动 zebra和ripd 第2步:R1中,在终端窗口中执行 tosh命令,开始本地配置 zebra,配置过程如图7-64 7-66、7-67所示,也可以远程配置 zebra,如图7-65所示。 第3步:R2中,执行与第2步中类似的操作,应该注意:他们的IP地址和网络地址有 所区别。 第4步:PC1中,为网络接口绑定图示的IP地址,添加的默认网关为1921681254 第5步:PC2中,为两个网络接口分别绑定图示的IP地址,添的默认网关为 192.168.10.254或192.168.10253 第6步:PC3中,为网络接口绑定图示的P地址,添加的默认网关为192.168.100254 第7步:PCⅠ中,执行#ping192.168.1001命令,请读者观察并分析该命令的执行情况 [rootolocalhost etcI# vtysh Hello, this is zebra (version 0. 95a) Copyright 1996-2004 Kunihiro Ishiguro localhost. localdomain> enable localhost. localdomain= configure terminal localhost localdomain(config)* interface etho ocalhost, localdomain(config-if)= ip address 192 168.1. 254/24 localhost. localdomain(config-if)=exit localhost. localdomain(config)= interface eth1 localhost. localdomain(config-if)= ip address 192.168. 10.254/24 localhost localdomain(config-if)=exit localhost, localdomain(config )= router rip localhost. localdomain(config-router)# network 192. 168 1.0/24 localhost localdomain(config-router )F network 192.168 localhost localdomainconfig-router )=end loca lhost. localdomain 图764本地配置 zebra
图7-63 网络拓扑结构图 第 1 步:R1、R2 中,分别执行#zebra &命令#ripd &命令,启动 zebra 和 ripd。 第 2 步:R1 中,在终端窗口中执行 vtysh 命令,开始本地配置 zebra,配置过程如图 7-64、 7-66、7-67 所示,也可以远程配置 zebra,如图 7-65 所示。 第 3 步:R2 中,执行与第 2 步中类似的操作,应该注意:他们的 IP 地址和网络地址有 所区别。 第 4 步:PC1 中,为网络接口绑定图示的 IP 地址,添加的默认网关为 192.168.1.254。 第 5 步:PC2 中,为两个网络接口分别绑定图示的 IP 地址,添的默认网关为 192.168.10.254 或 192.168.10.253。 第 6 步:PC3 中,为网络接口绑定图示的 IP 地址,添加的默认网关为 192.168.100.254。 第 7 步:PC1 中,执行#ping 192.168.100.1 命令,请读者观察并分析该命令的执行情况。 图7-64 本地配置zebra
rootglocalhost:/usr/localetc Lrootelocalhost etc telnet 192.168. 1.254 2601 Trying192.168.1.254 Connected to192.168,1.254(192.168.1.254) Hello, this is zebra (version 0. 95a) Copyright 1996-2004 Kunihiro Ishiguro User Access Verification Password Router> enable 图7-65远程配置 zebra rootolocalhost/usr/local/etc localhost, localdomain- show ip route Codes: K- kernel route. C- connected. s- static, R-RIP. 0- OSPF B- BGP, > se lected route.- FIB route K>0.0.0.0/0 is directly connected, pppo C> 125.40 168.1/32 is directly connected. pppo C> 127.0.0.0/8 is directly connected, lo K>169.254.0.0/16 is directly connected, eth1 >192.168.1.0/24 is directly connected, etho 92.168, 10.0/24 is directly connected, eth1 loca lhost. localdomain 图7-6显示路由信息 Router copy running-config startup-config Configuration saved to /usr/local/etc/zebra. conf Tm 图7-67保存配置信息
图7-65 远程配置zebra 图7-66 显示路由信息 图7-67 保存配置信息