路由

查看 Linux 内核路由表


tracert  查看路由跳转

使用下面的 route 命令可以查看 Linux 内核路由表。

# route

Destination  Gateway        Genmask          Flags Metric Ref Use Iface

192.168.0.0   *                   255.255.255.0   U        0          0     0    eth0

169.254.0.0   *                   255.255.0.0       U        0          0     0    eth0

default        192.168.0.1   0.0.0.0                UG     0          0     0    eth0

route 命令的输出项说明

输出项             说明 

Destination      目标网段或者主机 

Gateway          网关地址,”*” 表示目标是本主机所属的网络,不需要路由    

Genmask         网络掩码 

Flags               标记


一些可能的标记如下:

 U — 路由是活动的

 H — 目标是一个主机

 N — 目标时某个网段

 G — 路由指向网关 

 R — 恢复动态路由产生的表项 

 D — 由路由的后台程序动态地安装 

 M — 由路由的后台程序修改

 ! — 拒绝路由 

Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)。 

Ref 路由项引用次数(linux 内核中没有使用)。

Use 此路由项被路由软件查找的次数 。

Iface 该路由表项对应的输出接口 。


***********************************************************************************************************************************

3 种路由类型

主机路由

      主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的Flags字段为H。例如,在下面的示例

中,本地主机通过IP地址192.168.1.1的路由器到达IP地址为10.0.0.10的主机。 

Destination Gateway     Genmask              Flags   Metric Ref Use Iface

-----------      -------           -------                    -----      ------    ---   ---    -----

10.0.0.10   192.168.1.1 255.255.255.255  UH       0         0     0     eth0

网络路由

      网络路由是代表主机可以到达的网络。网络路由的Flags字段为N。例如,在下面的示例中,本地主机将发送到网

络192.19.12.0 的数据包转发到IP地址为192.168.1.1的路由器。 

Destination Gateway       Genmask          Flags Metric Ref Use Iface
-----------      -------             -------                -----    -----     ---   ---    -----

192.19.12.0   192.168.1.1  255.255.255.0  UN     0        0     0      eth0

默认路由

       当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默

认路由的Flags字段为G。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器。 

Destination Gateway      Genmask Flags  Metric Ref Use Iface
-----------      -------            -------        -----     ------   ---   ---    -----  

default        192.168.1.1  0.0.0.0     UG     0         0    0      eth0


***********************************************************************************************************************************

配置静态路由

route 命令

设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是: 

# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:

add : 添加一条路由规则

del : 删除一条路由规则

-net : 目的地址是一个网络

-host : 目的地址是一个主机

target : 目的网络或主机

netmask : 目的地址的网络掩码

gw : 路由数据包通过的网关

dev : 为路由指定的网络接口


route 命令使用举例

添加到主机的路由 

# route add -host 192.168.1.2 dev eth0:0

# route add -host 10.20.30.148 gw 10.20.30.40

添加到网络的路由 

# route add -net 10.20.30.40 netmask 255.255.255.248 eth0

# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41

# route add -net 192.168.1.0/24 eth1


添加默认路由 

# route add default gw 192.168.1.1


删除路由 

# route del -host 192.168.1.2 dev eth0:0

# route del -host 10.20.30.148 gw 10.20.30.40

# route del -net 10.20.30.40 netmask 255.255.255.248 eth0

# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41

# route del -net 192.168.1.0/24 eth1

# route del default gw 192.168.1.1


***********************************************************************************************************************************

http://blog.chinaunix.net/uid-9620812-id-1643072.html

http://blog.csdn.net/wuruixn/article/details/8515227

***********************************************************************************************************************************

设置包转发

       在 CentOS 中默认的内核配置已经包含了路由功能,但默认并没有在系统启动时启用此功能。开启 Linux的路由

功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux内核的

数据包转发功能可以使用如下的命令。 

# sysctl -w net.ipv4.ip_forward=1

      这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,

需要将下面的行写入配置文件/etc/sysctl.conf。 

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1


