Linux 静态路由实验
Linux 静态路由实验
CentOS6.9 和 CentOS7.3 上完成测试
简介
Linux主机通过启用路由转发,配置路由表后就可以当做路由器使用,当然这需要主机上有多张网卡。
路由管理命令
在CentOS系统上路由表的管理命令主要有route
和ip route
这两个命令
查看路由表
route -n
ip route show
或ip route list
或ip route
增加路由条目
增加主机路由
route add -host 3.3.3.3 gw 10.1.2.2 dev eth1
ip route add 6.6.6.6 via 10.1.4.1 dev ens33
增加网络路由
route add -net 10.1.3.0/24 gw 10.1.2.2 dev eth1
ip route add 10.1.4.0/24 via 10.1.2.2 dev eth1
增加默认路由
route add default gw 10.1.4.1 dev ens33
ip route add default via 10.1.4.1 dev ens33
删除路由条目
删除主机路由
route del -host 5.5.5.5 gw 10.1.4.1
ip route del 6.6.6.6
删除默认路由
route del default
ip route del default
静态路由配置文件
以上路由管理命令所配置的路由条目均不能永久保存,重启系统后将消失,只有将路由条目写入路由配置文件中才能永久保存
路由配置文件
/etc/sysconfig/network-scripts/route-IFACE
- IFACE为对应的网卡名,如将路由条目配置到eth0上,则IFACE即为eth0
- 配置文件格式有两种风格
(1)Destion via Gateway
10.1.1.0/24 via 10.1.3.2
(2)每三行定义一条路由
ADDRESS#=Destion
NETMASK#=Mask
GATEWAY#=Gateway
实验一 静态路由
实验目的:使用Linux系统做路由器使用,通过配置Linux实现两台主机Client1和Client2间的通信
环境搭建
本实验环境是在vmware虚拟机上模拟的,在vmware上新建5台Linux系统,建议Linux系统最小化安装,节省硬盘空间和内存。
如下图所示创建5个虚拟网络,从VMnet11–VMnet14, 创建此虚拟网络的目的是实现各路由器之间的连接,类似于交换机的功能
各主机网卡地址规划
Client1
网卡连接到VMnet11上
10.1.1.100/24R1
网卡eth0连接到VMnet11上
eth0 : 10.1.1.1/24
网卡eth1连接到VMnet12上
eth1 : 10.1.2.1/24R2
网卡eth0连接到VMnet12上
eth0 : 10.1.2.2/24
网卡eth1连接到VMnet13上
eth1 : 10.1.3.2/24R3
网卡eth0连接到VMnet13上
eth0 : 10.1.3.1/24
网卡eth1连接到VMnet14上
eth1 : 10.1.4.1/24Client4
网卡连接到VMnet14上
10.1.4.100/24
关闭防火墙功能
使用iptables -F
清除所有主机上的路由条目,或直接关闭防火墙功能
CentOS6 上关闭防火墙使用命令service iptables stop
,CentOS7上用systemctl stop firewalld.service
配置各主机路由
- Client1
添加网关10.1.1.1
#查看当前路由表,默认自动添加了本机网络路由条目
[root@CentOS6 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
# 添加网关10.1.1.1 即默认路由
[root@CentOS6 ~]# route add default gw 10.1.1.1 dev eth0
# 查看添加后的路由
[root@CentOS6 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.1.1.1 0.0.0.0 UG 0 0 0 eth0
- R1
添加10.1.3.0/24和10.1.4.0/24网段的路由条目
启用Linux的路由转发功能
[root@zhubiao ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
添加路由条目
# 当前路由表
[root@zhubiao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
# 添加10.1.3.0/24和10.1.4.0/24网段的路由条目
[root@zhubiao ~]# route add -net 10.1.3.0/24 gw 10.1.2.2 dev eth1
[root@zhubiao ~]# ip route add 10.1.4.0/24 via 10.1.2.2 dev eth1
# 查看添加后的路由条目
[root@zhubiao ~]# ip route show
10.1.4.0/24 via 10.1.2.2 dev eth1
10.1.1.0/24 dev eth0 proto kernel scope link src 10.1.1.1
10.1.2.0/24 dev eth1 proto kernel scope link src 10.1.2.1
10.1.3.0/24 via 10.1.2.2 dev eth1
- R2
添加10.1.1.0/24和10.1.4.0/24网段的路由条目
启用Linux的路由转发功能
[root@zhubiao ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
添加路由条目
# 当前路由条目
[root@zhubiao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
# 添加10.1.1.0/24和10.1.4.0/24网段的路由条目
[root@zhubiao ~]# route add -net 10.1.1.0 netmask 255.255.255.0 gw 10.1.2.1 dev eth0
[root@zhubiao ~]# route add -net 10.1.4.0/24 gw 10.1.3.1 dev eth1
# 添加后的路由表
[root@zhubiao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.4.0 10.1.3.1 255.255.255.0 UG 0 0 0 eth1
10.1.1.0 10.1.2.1 255.255.255.0 UG 0 0 0 eth0
10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
- R3
添加10.1.1.0/24和10.1.2.0/24网段的路由条目
启用Linux的路由转发功能
[root@zhubiao ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
添加路由条目
# 当前路由表
[root@zhubiao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.1.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
# 添加10.1.1.0/24和10.1.2.0/24网段的路由条目
# 这里我们省略了dev DEVICE,系统根据我们指定的下一跳地址,自动将路由条目添加到与之直连的接口上
[root@zhubiao ~]# ip route add 10.1.1.0/24 via 10.1.3.2
[root@zhubiao ~]# ip route add 10.1.2.0/24 via 10.1.3.2
[root@zhubiao ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.1.1.0 10.1.3.2 255.255.255.0 UG 0 0 0 eth0
10.1.2.0 10.1.3.2 255.255.255.0 UG 0 0 0 eth0
10.1.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
- Client2
添加网关10.1.4.1
# 当前路由表
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
# 添加默认网关
[root@localhost ~]# route add default gw 10.1.4.1
# 查看
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.4.1 0.0.0.0 UG 0 0 0 ens33
10.1.4.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
注意:上面所配置的路由条目均是临时的,重启网络服务或系统后将丢失,若需长期使用均需写入对应的/etc/sysconfig/network-scripts/route-IFACE文件中
测试
使用ping命令测试Client1主机是否能ping通Client2
[root@CentOS6 ~]# ping -c 2 10.1.4.100
PING 10.1.4.100 (10.1.4.100) 56(84) bytes of data.
64 bytes from 10.1.4.100: icmp_seq=1 ttl=61 time=5.00 ms <= ttl=61,64-61=3,说明经过了3个路由
64 bytes from 10.1.4.100: icmp_seq=2 ttl=61 time=1.82 ms
--- 10.1.4.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 1.829/3.418/5.007/1.589 ms
查看Client1到Client2经过的路由
[root@CentOS6 ~]# tracepath -n 10.1.4.100
1?: [LOCALHOST] pmtu 1500
1: 10.1.1.1 1.127ms
1: 10.1.1.1 0.725ms <=到网关
2: 10.1.2.2 1.222ms <=下一跳到R2的eth0接口
3: 10.1.3.1 1.426ms <=下一跳到R3的eth0接口
4: 10.1.4.100 3.455ms reached
Resume: pmtu 1500 hops 4 back 4