交换机互联不同vlan及不同网段通信问题总结解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交换机互联不同 vlan 及不同网段通信问题总结
作者:北京 --慕容
第一节前言
这几天群里常聊到关于交换机打 tag 以及两台二层交换机互联不同 vlan 是否能通的问题, 也因此引发了很多讨论, 我个人也私底下拿真机充分的做了实验, 觉得挺有意思对底层知识也是个考验, 但由于情况有好几种, 一两句话恐怕说不清楚, 正好群里朋友也希望写个总结, 所以才诞生这份文档。

而文档只有一个目的, 就是希望能够让大家一起讨论一起学习, 共同进步。

不过有个前提是必须先说一下的:
我不敢保证文档里所有结果和原理描述都是百分百正确的,毕竟不同产商甚至不同 ios 版本结果也有可能会稍不一样。

换句话说, 如果群里任何朋友有任何任何不同的意见和看法, 我们热烈欢迎一起讨论,一起更正,一起完善。

还是那句话,大家一起进步!
在此首先不得不提到的一点是非常感谢尾巴兄弟的辛劳付出,建立 56上专属咱们的板块, 为我们的共同交流和学习又提供了一个更方便更完善的平台和空间。

除了尾巴兄弟当然还有很多其他群里的朋友经常上传文档资料供大家共享, 感激的真是无以复加! 我也希望我自己在进步的同时也为群里多做出自己的贡献。

另外老大文档里提到的技术壁垒我个人也很不喜欢, 相信群里很多朋友也很不喜欢, 所以,不管别的地方别的群别的圈子有没有,我衷心希望红盟群,咱们,一定不要存在这种现象!大家都是自己人,要是就是敞开心扉的沟通,不计利害的共享,共同进步共同成长!我们是一个团体, 就要有团体该有的凝聚力, 对技术, 我们无比热爱, 对朋友, 我们肝胆相照, 对未来,我们无所畏惧!
第二节提出问题
这一节的意思是先提出问题和各种情况的拓扑图,也让自己在看整个文档前心里有个数,如果这些问题都能毫不犹豫的回答出来,那基本可以不用往下看,当然,即便这样也希望你能继续看下去, 说不定下面有很多问题需要你的指正。

不能全部答出来的, 可以好好看看下面写的了,有任何意见,想法,都欢迎和我或者在群里一起讨论交流。

声明:下面交换机都是二层交换机,接的是 PC ,只不过图标是路由器。