同网段和不同网段设备通信过程详解

在当今的以太网络通信中,在IP数据包中有两个必不可少的地址,那就是IP地址和网卡地址(即MAC地址),在数据包中,无论是IP地址还是MAC地址,都有源地址和目标地址,因为通信是双方的,所以就必须同时拥有双方的地址!在同一IP网络中通信,将会发生以下事件:

主机A与主机B通信,这时主机A肯定首先要封装这些需要发给主机B的数据包,那么对于主机A来说,自己的IP地址和MAC自己肯定能够轻易得到,对于主机 B的IP地址这时主机A也应该知道,要不然它就不清楚自己将要和谁通信,当有了自己的IP地址,MAC地址以及主机B的IP地址后,主机A在数据包中可以 正确地写上源IP地址,目标IP地址,接下来的工作就是写入自己的MAC地址(即源MAC),最后还必须正确写入目标主机B的MAC地址,可这时主机A才 发现自己根本没有目标主机B的MAC地址,那该怎么办呢?这时主机A就通过比较上面已经封装好的源IP和目标IP,通过子网掩码计算一下,(1)发现源IP和目 标IP恰好在同一个IP网络内,那么它想要得到目标主机B的MAC地址就有办法了,首先主机A就向本网段发过一个ARP请求,这个ARP请求包中包括主机 A的源IP地址,源MAC地址,目标主机B的IP地址,而目标MAC地址为广播MAC地址(全部为F),因为我们要找的就是目标MAC,所以这里用广播 MAC地址,又因为是以太网,所以整个局域网的所有主机都能收到这个请求MAC地址的数据包,当然主机B也能收到,因此在主机B收到此ARP请求后,立即 构建一个包括自己的MAC地址的ARP回应包,回应给主机A,当主机A收到这个ARP回应后,终于完成了找寻目标MAC的重大任务,从而把目标主机B的 MAC地址正确封装进上面还未封装结束的正准备发给主机B的数据包,在这时,源IP和源MAC以及目标IP和目标MAC都已正确存在于数据包中,那么这里 主机A向网络内发出这些数据包,因为目标地址在本网段,所以本网段所有主机都能收到这个数据包(这是以太网的特性),最后只有真正的目标主机B能够打开这 些数据包,在此,同网段两台主机之间的通信就此圆满结束!在这里应该注意另外一个问题,因为主机A要寻找的目标主机B在同一网络,所以主机A能够通过 ARP得到目标主机B的MAC地址,从而完成通信,(2)当主机A在封装数据包时检测到目标主机并不在本网段,在这时,数据包不能把目标主机的MAC地址顺利封 装进去,那么就用到另一种方法,那就是网关,主机A在准备发向主机B的数据中,封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址,数 据包封装到这里,主机A就利用上面得到同网段目标主机B的方法去请求得到网关的MAC地址,同样也是用ARP去广播,因为网关必须和本机在同一网段,理所 当然,网关能够收到这个ARP请求并能正确回应给主机A,这时主机A在数据包中封装好自己的IP地址和MAC地址,同时也封装好目标主机B的IP地址和网 关的MAC地址,把数据包从网卡发出去,因为目标MAC是网关的,所以网关收到这个数据包后,发现目标MAC是自己,而目标IP却是别人,所以它不可以再 往上打开这个数据包,它要做的工作就是把这些数据包发给下一跳路由器(如果网关自身就是一台路由器的话),如果网关是一台普通PC,那么它就发给路由器, 让路由器把这些数据包正确传输到远程目标网络,到达远程网络后,它们的网关再将数据包发给数据包中的目标IP,即源主机A苦苦寻找的目标主机B,从而真正 结束不同网络之间的通信,回应的数据包也是用同样的方法到达目的地,在这里,还需要注意的是,当网关把数据包发给下一跳路由器时,这个数据包必须由网关把 目标MAC改成下一跳路由器的MAC地址(通过ARP得到),否则下一跳路由器收到目标MAC不是自己的数据包,会丢弃不予理睬,下一跳路由器再发给下一 跳路由器同样要把目标MAC地址改为下一跳路由器的MAC地址再发出去!

