美文网首页
浅谈网络-网关与路由

浅谈网络-网关与路由

作者: 封不然 | 来源:发表于2018-09-02 00:03 被阅读38次

    现在网络中充斥这各式各样的信息,那么咱们的计算机是如何上网的呢?不知道你是否考虑过这个问题?今天就讨论下,我们是如何在外网上网的。

    现在我们家庭中一般上网的模式就是,买一个路由器,然后登陆路由器以后,配置好上网信息,去连接路由,如果没有开启DHCP的话,会让配置IP等信息等,其中有一点需要注意的就是,需要配置一个名为“网关(Gateway)”的东西,配置过后往往就可以访问目标机器了,访问外网就需要跨过网关。

    • 1.跨网关访问外网涉及到哪些相比于局域网的改变?

    要说改变的话,可能首当其冲的就该说IP和MAC的改变吧,需注意的是,当前本级的IP地址是当前局域网内的IP,也就是说,并不能在外网中当作识别的“门牌”,那么它是怎样变化的呢?请看下我刚从google上找到的一个相关报头的示意图我觉得很不错就直接引用了。

    图一.IP与MAC头示意

    1.这里来讲解下这张图,在 MAC 头里面,先是目标 MAC 地址,然后是源 MAC 地址。
    2.协议类型是当前协议的类型,咱们一般访问网页啥的会说明咱们用的是IP协议。
    3.IP头中所说的版本号,在咱们当下主流使用的是IPv4。
    4.首部长度指明IPv4协议包头长度的字节数包含多少个32位。
    5.TOS 定义IP封包在传送过程中要求的服务类型。
    6.总长度指的是IP协议头格式中指定IP包的总长,通常以byte做单位来表示该封包的总长度,需要注意的是此数值包括标头和数据的总和,占16位说明其最长为65535字节,但不是说一个IP数据报就会那么长,实际上它会被链路层进行进一步的拆分传送。
    7.标识是每一个IP封包都有的一个16位的唯一识别码。
    8.标志,这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。
    9.片位移是指网络包被拆分的顺序,由于拆分后,接受的顺序不一定是被拆分的顺序,所以需要这个。
    10.TTL是指生存时间,这个字段设置了数据报可以经过的最多路由器数,表示数据包在网络上生存多久。
    11.这里的协议就是下一层的协议,也就是,是 TCP 还是 UDP。
    12.最重要的就是这个源IP地址和目标IP地址,要通过这个来判断这个是否要经过网关出去到外网。判断依据就是是否在同一个网段,利用CIDR和子网掩码可得。

    数据发往网关的步骤与内网设备交互相同,先在报文中加入源IP地址和目标IP地址,利用ARP找到网关的MAC地址,加入报文,进行发送。

    而网关往往是一个路由器,是一个三层转发的设备,拿下MAC头和IP头,查看报文要被转发到哪里,并进行处理。我曾经看到过对于路由器的一个很好的比喻分享给大家:“路由器是一台设备,它有五个网口或者网卡,相当于有五只手,分别连着五个局域网。每只手的 IP 地址都和局域网的 IP 地址相同的网段,每只手都是它握住的那个局域网的网关。 ”,也就是说任何一个想发往其他局域网的包,都会到达其中一只手,被拿进来,拿下 MAC 头和 IP 头,看看,根据自己的路由算法,选择另一只手,加上 IP 头和 MAC 头,然后扔出去。

    那么问题来了,发往其他地方的包,该选择哪个手扔出去呢?并且其中哪些内容要变呢?实际上可以分为两类,静态路由和动态路由两种处理方式

    静态路由:其实就是写死了很多的规则,想去这个网段的从这个口出,想去另一个网段的,就从另一个口出。
    动态路由:通过一定的算法,生成动态路由表,随着网络状态的改变而改变。

    前面铺垫了那么多基础知识,那么到底IP和MAC中哪些变哪些不变呢?(以下按照静态路由的方式说明,因为简单)

    首先说下MAC地址,由于MAC地址是一个局域网内才有效的地址,所以出网关的话肯定会变。IP地址的话一般我们需要按照情况分为两类讨论,两者主要的区别在于 IP 地址是否改变,不改变该IP地址的,被称作转发网关,改变IP地址的被成为NAT网关

    (安利个画图软件,ProcessOn,还挺好用的,手动滑稽)
    1.转发网关


    设备A访问设备B

    上图发生的一个变量改变,「静态路由表,对应网段网口已经配置好,会按配置表跳」:
    (1)源MAC:设备A的MAC;目标MAC:路由A的MAC;源IP:192.168.2.112;目标IP:192.168.4.112
    (2)源MAC:路由A的MAC;目标MAC:路由B的MAC;源IP:192.168.2.112;目标IP:192.168.4.112
    (3)源MAC:路由B的MAC;目标MAC:设备B的MAC;源IP:192.168.2.112;目标IP:192.168.4.112

    从上面可以知道,源IP和目标IP是不变的,MAC是要变的,报文中不保存网关信息,也就是说所谓的下一跳是,某个 IP 要将这个 IP 地址转换为 MAC 放入 MAC 头中。「需要注意的是,这里更类似我们所说的拓扑网络,IP地址在三个局域网可见,并且相互不会冲突」

    2.NAT网关
    这里跟上种形式最大的区别就是,彼此网络中IP可能会产生冲突。就例如北京有个“莲花街23号”,石家庄也有个“莲花街23号”。那么这时候,咱们就需要让他有一个“国际身份”,凡事要去北京的就先到北京,凡事要到石家庄的就先到石家庄,再去各地的“莲花街”。如下图,两个都是192.168.2.1


    设备A访问设备B

    上图发生的一个变量改变
    (1)源MAC:设备A的MAC;目标MAC:路由A的MAC;源IP:192.168.2.112;目标IP:192.168.3.2
    (2)源MAC:路由A的MAC;目标MAC:路由B的MAC;源IP:192.168.3.1;目标IP:192.168.3.2
    (3)源MAC:路由B的MAC;目标MAC:设备B的MAC;源IP:192.168.3.1;目标IP:192.168.2.112

    从设备 B 接收的包可以看出,源 IP 为设备 A 的国际身份,因而回包的时候也应该是A的国际身份,由路由 A 做 NAT,转换为国内身份。咱们家中所使用的路由器多采用该种模式。

    总结一下:
    1.如果局域网需要访问外网的话,就需要过网关,过网关的判断标准就是访问的地址是否在统一网段内,根据CIDR和子网掩码算下。
    2.路由器是一个三层设备,里面有如何寻找下一跳的规则,分为静态路由和动态路由
    3.网关有两种,转发网关和NAT网关。转发网关MAC地址不变,改变IP;NAT的是关键是一个“国际身份”
    4.MAC头和IP头的那些概念

    相关文章

      网友评论

          本文标题:浅谈网络-网关与路由

          本文链接:https://www.haomeiwen.com/subject/zxsxwftx.html