网络协议之不能老在家里晃悠,也得出去看看啊!

写在前面

本文看下如何访问外网环境。

1:正文

我们知道,局域网环境的IP地址一般都是192.168.xx.xx这种,这里我们假定大家都商量好了,不同的局域网IP地址也不会冲突,就如下图:
在这里插入图片描述
比如服务器A192.168.1.101/24要访问服务器B192.168.4.101/24,过程是这样子的:

1:服务器A发现服务器B和自己不是同一个网段,所以就要发送给网关(路由器的一个网口),网关的IP地址是192.168.1.1
2:服务器A发送ARP,获取网关MAC,此时包填充信息如下
    源IP:192.168.1.101
    目标IP:192.168.4.101
    源MAC:服务器A的MAC
    目标MAC:192.168.1.1这个网口的MAC
3:接着就可以发送出去了

192.168.1.1这个网口收到请求后,匹配MAC,发现和自己一致,因此就会将包收进来,然后通过静态路由的配置信息找到需要从192.168.56.1这个网口发送出去,且下一跳的IP的地址是192.168.56.2,此时同样会发送一个ARP来获取192.168.56.2这个网口的MAC,则,此时包信息如下:

源IP:192.168.1.101
目标IP:192.168.4.101
源MAC:192.168.56.1的MAC
目标MAC:192.168.56.2的MAC

接着包就发到了192.168.56.2,判断MAC和自己匹配,因此就将包收进来,同样通过静态路由的配置,判断需要从网口192.168.4.1这个网口出去,并且该网口和目标IP是在一个局域网中,所以是最后一跳了。同样,192.168.4.1会发送一个ARP来获取192.168.4.101的MAC,修改包如下:

源IP:192.168.1.101
目标IP:192.168.4.101
源MAC:192.168.4.1的MAC
目标MAC:192.168.4.101的MAC

目标IP192.168.4.101收到包后判断MAC和自己匹配,就收进来,这样包就成功从192.168.1.101发送到192.168.4.101了。可以看到整个过程只有mac地址在变,而源IP和目标IP是不改变的。
以上考虑的是所有的局域网环境环境IP地址都是不冲突的场景,但实际是这样字:
在这里插入图片描述
注意此时服务器A的地址和服务器B的地址一毛一样,都是192.168.1.101/24
那么此时如果是服务器A想要访问服务器B,还能直接访问吗?显然是不能了。因而此时服务器B想要能够被访问就需要有一个国际身份,而这个国际身份需要注册到其连接的路由器上,这里假定其国际身份IP地址是192.168.56.2(可以认为是外网IP)。所以服务器要访问192.168.56.2才行。既然是要访问192.168.56.2,很明显和服务器A自己不是在一个局域网中的,所以就要发送到网关192.168.1.1,所以首先要通过ARP获取192.168.1.1的MAC地址,此时包信息如下:

源IP:192.168.1.101(因为还是局域网环境内所以还是NAT前的IP地址)
目标IP:192.168.56.2(服务器B的国际身份IP)
源MAC:服务器A的MAC
目标MAC:192.168.1.1这个网口的MAC

注意目标MAC肯定是局域网环境种要发送下一个机器的MAC。这样包就发送到192.168.1.1了。192.168.1.1通过自身的静态路由配置判断,要想发给192.168.56.2要从192.168.56.1这个网口发送出去,此时就需要获取192.168.56.2的MAC,地址,获取后,包信息如下:

源IP:192.168.56.1(这里的IP就是服务器A NAT后的IP地址了,出了局域网就要用国际身份了)
目标IP:192.168.56.2(服务器B的国际身份IP)
源MAC:路由器192.168.56.1这个网口的MAC
目标MAC:192.168.56.2的MAC

注意:源IP改变了
192.168.56.2收到包后,发现和自己的MAC匹配,接着,内部转换,192.168.56.2地址对应的是局域网环境的服务器B IP 192.168.1.101。并且要从192.168.1.1这个网口出去,接着只需要通过ARP获取服务器B的MAC就行了,此时包如下:

源IP:192.168.56.1(这里的IP就是NAT后的IP地址了,服务器A的对外国际身份)
目标IP:192.168.1.101(此时NAT为局域网IP了)
源MAC:192.168.1.1的MAC
目标MAC:服务器B192.168.1.101的MAC

在这个过程中IP地址发生改变就叫做NAT,network address translation。

写在后面

多指导一点

怎么算是一跳?

从路由的一个网口进来,从另一个网口出去是,需要修改源mac地址和目标MAC地址,这叫一跳。

路由器是怎么连接到不同的局域网的

路由器有很多的网口,每个网口连接一个局域网,并且该网口的IP地址属于其所连接局域网的CIDR

国际身份是啥?

就是公网IP了,挺贵的还。

参考文章列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值