最后还可以总结出:在网段通信时,数据包中的地址就是源IP,目标IP,源MAC,目标MAC,根本用不到网关,而当检测到需要把数据包发到远程网络时, 这时,目标MAC就必须改变了,在还没有出内网时,目标MAC必须写成网关的MAC地址发出去,当网关收到时,再把目标MAC地址改成下一跳的MAC地址 发出去,而源IP和源MAC以及目标IP不曾改变,就算到达了公网上,目标MAC仍然在不断改变着,直到最后,这个数据包到达目标IP的网络,最终通信结束!


1.ARP
首先讲到ARP,ARP是地址解析协议,它的作用是在以太网环境下,通过3层的IP地址来找寻2层的MAC地址,得到一张ARP缓存表。转发数据的时候根据ARP缓存表来进行传输。下图详细说明数据传输时ARP是如何一步步操作的。在配置IP地址后,当PC去ping R1的时候,你会发现第一个丢包了。像这样
R1#ping 192.168.1.2

第一个包其实是做ARP请求去了。PC发现ping的是本网段,会发出ARP广播,向R1请求192.168.1.2的MAC地址。得到回应后ARP表会添加ARP请求得来的相应内容。

PC:这 个时候PC再去ping 10.1.1.3会发现ping的不是本网段,由于PC没有路由功能所以不知道该往哪里发送,会按照之前已经配好的默认网关发送出去,一般默认网关会配置 成路由器的接口IP,在这里是192.168.1.2。查看ARP缓存表发现了192.168.1.2对应的MAC地址,就把包交给路由器处理了。

R1:路由器收到去往10.1.1.0网段的数据包会查询路由表,首先查看路由表发现数据该发往FastEthernet 0/1
#show ip route
C    10.1.1.0 is directly connected, FastEthernet0/1
然后查看ARP表是否有下一跳10.1.1.3的MAC地址信息,如果有则按MAC把数据发到下一跳;如果没有则发出ARP查询,查询后获得下一跳地址10.1.1.3的MAC地址,存到ARP缓存表中,然后转发。

2.代理ARP
“什么是代理ARP?代理ARP就是通过使用一个主机(通常为router),来作为指定的设备对另一设备的ARP请求作出应答。”这个可以说是一个官方解释了。大家可以用同一个拓扑来验证一下,在这里我们最常使用Router关闭路由功能来模拟成PC完成这个实验(左方PC为路由器模拟,在做此实验前请把前一实验的ARP信息清除,建议重启)。PC上不配置默认网关,此时用PC去ping 192.168.1.2和10.1.1.3。PC发出ARP请求10.1.1.3的MAC地址,R2以自己的FastEthernet0/0口地址代理R3去回应PC,告诉PC自己的FastEthernet0/0就是10.1.1.3的MAC地址。

结论:有默认网关的的时候PC按默认网关走,没有默认网关的时候路由器通过代理ARP完成通信。到目前为止一切都看起来那么的合理,那么的顺利。这个实验是一些培训班常做的实验之一。其实,错了!

问题出在哪里?问题就出在我们是用一台路由器去模拟PC。不管是否关闭路由功能,它始终不是PC,它处理数据的方式与PC也不一样。请大家思考一下,如果是一台PC,在没有默认网关的情况下去ping一个非本网段地址,会出现什么情况?

在没有默认网关的情况下ping一个非本网段地址,显示目标网络不可达,然后直接丢包,根本不会发出ARP查询。
PC在什么时候会发出ARP查询呢?ping一个本网段地址的时候(大家可以抓包来验证一下)。其实就是思科文档的这种情况了:

3.三层交换机不同网段关闭路由互通问题
破烂熊的问题:
一个三层交换机,f0/1设置成指定为pc同网段的网关的IP,f0/2指定为另一个网段的ip,关闭交换机的路由功能.pc可以ping通f0/2吗?

