路由相关题目解析
路由相关题目解析
直连路由和非直连路由加入路由表的条件分别是什么?
非直连路由:配置静态路由或运行动态路由选择协议,这一点没什么好说的,非常好理解。直连路由的这个就有点意思了,接口状态UP,要有IP地址和子网掩码,这一点在专业的网络设备上确实如此。
对这个问题稍微深刻一点的理解,我认为是这样,当我们在一个加电的网卡上(实际这个描述并不准确,IP地址并不是配置在网卡上,而是系统内部),配置上IP+掩码之后,对电脑来说意味着什么?对电脑意味着在添加一个直连的路由条目,这个路由条目怎么添加呢?电脑要根据掩码算于网络位,比如IP是10.100.14.11/24,那这个路由条目应该这么添加:
route add -net 10.100.12.0/24 <网卡>
我在windows和linux的路由表都多次验证过这个理论,而且在做网络编程的时候要对这个有清醒的认识。比如我们公司的一个终端盒子产品,初开发时就仅仅有一个LINUX内核,而且这个内核不完整,网络相关的模块要开发自己编写,在程序编写阶段就必须这么一个判断逻辑,根据用户配置的IP和掩码计算出网络位,然后将网络位指向的网段通过linux上的route add -net这个命令添加到系统当中。
还有一点需要说的,就是linux如果不指定掩码,仅有IP地址和接口UP这两个条件的话,其实也不会报错,直连路由也会正常,在linux的配置文件当中,如果我们不指定PREFIX或NETMASK就直接重启网络服务的话,LINUX系统会根据IP地址判断出IP的类别来,如果是A类就自动补8位的掩码,B类就补16的掩码,C类就补24位掩码。
# 当前两个网卡都是up的
[root@template ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:d4:06:db brd ff:ff:ff:ff:ff:ff
inet 10.100.0.4/8 brd 10.255.255.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::6ce6:89a4:63e2:73b5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:d4:06:e5 brd ff:ff:ff:ff:ff:ff
inet 10.100.12.37/24 brd 10.100.12.255 scope global noprefixroute dynamic eth1
valid_lft 85529sec preferred_lft 85529sec
inet6 fe80::a77d:63dc:c054:22e0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@template ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.100.12.1 0.0.0.0 UG 101 0 0 eth1
0.0.0.0 10.100.0.1 0.0.0.0 UG 102 0 0 eth0
10.0.0.0 0.0.0.0 255.0.0.0 U 102 0 0 eth0
10.100.12.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
# 现在down一个网卡,发现该网卡的默认路由和网段路由都消失了。
[root@template ~]# ifconfig eth0 down && route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.100.12.1 0.0.0.0 UG 101 0 0 eth1
10.100.12.0 0.0.0.0 255.255.255.0 U 101 0 0 eth1
静态路由的两种配置方式是什么?
答:
- Ip route+目的网络网络号+掩码出接口+下一跳地址
- Ip route-static+目的网络网络号+掩码出接口+下一跳地址
这样的答案也未免太没有灵魂了,干瘪~
这个问题,我一看就挺熟悉呀,因为在《HCNP路由交换学习指南》当中作者有过详细的阐述,我通过印象再简单写一下;
在不同的网络环境当中我们配置静态路由的方式也是不同的,大致可以分为两种网络环境,点到点和BMA、NBMA网络,如果在点到点的网络当中,我们指定完IP和掩码之后,即可指定下一跳IP、也可以直接指定网卡,也可以两者都指定。
但在MA网络环境当中,比如在一个局域网环境当中,这时候就不能仅指定网卡,因为网络里面的主机有很多,必须要指定下一跳IP。
有一个有意思的地方可以提一下,如果我们在MA网络环境当中就不指定下一跳IP,就非指定一个接口,这对路由器意味着什么?其实这么配置也能配置上,路由器也不会报错,但是这样路由器就会认为目标网络是自己接口的直连网络,当真的收到该网络的报文需要转发时,就会在该接口下直接发送ARP广播。
接口down了之后,路由表项的状态
4.静态路由的什么参数可以在不使用清空路由表命令的情况下,保证不管路由对应的出接口是不是up状态,静态路由都会一直存在于路由表中。
A.track
B. distance
C.permanent
D. preference
答:C
在默认的情况下,当一条路由的出接口down了之后,路由条目也会在路由表中消失。
[Huawei]ip route-static 192.168.100.0 255.255.255.0 192.168.0.2 permanent
[Huawei]ip route-static 192.168.200.0 255.255.255.0 192.168.0.2
[Huawei]dis ip routing-table protocol static
Static routing table status : <Active>
192.168.100.0/24 Static 60 0 RD 192.168.0.2 GigabitEthernet
0/0/0
192.168.200.0/24 Static 60 0 RD 192.168.0.2 GigabitEthernet
0/0/0
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]shutdown
[Huawei-GigabitEthernet0/0/0]dis ip routing-table protocol static
Static routing table status : <Active>
192.168.100.0/24 Static 60 0 D 0.0.0.0 NULL0
Static routing table status : <Inactive>
192.168.200.0/24 Static 60 0 192.168.0.2 Unknown
当我们在华为路由器上进行查看时,发现,没有”永久“选项的并没有消失,只不过是从active变成了inactive了。
静态路由过滤
5.通过静态路由协议可以实现以下哪些协议的路由过滤?
A. OSPF
B. EIGRP
C. RIP
D. IS-IS
E. BGP
答:BCE
这个实验我没有做过,我先说一下我的猜想和思考,然后再做一下实验进行验证一下。
假设三个路由器,R1、R2、R3,全都运行了RIP,R3顺利获取了R1接入的1.1.1.0网段的路由,这时候,R2开始捣乱,R1手动设置了一个静态路由将去往1.1.1.0网段的路由下一跳乱指了一个,这样的话,在R2的路由表当中,RIP的路由表优先低比静态要低,路由表当中去往1.1.1.0网段的路由只有一条静态的,那R3还能正常转发吗?其实是不能了,因为RIP路由协议只传递路由表当中的通过RIP协议学到的,可是当R2的关于1.1.1.0的RIP表项被静态路由给顶掉了之后,路由表里面关于1.1.1.0的RIP表项就没有了,R2不向R3传递,所以R3就没有关于1.1.1.0的路由了。
RIP都验证过了,那OSPF、ISIS、BGP、EIGRP呢?这个验证起来太麻烦了,按理说所有的动态路由协议都应该有效的呀,为什么只有B、C、E呢?其实这个问题,大概一猜也差不多,因为OSPF和IS-IS并不会直接传递路由表,只有相互传递路由表的路由协议才会受此影响,换句话说,只有距离矢量路由协议和会受此影响,那RIP、EIGRP、和BGP都是距离矢量路由协议自然受此影响 。
这个实验我暂时没有做过,后面一定要做一下的,如果只听别人却不自己动手做,那感受与自己亲身验证的是非常不同的。