一、两台交换机互联以及一台交换机上不同 vlan 的情况
1、 PC1和 PC2 能不能通?(还要分两种情况,两台 PC 相同网段和不同网段
2、能不能通?(相同网段和不同网段
3、能不能通?(相同网段和不同网段
4、能不能通?(相同网段和不同网段
5、能不能通?(相同网段毋庸置疑,不同网段怎么通?有几种办法?
6、能不能通?(相同网段和不同网段分别怎么通。

-- 注:是二层交换机
二、下面是两台 PC 互联以及两台路由器互联几种网段情况
1、能不能通?(把 20换成 21呢?
2、能不能通?
3、默认显然不通,有什么办法通?
4、把上面的 PC 换成真的路由器,同样是以上几种网段情况,通的情况又如何? 第三节答案(不一定是百分百的标准答案,大家多提意见
一、先说第一部分:
首先我谈一下我个人对交换机转发报文最基本原理的理解 (当然, 这里只说偏低端普通交换机,那些 cisco 6500,华三 9500等等高端交换机可能由于引擎等硬件和软件原因导致报文转发原理和一般交换机会有不同, 但那又是另一个层面的问题,在此不讨论。

交换机收到一个报文后(当然,这里还有先成帧,检查 CRC 等过程就先忽略,会先学习 MAC ,放入自己的 MAC 地址表里,然后给报文打上 tag (vlan -id,接着查看目的 MAC ,根据自己的 MAC 地址表找到此报文的输出接口, 如果输出接口是access 接口就先把 tag 去掉再发出去。

如果输出接口是 trunk ,则会保留 tag 发出去。

(即便是二层设备,也可能因为组播, qos 等因素会有更多更复杂的过程,在此也忽略。

而三层交换机是会去查看三层信息再转发的,在此也不讨论。

所以, 其实交换机内部有一个自己打 tag 的过程, 只是普通抓包看不见, 有的产商管这叫虚标(当然是和 trunk 上的 tag —实标对应。

当然,这并没有影响我们最常见的认知, 即 access 链路上的报文是没有 tag 的, 而 trunk 链路上非 native vlan 的报文是有 tag 的。

而这一点足以解决第一个图的问题。

1、图 1:
在这里,也要简单说一下 ping 通信的基本过程。

(PS:这个很多面试都会考到,记得当时外包在华为工作时面试官就问了我这么一个题,说三台路由器相连,最左边路由器 ping 最右边路由器的整个过程, 知道多详细就说多详细。

那次幸好提前有准备, 把每个报文里面的比特位字段的数字都跟他们讲了, 就差到操作系统层面了。

当然那是运气好, 如果问别的底层问题我很可能答不上来,所以,底层真的很重要。

打出 ping 命令时, 操作系统会占用资源调用 ping 进程封装报文从网卡发出去, 但封装报文里面有一个特别重要的字段就是目的 MAC 。

如果目的 ip 和自己一个网段(网段是自己的 ip 和 mask 做与运算出来的结果,接着会直接发送 ARP 广播请求目的 ip 的 MAC ,交换机收到会从同 vlan 的其他端口发出去, PC 收到了回复的 MAC ,再封装到 ping 报文里发出去。

接下来就是交换机的处理过程,前面已讲。

而当目的地收到时,会一级级的往上看,如果目的 MAC 是自己,就看二层协议字段,根据二层协议字段值交给相应进程比如 ip 协议, 如果目的 ip 也是自己, 会根据三层协议字段交给相应进程比如 ICMP 协议,以此继续下去。

如果不是一个网段,必须有默认网关,接着发送 ARP 广播请求网关的 MAC ,所以以后自己发出的任何上层协议报文目的 MAC 都是网关的 MAC ,不是目的地的MAC 。

在图 1里, 相同网段 :
PC1发出 ARP 广播请求 PC2的 MAC ,交换机 1在和交换机 2互联的链路上发出去的报文是没有 tag 的,所以交换机 2收到后,打上 vlan 3的 tag ,然后从所有属于vlan 3的接口发出去(当然出去之前除掉 tag 。

回来也是一样。

请求到了 MAC ,其他通信自然就没问题。

不同网段 :
不同网段必须得有网关。

在这里无非也就两种选择,一是 PC1和 PC2 把网关分别设为交换机 1和交换机 2 对应 vlan 的地址。

这种办法我们来看, PC1 肯定能请求到 vlan 2地址的 MAC ,能发出 ping 包,到了交换机 1以后,先看二层信息,而目的MAC 就是自己接口, 会去查看三层目的 ip ,但目的 ip 不是自己,又没有那个网段的路由, ping 包转发不出去。

这种方法不行。

接下来就是第二种办法, 互指网关。

PC1 得知网关是 PC2的地址时, 不会管究竟是不是和自己一个网段 (在这里和路由器有本质的区别,在第二部分会详细说明。

而是直接请求网关地址的 MAC ,而交换机 1 收到 ARP 广播包只会从其他端口广播(和上面不同的是,第一种办法 PC 先
是请求 vlan 2地址的 MAC ,交换机看到 ARP 报文的 target ip 是自己接口地址才会回复 MAC ,而这里, target ip 是 PC2的地址,所以才会广播。

就这样交换机 2接受此广播包, 因为 target ip 也不是自己, 发向 PC2, PC2看到target ip 正是自己,才会回复 MAC 。

当然这里还有一点是,不管是交换机还是 PC2,不管 target ip 是不是自己,首先是已经把 ARP 广播请求报文里面的 sender ip 和 MAC 的对应关系加到了自己的 ARP 表项里了的。

所以, 当 PC2回包的时候是已经有 PC1的 MAC 了的, 不需要再发ARP 广播请求。

这也是我们平时经常见到的第一次 ping 时五个叹号第一个叹号往往超时,而不是前两个叹号超时的原因。

这样 PC1知道了网关(也就是 PC2地址的 MAC ,就会发 ping 包到网关,目的MAC 用网关的 MAC 封装。

而巧合的是,这里的目的 MAC 和目的 ip 都是 PC2,本来一般情况下, PC1把 ping 包交给网关,网关再交给目的地。

这里,既然都重合了,正好不用转弯了, PC2直接就回复了。

(在这里个人觉得是这样,其实 PC 也好,网络设备也好,都是按程序办事, 不会真那么智能,所以 PC2 收到了报文,看到目的 MAC 是自己,就拆了看三层目的 ip ,也是自己, 然后看协议类型, 是 ICMP , 交给 ICMP 进程, 继续看 ICMP 报文的内容, 类型为 0x8, 即回显请求(echo request,很自然的,自己就会发 ICMP 回复 echo reply (PS :正因为协议和设备都只是按程序操作, 所以能挖出协议程序漏洞的人就可以很容易做破坏式的攻击,相信安全好的朋友势必深谙此道 !
有曾经想过第二种办法:分别为 vlan 2 和 vlan 3设置 secondary 地址,而且正是对方 vlan 的地址。

这样相当于一个 vlan 接口有两个地址, 以为给交换机加了条直连路由, 两个网段就能通。

实验证明不行。

Ping 包到了交换机 1 vlan 接口的时候,根本不会往另外一个网段发,到不了交换机 2 。

而一旦开启三层功能立马就能通。

所以,二层交换机即便是一个接口的不同网段也互相通不了。

给图 1做个小总结:
因为 access 链路上的报文没有 tag ,所以不管交换机之间 access vlan 有多不一样, 或者后面再串多少交换机(在这里,交换机 2还可以继续接很多,只要保证终端的vlan 和交换机上要出去的接口 vlan 也就是这里的 access vlan 一样, 相同网段下是可以通信的。

要保证这个要一样,是因为默认情况下,二层交换机隔离广播域,拿到一个 vlan 的数据不管单播组播广播,是不会给其他 vlan 的。

而不同网段的情况, 由于必须要有网关, 所以得有特别操作才行。

而其中一种
特别操作是 PC 间互指网关。

2、图 2:图 3:图 4:
这三个一起说,因为真的基本就是一回事。

先说图 2,默认情况 trunk 下 native vlan 就是 vlan 1 (这里默认封装方式为 dot1q , 如果为思科私有的 ISL 就没有 native vlan的说法,那种没意思也很少用,不讨论。

然后从交换机 1出去的报文打上了 vlan 2的 tag , 交换机 2收到后显然不会发往属于vlan 3的 PC 2 。

所以图 2肯定是不通的。

再说图 3,既然由于 native vlan为 vlan 1导致其他 vlan 的报文都打了 tag ,那就修改本地 vlan ,因为如果修改本地 vlan 为 vlan 2,那从 vlan 2来的报文在 trunk 链路上是没有 tag 的。

按照这种想法, 分别修改交换机 1和 2的本地 vlan , 分别为 vlan 2和 vlan 3 。

按理说,现在 trunk 上的 vlan 2 和 vlan 3的报文都是没有 tag 的,相同网段情况下,是可以通信的。

但实验做出来是不通的。

然后我查了权威资料,原因在于:stp 的阻挠。

话说, stp 协议如果检测到 trunk 链路两边 native vlan 不一样 , 会将端口置于 PVID 不
一致 (inconsistent 状态,而且实验的时候在控制台上也能看到报错。

相应的 vlan 接口物理是 up ,但协议都是 down 的。

此时此刻它无法转发正常流量,所以连基本的ARP 广播请求报文都过不去,更别谈其他通信。

然后,显然,需要关闭 stp ,如果关闭所有 vlan 的 stp , ping 完 9个包第 10个包就开始通(好几次都是这个结果。

当然,为了弄清楚究竟是哪个 vlan 的 stp 在阻挠,我又继续按排除法开启 vlan ,结果是, native vlan的 stp 在阻挠,开启 vlan 1的 stp 是没有影响的。

但一旦开启 native vlan的 stp ,很快开始报错,通信不正常。

所以结论是:如果两边都修改 native vlan (很显然,只修改一边的更不行,必须关闭 native vlan的 stp 才能正常通信。

(至于是不是必须两边都要关,反正我做实验的结果是关闭一边就可以了,但我建议最好两边都关。

声明:这也只是我分别拿两台 cisco 3560和 3750做出来的结果, 高端交换机或者华三, 华为的交换机是否结果一样,我也不清楚。

有设备的朋友可以多试试。

通过这个实验我们至少要纠正两种错误观念:一种是很理所当然的觉得既然两边都修改了 native vlan, trunk 上这两个 vlan 都没有 tag ,肯定能通信;还一种是很简单的认为 trunk 上 native vlan 就得一致,不一致就一定不能通信,但说不出具体是什么东西在阻扰或者索性觉得就是交换机内部机制不用探讨。

(PS :任何问题都有理由,总觉得搞清楚了睡觉都踏实些 \(^o^/~
不同网段的情况,跟图 1特别类似,办法:互指网关。

详细情况就不说了。

图 4:和图 3很类似,方法结果都一样。

必须关掉交换机 1的 native vlan的 stp ,关了就能通。

不关通不了。

3、图 5:同一台交换机相同 vlan 不同网段
其实讨论了前面不同网段的情况,图 5已经没有什么可以讨论的了,原理基本一样, 方法还是那一种,互指网关。

设置 secondary 地址也做过实验,实在不行。

4、图 6:(PS :这个问题也是当时我面试华为时的原题,考官直接来句二层交换机不同 vlan 如何通信,我一下子就懵了,反正这个问题当时是没答上来,惭愧
现在两台 PC 的 vlan 不一样,不管是相同网段还是不同网段,上面的方法在这里都不凑效。

因为一个很致命的问题摆在面前, ARP 广播请求报文也好, ping 包也罢,二层交换机本身是不会把一个 vlan 的报文发到另一个 vlan 的。

要不然, vlan 本身的定义就颠覆了。

不过,技术嘛,玩的就是颠覆。

或者说,那些发明产品发明技术的人太聪明,已经给我们留了很多空缺和解决办法。

目前来说, 我只想到两种办法, 还是分别对应一种厂商一种。

对于 H3C 和华为的设备,他们有一种端口类型叫 Hybrid 类型,混合。

简单的说,它可以让一个端口属于多个 vlan ,然后指定为哪些 vlan 打标,哪些不打标。

举例子来说,在这里,接 PC1(PC 1在右边的端口设置为 untage vlan 2和 pvid vlan 3,接 PC 2的端口设置为 untage vlan 3 和 pvid vlan 2 。

这样, vlan 2 就可以和 vlan 3通信了。

Hybrid 类型的主要用途在于能够更加精确的控制相同网段主机互相之间的通信问题, 比如把每个地址划进不同 vlan ,这样默认都不能通信,然后想要通信的就利用这种端口类型的配置。

可惜的是, 思科没有这种端口类型。

但, 思科有它的办法, 就是 PVLAN 私有vlan 技术, 当然本来这种技术也是用来精确控制相同网段主机不同 vlan 的通信的。

拿到这里只是反过来利用(而且这纯属为了解题而解题,实际意义不大。

比如,可以
设置 vlan 2 和 3 都为 community vlan,当然必须得有 primary vlan的存在;还可以把vlan 2或 vlan 3其中一个设为 primary vlan ,另一个设为 community vlan。

我相信还有其他办法,希望群里朋友能够多给点意见和方法。

二、第二部分:
先说主机的通信:
其实前两个图意思是一样的,只不过我特别想说的是,很多人(至少我自己在刚开始接触网络的时候,特别容易有一个误区,比如两台 PC 或者路由器相连,因为习惯上都会配置成同一网段相同掩码, 从而一直就觉得必须得这样才能通信, 或者说, 根本没有尝试和深入想过如果不同网段不同掩码究竟能不能通,不通是为什么,有什么办法通。

显然,我们需要回归到本质,回归到通信最原始的过程和出发点。

PC 机拿到一个地址, 先看是不是一个网段,如果不是发往网关,如果是,直接请求MAC 然后发包。

当然,这是很通俗的说法,如果还原的专业点,就是根据主机或网络设备的路由表执行最长匹配查找原则, 从每个路由表条目的最右边一位一位的匹配, 最长匹配的就是挑中的路由条目,而最终是根据这条路由条目选择出接口进行封装报文。

当然,一般主机只有一个网卡,也就是一个直连网段。

所以目的 ip 也就只负责和这个网段进行匹配。

主机网络号是亘古不变的, 后面的主机号你可以和我不匹配, 但是网络号的最后一位也就是最右边一位,如果和我不匹配,我就认为不是一个网段。

如果匹配, 还要继续往左走,直到匹配完最高位都相同,才认为是同一网段。

所以,再换个角度说,地址, ip 地址本身是没有掩码的没有子网掩码,它只是对网络中一台工作站或者网络设备某个接口的标识, 而所谓的掩码只是用来区分不同网段的, 而这个设计的初衷主要是因为对于路由器来说,如果路由条目全是 32位的主机地址,内存装不下 CPU 也负担不起查找的开销。

所以用掩码区分网段, 这样路由条目只需要储存一个一个网段,压力小多了。

也就是说,掩码只对本地有意义,只对这个接口的网段有意义。

也就是,一台 PC 拿到一个地址,是不知道它的掩码的,这么说还不对,它本身就没有掩码(对我方来说。

它只是用来匹配我的掩码我的网段的。

只不过因为每个接口每个地址都有掩码, 所以很容易误解为或者说很容易把地址和掩码直勾勾的联系在一块。

我的记忆法是, 我的掩码只适合我的接口地址, 任何你们其他所有地址和我的掩码都没有关系, 如果你们的地址是有效的, 那一定存在在某个工作站某个服务器或者某台网络设备上, 在那边, 你的那个接口,肯定描述了你的掩码。

言归正传。

在这里, PC2的地址是 10.10.0.1,这时候就不要看它的掩码了,它对于PC 1来说无所谓掩不掩码。

它只是一个地址。

再看 PC 1的网段, 10.10.10.1/20 , 网段就是 10.10.0.0/20 。

这样 PC 2的地址10.10.0.1是匹配我的网段的,我能够从这个接口发出去。

而 PC 2回包的时候,看 PC 1的地址, 10.10.10.1 和自己的网段 10.10.0.0 /16,也是可以匹配的,所以也会从它的接口发回来。

这样,通信一定没问题。

而如果把 PC 1 的掩码改为 21,自己的网段变成了 10.10.8.0/21, 8是 0000 1000, 而 PC 2地址中间第三段是 0000 0000 ,显然不匹配。

不匹配就不是同一网段,又没有默认网关,通不了。

而下面一个图,和上面的原理一模一样。

PC 2的地址是 10.7.7.1/13 ,网段为10.0.0.0/13,而 PC 1的地址为 10.8.8.1 ,显然不是同一网段,但如果 13改成 12就可以了。

所以,总结一下,可以简单的理解为,掩码可以不一样,但网络号应该要一样,要么, 也可以不一样,但是一边地址有限制。

比如,一边是 10.0.0.0/8网段,一边是 10.8.8.0/24网段。

现在网段都不一样,可不可以通是不一定的。

如果左边主机地址为 10.8.8.1,肯定通,如果为 10.1.1.1,通不了。

不管怎么样,个人建议按照原始原理来分析,这样肯定不会出错。

接着说第三个图:完全不同网段
老实说,这个图也已经没有太多可以探讨的了,在已经探讨完前面说的前提下。

目前我只想到一种办法,也就是前面经常提到的,互指网关。

过程不再详述。

但正如前面提到过一次,对 PC 机来说,设置的网关和自己是否同一网段根本不重要, 它只要有网关,就会去请求网关的 MAC ,请求到了就开始封装报文发往网关,
其他一切它都交给网关。

而路由器在这点上是和 PC 有区别的。

接下来看路由器。

路由器:
首先,前面两个图的情况,上面的分析对路由器完全可以照搬过来,最长匹配查找, 掩码等等,原理基本一样。

不一样的是,路由器有很多路由条目,第一次查找时很费时,需要每条条目都要一个个匹配。

当然, 现在设备都已经有很多高级特性, 比如快速缓存交换, cef 交换等等,都大大的提到了速度。

(PS :与之类似的一个也比较有趣的问题是,这么多路由协议中, 邻居地址掩码不同究竟邻居能不能正常建立, 具体的以后会再写总结文档, 一个简单的结果是, ospf 不行,因为 hello 包里有 netmask 字段,
必须匹配。

EIGRP 可以,但在某些特殊情况下会出问题,存在环路。

BGP 就无所谓了,非直连也可以建邻居没法一起归类
在这里主要想说的是第三个图的情况。

完全不同网段,就得有路由表,在这里动态协议就都不靠谱了,只能考虑静态。

在这里的静态有三种方式: ip route 0.0.0.0 0.0.0.0 下一跳地址
ip route 0.0.0.0 0.0.0.0 出接口
ip route 对方网段正掩码出接口
前两种也就是平常俗称的默认路由,一般不怎么叫默认网关。

说它和 PC 的默认网关不一样的主要原因是(这个原因也是静态路由设置下一跳地址和出接口两种方式最大的一个区别):对于第一种,即便设置了下一跳,但到达这个下一跳也要继续查找一遍路由表,下一跳是直连的也需要再查找一遍,查找了才能获得出接口。

而第二种,直接设置出接口,在路由器看来,这个网段(配置中的)是和自己直连的,在路由器的思维里就是这么理解的。

也就是,不管这个目的网段在哪,我都会从这个出接口发出去,不会再看路由表。

当然,问题来了,直接发出去,目的 MAC 该怎么封装。

答案是直接从这个接口发送 ARP 广播请求目的地址(肯定在这个网段中)的 MAC 。

而这里又分两种情况,如果目的地址正是对方的接口地址,则直接回复其 MAC 。

如果在其他地方,对方接口必须开启 ARP 代理才能让通信继续。

因为我个人理解,ARP 代理的本质,就是用自己接口的MAC 代替目的地的 MAC 回复给请求的设备。

这样在请求主机的 ARP 表项里会看见很多地址的 MAC 对应的都是路由器接口的 MAC。

简而言之:一说到和 PC 的区别:是因为路由器还要查找一遍路由表,如果下一跳不是直连网段,网关设了等于白设。

所以,上面的图,完全不同网段的时候,设置下一跳的默认路由方式行不通。

二说到设置静态路由的两种方式,出接口的好处是可以少查找一次路由表(有时候不止一次)让路由器更加快速的转发。

而坏处是,在接口处于 MA 多路访问网段的环境时,需要发送的 ARP 广播请求报文太多,因为此时会针对每一个目的地发送一次广播请求(而设置下一跳第一次请求到下一跳的 MAC 后不会再发请求),而且如果要到达远处的目的地,这些下一跳接口中必须至少有一个开启 ARP 代理,而且开启了也有可能造成不可达现象。

当然,还有别的区别,一
个 AD 为 1 一个 AD 为 0,而且显示在路由表里也不一样。

结论:在 MA 多路访问中,建议用下一跳方式。

其他用出接口,当然下一跳也行。

最推荐的做法是两个都写上,既查找时间最短,也不会出现 MA 环境下的弊端。

三说到上面那个图的情况,后面两种设置静态的方式都可以达到目的。

都是直接请求对方接口的MAC ,请求完再封装正常报文发送。

后面两种的区别,无非就是第二种还可以到达很多其他网段,当然也有条件,就是对方接口必须开启 ARP 代理。

结论:一般来说,两台路由器采用不同网段接口地址互联,想要正常通信,就设置出接口方式的默认路由,当然,如果只想和对方接口通信,可以只设置对方网段。

而如果想到达其他地方,对方接口必须开启 ARP 代理。

当然,这些只是利用咱们最常见最普通的知识来实现互通。

我相信,也坚信,一定还有很多其他方法让完全不同网段互联的路由器互通。

比如利用 Tunnel,分离路由器等高级概念说不定可以。

本人暂时还没彻底研究清楚,不敢下结论。

希望群里高手们多给些意见。

写在最后,不得不再次说明的是上面的东西不一定全都正确,很多描述可能会有些主观化,所以我热烈欢迎任何意见和指正。

而且我是认为,写给大家的东西最本质的其实只是给大家提供一种思路,一种可能性,无所谓有多对多错,就像生活一样,生活经常会碰到很多意外和挫折,经常会懊恼和沮丧,但如果我们把这些所有的不愉快和烦恼包括高兴快乐的事都当成是一场场的经历,当成是丰富我们人生阅历丰富深刻思想的必经路程,也就是那一种种可能,那一种种思路,我们不应该排斥,而应该以无比宽广的豁达胸襟来容纳和感悟,因为只有足够容纳和历练我们才能体验到人生的终极智慧。

如果我们抱着开放,自由,包容,感恩的心态来面对所有的事,相信很多事情都会海阔天空。

我也不是说我们要随波逐流,碌碌无为,努力是必须的,我们都有梦想有追求,必须得很努力,只不过,首先,如果我们把眼前要做的事学习也好工作也罢变成自己的爱好,自己的兴趣,做自己热爱的事情,相信过程会快乐很多其实也会飞的更高;其次,在碰到挫折困难心情失落的时候,希望能够想起上面这些话心里会舒服些,同时也希望想起,生活的本质不是要到达某一个设想的终点,不是纠结年薪究竟是 6 位数还是 7 位数,而是当回首往事的时候确定自己真的已经问心无愧,确定自己一直在全力以赴,确定自己真的已经在很认真用心的感悟生活中经历的每一件事。

如果。

相关文档
最新文档