破烂熊的答案:
我用dy做实验是可以通的,
pc 的目的和自己是不同网段的,pc通过arp学习到网关的mac后,发ping请求给网关,这个ping请求包是一个三层包,这个数据包的格式是 目标mac(网关的),源mac(pc的), 源IP(pc的),目标ip(f0/2的IP) 网关收到此包后检测数据帧的头部,发现是给自己的,于是解封装,除去帧头部,然后查看ip头部,网关发现目标IP和自己不是处于同一网段,由于三层已经没 有了路由功能,所以没有去查找路由表,正常情况下是先查找路由表的.在有过第一次的转发数据记录后才会去查看arp表而不是路由表,要不然一收到和自己不 网段的包就去找路由表,那arp表有啥用?于是通过查找找到了此IP已经被解析的mac,因为是交换机自身的接口配的IP的地址,当然是存在在路由器 arp中的.也就是说这个目标的ip是不需要学习就可以找到的.查找到后就对帧进行重新封装.然后返回给pc,
纯个人见解,有不同看法的请指证......


个人认为非常正确,说的很透彻。但是有一点保留意见,“在有过第一次的转发数据记录后才会去查看arp表而不是路由表,要不然一收到和自己不网段的包就去找路由表,那arp表有啥用?”
这里我已经修正过来了.路由器收到数据包还是先查路由表,然后查看发出去的下一跳地址ARP缓存表中是否有MAC地址,有则转发.

还想补充一点的是,三层交换机只有一个MAC地址


个人总结:路由问题总是涉及到 下一条ip(往往可以确定) 、出接口、 下一跳mac,只有依次确定下一跳ip,再确定出接口,最终确定下一跳mac,路由问题才算完成。

1)下一跳ip都是用户通过dns解析到了,所以都能确定;
2)出接口实际上就是下一跳ip从系统的那个接口出去,这里主要涉及路由,主要分为:
    a)如果下一跳ip和系统某个网卡的地址处于统一网段(ipaddr & mask == ipnet),那出接口就是这个网卡对应的接口;
         此时,若在邻居缓存表中没有找到下一跳mac,ipv4就会发出ARP请求包,来请求对方的mac。
    b)如果存在默认路由,就从默认路由对应的接口出去;
         此时,ipv4就不会发送ARP请求包,而是把缺省网关的mac作为下一跳mac,直接将数据包发出去。
         ipv6由于采用了不同的发包算法,先从目的缓存中找出接口和PMTU,然会在邻居缓存中找下一跳对应的mac;
              若找不到相应的mac,v6协议栈就会构造邻居请求包请求对方的mac
         这个过程,与下一跳ip是否与某个网卡接口同一网段或还是走默认路由无关。
    c)出接口找不到,发不出去包;
3)下一跳mac主要是封装以太头时下一跳ip对应的mac如何填写:
   a)如果系统邻居缓存表存在ip对应的mac,就直接用这mac;
   b)若缓存表中没有,ipv4就发送arp, ipv6就发送neighbor solicitation;
   c)若学到mac,则能发出去;反之,则不能发出去

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

试验
PC1的配置:
IP:192.168.1.200
mask:255.255.255.0
getway:1.1.1.1 

PC2的配置:
IP:1.1.1.1
mask:255.255.255.0
getway:192.168.1.200

当PC2刚启动的时候会发送3个Gratuitous ARP广播包来检测是否存在IP冲突。PC1收到PC2的ARP广播,但并不将PC2的主机IP和MAC加进自己ARP缓存中。
我们在PC2上ping PC1的IP(ping 192.168.1.200)。

