网络位的长度由子网掩码决定,例:
192.168.1.1 255.255.255.0 代表192.168.1都是网络位,只有ip地址是192.168.1.x才是和192.168.1.1是同一个网段
192.168.1.1 255.255.0.0 代表192.168是网络位,ip地址是192.168.x.x的和192.168.1.1都在同一个网段
网络位相同的,代表都再同一个网段
网关:用来连接不通同的网段,例:
ip192.168.1.123想和100.100.100.100进行通信,就需要找一个中间人来完成数据转发,这个中间人就是网关
首先给AR1路由器的GE001网口配上网关:192.168.1.1
再给AR1路由器的GE000网口配上网关:100.100.100.1
192.168.1.123给100.100.100.100发送的数据包,首先比较网络位,发先不是同网段,就会把数据包交给网关192.168.1.1,然后数据就到了AR1路由器的GE000地址,然后路由器转发给100.100.100.100
那么当AR1路由器有多个接口的情况下,他怎么知道改转发给那个接口呢?
路由器有一个判断的依据:路由表
路由表记录了去往每个不同的目标该怎么走,比如现在192.168.1.123的数据包想去100.100.100.100应该怎么走?
首先,192.168.1.123发出数据包,发先100.100.100.100跟自己不在同一个网段,就会将数据包通过DE000发送给网关192.168.1.1,达到路由器,然后路由器通过查路由表,发现100.100.100.100的网关是100.100.100.1,这时数据包就会通过路由发送给100.100.100.1,然后通过GE001口发送到目的地址100.100.100.100
接下来给出一个稍复杂一点的用例
题目:用PC机 1.1 ping通3.10
我们再ensp上建立拓扑
1.给PC机ETH001接口配上ip 192.168.1.1 255.255.255.0,他的网关对应配置为192.168.1.10
2.给AR1路由器的GE000接口配上ip地址 192.168.1.10 255.255.255.0
3.给AR1路由器的GE001接口配上ip地址 192.168.2.1 255.255.255.0
4.给AR2路由器的GE000接口配上ip地址 192.168.2.10 255.255.255.0
5.给AR2路由器的GE001接口配上ip地址 192.168.3.1 255.255.255.0
6.给Server服务器接口ETH000接口配上ip地址 192.168.3.10 255.255.255.0 网关对应配置为192.168.3.1
7.这时候开始在PC机上ping 192.168.3.10 发现还是ping不通
为什么会不通?因为首先192.168.1.1与192.168.3.10非同网段,这是ping包将会发送给网关192.168.1.10,这时我们dis ip routing-table 192.168.3.10查看路由器AR1中的路由表有没有去往192.168.3.10的路由,发现没有。就需要我们手动添加一条路由,那我们怎么知道需要添加一条什么样的路由呢?
首先,想要将数据包传递给3.10,就需要先将数据交给AR2路由器的2.10,,然后通过AR2路由器,将数据包转发给3.10。所以在AR1路由器上添加一条静态路由,他的下一跳是2.10,他的目的地址是3.10,属于192.168.3.0网段,所以命令如下:
ip router-static 192.168.3.0 255.255.255 .0 192.168.2.10
再dis ip routing-table 192.168.3.10查看有没有去往3.10的路由
这个时候我们去ping 192.168.3.10会发现,还是不通,为什么呢?这是因为我们再在ping的过程中是有去有会的,你的请求包达到了192.168.3.10,但是由于没有回来的路由,所以在PC机上收不到回来的包,导致不通
8.我们需要在回来的路上给AR2路由器加上回来的路由
首先,想要将数据包传递给PC机192.168.1.1,就需要先将数据交给AR1路由器的2.1,,然后通过AR1路由器,将数据包转发给1.1。所以在AR2路由器上添加一条静态路由,他的下一跳是2.1,他的目的地址是1.1,属于192.168.1.0网段,所以命令如下:
ip router-static 192.168.1.0 255.255.255 .0 192.168.2.1
再dis ip routing-table 192.168.1.1查看有没有去往192.168.1.1的路由
9.这时,我们再去ping,网络就通了