计算机网络->网络路由详解

184 阅读2分钟

自11月8日疫情居家办公以来,已经11天了,希望12月疫情能好转,恢复以前的样子。在居家这段日子,作为程序员的自己也没有闲下来,准备补习一下计算机网络的知识,做了下面这个实验记录,网络路由实验。

实验准备

  1. 虚拟机Vmware
  2. linux操作系统(5个)
  3. wireshark抓包工具(分析网络错误的原因)

原理图

网络结构图.png

原理

实验的目的其实就是在ip为192.168.247.128的机器上,ping通ip为192.168.222.129这台机器(不使用路由器,利用计算机充当路由器的作用)

看完实验目的,让我们来分析一下每台计算机的网络配置,其实在这个实验中,三台机器就已经可以解决问题了,我们用五台的目的是为了加深对网络路由的认识。
第一台:

  1. Vmware配置第一台网络为自定义Vmnet1(仅主机)ip地址分配为:
    192.168.247.128
    作用:相当于虚拟机和本机之间拉了一根叫Vmnet1的网线,发送数据(这个网线只可以和主机通信,不可以访问外部网络)。
  2. 添加路由表:
    route add -host 192.168.222.129 gw 192.168.247.129
    作用:将访问192.168.222.129的包转发给192.168.247.129(第二台机器)

第二台:

  1. 将虚拟机配置为两块网卡
    作用:一块网卡接受上台机器的数据,另一个网卡转发数据到下一台机器
  2. Vmware配置第二台第一个网卡为自定义Vmnet1(仅主机)第二个网卡为自定义Vmnet2(仅主机)
    作用:
    1. 第一个网卡配置自定义Vmnet1的目的是为了保证和第一台机器处于同一个网段ip为:192.168.247.129
    2. 第二个网卡配置自定义Vmnet2的目的是转发数据,ip为192.168.158.129
  3. 添加路由表:
    route add -host 192.168.222.129 gw 192.168.158.130 作用:将访问192.168.222.129的包转发给192.168.247.130

第三台,第四台,...:
理解了上面两台的配置,第三台,第四台,第五台的配置和前面的配置大同小异,只需要配置接受数据的ip地址,转发数据的ip地址,路由表就行,见原理图配置。

排错方式

  1. 可以利用linux机器上的tcpdump命令抓包分析错误
  2. 也可以利用wireshark抓包分析错误
    例如:
    第二台机器输入:
    tcpdump -i eth0 -nn 获取利用wireshark抓取Vmnet1的网络
    如果结果显示能抓到192.168.247.158 -> 192.168.222.129的包,说明第一台机器和第二台机器相通的
    如果不能抓到,那就要检查第一台机器和第二台机器的防火墙,网络配置是否正确,是否在一个网段等问题。

注意事项

需要打开linux系统的路由转发功能,不然无法转发包。
需要关闭linux系统的防火墙。
双向都需要配置路由表,不然收不到回应包。