PC2首先将目标IP 192.168.1.200与自己路由表比对,在本地路由表中找了到一条默认路由:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    192.168.1.200          1.1.1.1     10
该路由条目的下一条(网关)为192.168.1.200,于是PC2查看本机ARP表缓存是否存在网关的ARP条目,但并没有找到相应网关条目,所有 PC2发出寻找网关的的ARP广播。PC1收到该ARP广播查询包,于是PC1向PC2发送ARP应答的单播包,这个应答包中的sender mac就是PC1的MAC地址。PC2收到PC1的应答包后,提取sender ip和sender mac值,加入本地ARP缓存。这样PC2就知道了网关MAC地址。(注意我们要到达的目标IP为192.168.1.200,网关IP也为 192.168.1.200。但我尽量用“网关”这个词语,就是要请大家留意PC2发送ARP包的目的不是寻找PING包的目的地址,而是寻找网关地址。 这里查找网关的步骤属于OSI 2层通信。)

于是PC2在PING包,即ICMP包数据段前部加上IP报头,IP报头的Distination IP:192.168.1.200,source ip:1.1.1.1(路由条目的interface字段提取),再在IP报头前部封装以太网帧头,Distination mac:网关192.168.1.200的MAC(从ARP缓存中提取),sorce mac为路由条目的interface字段提取的1.1.1.1接口MAC。于是PC2拿到这封装好了的ICMP包,交给路由条目中interface字 段指定的接口1.1.1.1,就这样,PC2将ICMP包顺利传递到了网关。(注意本步骤我同样用“网关”这个词。该过程属OSI 3层通信)。

PC1收到该ICMP包,从IP报头的source ip字段提取出1.1.1.1,再从以太网帧头中提取sender mac:PC2的MAC,将PC2的IP和PC2的MAC加进自己ARP缓存中。

PC1再次分析ICMP包,提取IP报头的Distination ip 192.168.1.200与自己IP比对,发现刚好匹配。PC1认为该ICMP请求包是给自己的。于是PC1就准备给PC2一个ICMP应答。(上诉步骤与实验二步骤相同)

于是PC1在ICMP应答包的数据段前部加上IP报头,IP报头的Distination IP:从PC2 ICMP请求包IP报头source ip字段提取;
PC1将从PC2 ICMP请求包IP报头source ip字段提取到的1.1.1.1与自己路由表比对,找到一条默认路由:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0          1.1.1.1   192.168.1.200       20
该路由下一条(网关)为1.1.1.1。于是PC1查看本机ARP缓存是否存在网关的ARP条目。
Interface: 192.168.1.200 --- 0x30003
  Internet Address      Physical Address      Type
  1.1.1.1               00-0c-29-c3-0d-92     dynamic
在ARP缓存中找到了相应条目。于是PC1提取(网关)对应的MAC作为ICMP应答包以太网帧帧头的Distination mac。再从路由条目interface字段192.168.1.200对应自己网卡的mac作为ICMP应答包帧头的source mac。于是PC1拿这个封装好的ICMP应答包,交给路由条目中interface字段指定的接口192.168.1.200。就这样PC1将ICMP应答包顺利传递到了网关。(注意用词也是“网关”。该过程也属于OSI 3层通信)。

PC2收到ICMP应答包,提取IP报头的Distination ip 1.1.1.1与自己IP比对,发现刚好匹配。

到此一次完整的PING过程就完成,PC1 ping PC2 成功!。


同网段不同掩码之通信原理

这两天发现51cto论坛里版主提出的一个简单问题,但看似简单,实则复杂。在此把心得写一下 原题是:同一vlan下主机的掩码不相同,他们之间能互通吗?同一vlan下主机的掩码不相同,他们之间能互通吗?比如1.1.1.2/24和 1.1.1.3/25,,网关是:1.1.1.1/24这两个主机中有一台不小心配错的掩码,请问他们能ping通网关并上网吗?他们之间能互访吗?   在 经过反复思考与实验后终于得出结论:物理层不关心源mac是谁,只关心目标mac是不是自己的,是自己的就接收,无法分析上层协议。arp属于二层协议, 在请求与发送数据包时不关心三层ip地址是否合法,只是记下目标mac与ip。解封装以下层协议为主,不在乎上层,封装时从上层协议开始,以上层协议为 主,不在乎其下层协议。            

      

