网络实践-路由篇
本文使用vmware虚拟机进行路由表配置实践,通过配置路由表连接两个不同的网络,不涉及路由协议,全手动配置,旨在理解路由表的概念
网络规划:
准备三台centos7虚拟机,其中一台作为路由设备router,其余两台分别代表处在不通网络中的pc1和pc2。因此router虚拟机需要分配两个LAN区段,创建LAN1和LAN2,pc1位于LAN1,pc2位于LAN2。
虚拟机名称 | ip地址 |
---|---|
router | LAN1:10.10.0.1,LAN2:10.10.1.1 |
pc1 | LAN1:10.10.0.2 |
pc2 | LAN2:10.10.1.2 |
虚拟机设置
虚拟机设置,创建LAN1、LAN2区段,pc1虚拟机和pc2虚拟机的网络适配器分别指定LAN区段为LAN1和LAN2,router创建两个网络适配器,分别制定LAN1和LAN2。
配置虚拟机网络
1.配置静态ip地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改BOOTPROTO=static
添加IPADDR=10.10.0.1
添加NETMASK=255.255.255.0
重启网络服务
service network restart
2.关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
3.开启ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
在三个虚拟机上配置好ip,router需要配置两个网卡
router:
pc1:
pc2:
尝试ping
router能ping通pc1和pc2:
但是pc1 ping不通 pc2:
配置路由表
在pc1中配置静态路由表
route add -net 10.10.1.0/24 gw 10.10.0.1
在pc2中
route add -net 10.10.0.0/24 gw 10.10.1.1
router上无需配置路由表,因为pc与router都是直连路由
转发
转发是路由器从入链路到出链路的选择,上面的配置路由表route add -net 10.10.1.0/24 gw 10.10.0.1的含义是
发送往10.10.1.0/24网络的数据(入链路的数据),通过接口10.10.0.1发出(出链路的选择),在涉及路由协议之前,如果手动配置该表项,需要我们人工进行路由选择,也就是我们预先已经知道路由器router能够达到pc2所在的网络,所以路由表才做这样的配置,当网络中存在多个路由器时,我们得为每个路由器都配置路由表才能端到端打通网络。
路由
pc1到pc2的路径规划(人工配置、路由协议),即为路由,通常转发只关注当前路由设备多个接口的路径选择,而路由则是只连接整个网络系统的所有设备之间的路径。
再次ping
pc1 ping pc2
路由追踪
网关
前面的配置我们发现,pc1要与pc2进行通信,需要在pc1和pc2上都配置到对端系统的路由表,这通常是不现实的,因为实际网络是十分复杂的,我们无法得知因特网中所有的路由器的信息。现实中的网络,我们一般都将数据发送到网关,由网关将数据发往因特网。
我们无需额外的在pc1和pc2中配置路由表,只需要指定网络的网关为router到两个端系统的ip即可
在vi /etc/sysconfig/network-scripts/ifcfg-ens33中添加
GATEWAY=10.10.0.1(pc2为10.10.1.1)
然后重启网络服务
这是家庭路由器的做法。家庭路由器通过dhcp协议为家庭局域网动态分配IP,并且将自己的网关ip告诉每台设备。发送往因特网的数据将交给网关,由网关通过nat发送到外部网络。下一节介绍多台路由器的手动配置,以及使用snat网络地址转换模拟家庭路由器。