我们搭建一个这样的网络,网关:192.168.1.1./24;主机A:192.168.1.2/24;主机B:192.168.1.3/25。           

      

当我们配置好 主机B:IP、掩码、网关的时候,会有什么情况发生呢?在这个有类ip为192.168.1.0/24 这个网段中通过子网掩码的划分,在B主机的眼中就变成了两个网段:网络192.168.1.0/25与192.168.1.128/25,如果B的主机号 在192.168.1.128~254/25范围,那么主机B在192.168.1.128/25这个网络中,如果在192.168.1.0~127 /25那么B主机在192.168.1.0/25这个网络中。与时同时,在主机B的上面还会发生什么呢?会产生本机路由条目如图:           


 在这里,我配置B的 主机号为166,属于192.168.1.128/25这个网络,大家在图中也可以看到,如果我配置为192.168.1.3/25的话,那么你将看到路 由表中将有192.168.1.0/25这个网络。所谓路由规则就是同网段的直接发,不同网段的交给网关发送。           

      

看完上面的过 程:我们来分析下B主机与A主机通信的过程,B现在要同主机A通信,由于在B的眼中,A主机的ip为192.168.1.2/25,所以B主机直接把A看 作是192.168.1.0~127/25这个网段中的主机,并与其直接通信。然后在其整个网段中发送其arp广播包获得主机A的mac地址,并建立连接 与其通信。在此过程中,主机A确把主机B看作是192.168.1.3/24这个网段中的主机来通信,因为没有任何人任何协议告诉它们的掩码是不同的,它 们不是在一个网段中,对此通信可以说是一种巧合,机器是很笨的,网关也是如此。B认为网关的ip为192.168.1.1/25,网关认为主机B的ip是 192.168.1.3/24(在内部网中,arp,icmp,ip,tcp,udp,不具备有通告子网掩码功能)所以在这种情况下,主机A与主机B访问 ping网关都是OK 的,它们之间的互访问也是OK的。           

           

上面我们看到的是一种的情况,假如主机B是另一个网段的呢?主机号为192.168.1.128~254/25这个范围的呢,这个就有点意思了,大家猜猜能不能通信呢?是怎么样的一个过程呢?我们来看下啊!我们把主机B的IP设置为192.168.1.150/25,
网关设置为192.168.1.1时,这时主机B就会跳出一个警告!!说网关与ip地址不在同一个网段,因为主机B认为网关是属于 192.168.1.0/25这个网段的,不管那么多点击确定,因为主机的网关可以是不同网段的IP。当我们与主机A 通信时,主机B 认定主机A在192.168.1.0/25这个网络,他们不在同一个网段中,所以主机B不会去获得主机A的mac,它得到网关的mac ,然后发送数据包给网关。网关怎么做呢?它了解到目标IP为内网主机,是主机A,所以通过arp得到A的mac后,然后以源mac为网关,目标mac为 A,网络层不变发送给主机A。
    

      

主机A收到这个包怎么 做呢?也有点意思。在主机A的route里有这样一个网络就是192.168.1.0/24,现在主机A收到的这个数据包源 ip,192.168.1.150,目标是自己ip 时,很明显,在主机A眼中,主机B和自己就是同一个网段的,所以A的高层忽略了链路层的mac是网关的,回复包也必须给网关mac的过程。这个由网络层决 定,网络层认为B同自己在同一个网段,所以要得到B主机的mac地址,然后将数据包发给B。A主机发送arp广播请求B主机的mac,B主机收到后,解封 装,低层不知道高层的ip间的不配对(b 主机ip与A主机ip不在同一个网段中),所以B主机上运行的arp协议直接发B主机的mac发送给了A。A主机得到mac后与B 主机通信。这样形成了一个三角通信关系。24位掩码到B直接走,B到A的走网关。但是居然能通信,这样一个三角关系。           

 

我来说个例 子:B主机ping主机A,ping 数据包被B主机送到网关,网关交给主机A,主机A发送回复包给主机B,主机B显示通信成功,认为主机A是通的,B不关心源mac是主机A的,只因高层网络 层收到了这个回复包,认为通信成功。但在主机a包到来前,网关会返回给主机B 一个ping超时包,因为主机A根本没有返回数据包给网关,网关认为到达A是不通的或A拒绝回复ping。           


我说下自己对vlan 的看法,我认为每个vlan说白了,不管根据什么分的vlan。我认为每个vlan可以想成是由每个路由器连接的一个网络(网段),每个网段都有自己的网 关,这好比大家在配置vlan时,每个vlan都有路由子接口,那就是每个vlan的网关了,大家不防仔细分析下其通信原理,我认为是一样的,只不过它是 加入了一个链路协议,让路由多变小,线络多变少。其通信原理与我们平时局域网通信原理是一样的,不用把vlan协议想在其内,它只不过是实现了一种功 能。    



多路由器路由


通俗地说,普通家用的路由器的话

就是连接到路由器wan口的那个设备开启了DHCP还是设置了静态IP的问题

一般寝室里可能会用到这种情况,一台路由器不够用的情况下,分一个口出来插到另一个路由器的wan口上,第一个路由器一般是回开启DHCP的,也就是这样一来第二个路由器的ip地址跟与第一个路由连接的三台电脑ip地址共同受第一个路由器的动态分配,这样所有的电脑都只要设置ip为自动获取就可以正常联网,路由器就设置成动态ip

但是,如果第一个路由器没有开启DHCP,当然不常用(某些特殊的情况下确实会用到)

这样每台电脑的ip都要自己输进去,第二个路由作为一个主机也是不例外的

从第一个路由器的角度看,跟它连接的三台电脑跟一个路由器这4个设备都是一样的地位 

纯手打,希望有帮助 

再来废话几句,看来楼主问的应该是高级路由器的静态动态设置吧,先上图

不管是静态还是动态,其目的都是一样的,这样一个结构刚连好设好ip以后两台电脑是不能通的,路由就是用来解决这个问题

先看静态路由,看路由器0,对他来说,他的任务就是添加到pc1所在网段的静态路由到自己的路由表,所以路由器0的语句是ip route 192.168.5.0 255.255.255.0 192.168.2.2,这里没什么问题吧

然后看路由器1,由于还没到目的网络,所以他的任务依然同上

ip route 192.168.5.0 255.255.255.0 192.168.3.2,变化的是下一条

路由器2,一样ip route 192.168.5.0 255.255.255.0 192.168.4.2

这样一条路线已经形成了,但只是单路,要ping通必须互相通

所以回过来一样的思路 但是这时的目的网络成了pc0所在的网络 

先是路由器3 ip route 192.168.1.0 255.255.255.0 192.168.4.1

路由器2 ip route 192.168.1.0 255.255.255.0 192.168.3.1

路由器1 ip route 192.168.1.0 255.255.255.0 192.168.2.1

行了   反过来也达到了,ping通了

总结一下,静态路由就是对任意两个网络(这里是192.168.1.0和192.168.5.0)要联通,分成两遍,第一遍,从其中任选一个网络开始,从这个网络直接连接的路由器开始,到目的网络连接路由器的前一个路由器,分别ip route ,其中目的ip一样,掩码一样,下一跳不同,回过来也是一样的道理

所以两个网络中间隔了n个路由器的话(直线的),离两个网络最近的路由器分别只要一条语句,其他中间所有路由器都是两条语句,一条过去,一条回来

接着看动态,动态比较直白一点的理解就是,一个路由器连了几个网络,就添加这个网络,任务就完成了

看图中所有的路由器都是连了两个网络是吧  所以每个路由器的都是在  route rip中net那两个网络    比如路由器0就是  route rip 回车   net 192.168.1.0  回车  net 192.168.2.0 回车,后面的同理

这样就确保跟这个结构中所有的网络都是互相通的

乍一看静态路由的语句还少两句在这个例子里,但是在实际中,网络个数肯定不止两个的情况下,动态路由的语句会少很多。



       



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值