linux ping 不通网关_掌握Linux路由这一篇就够了!
交换与路由交换: 指同网络访问。两台机器连在同一个交换机上,配置同网段的不同ip就可以直接通迅 (这里不讨论三层交换).路由: 指跨网络访问的路径选择路由表: 指记录路由信息的表(可以单路由表,也可以多路由表)问题1: 按上面的路由表来看,如果要访问10.1.1.1这个IP,请问会怎么走?答: 会通过10.1.1.0/255.255.255.0这个路由条目后面指示的ens33网卡去寻找10.1.1
交换与路由
交换: 指同网络访问。两台机器连在同一个交换机上,配置同网段的不同ip就可以直接通迅 (这里不讨论三层交换).
路由: 指跨网络访问的路径选择
路由表: 指记录路由信息的表(可以单路由表,也可以多路由表)
问题1: 按上面的路由表来看,如果要访问10.1.1.1这个IP,请问会怎么走?
答: 会通过10.1.1.0/255.255.255.0这个路由条目后面指示的ens33网卡去寻找10.1.1.1。
问题2: 按上面的路由表来看,如果要访问119.75.217.26这个IP,请问会怎么走?
答: 会通过网关10.1.1.2去寻找。
当在一台linux机器上要访问一个目标ip时,请记住linux以下四步口诀(在linux默认的单路由表情况下,如果想更深 入了解多路由表,请看课外拓展内容):
如果本机有目标ip,则会直接访问本地; 如果本地没有目标ip,则看第2步
- 用route -n查看路由,如果路由条目里包含了目标ip的网段,则数据包就会从对应路由条目后面的网卡出去
- 如果没有对应网段的路由条目,则全部都走网关
- 如果网关也没有,则报错:网络不可达
(注意: 当不能直接到达目标ip, 那么每到达一个机器都会重复上面四步,直到找到目标) 问题3: 为什么route -n能看到这几条路由(不同机器可能还不一样)
答:因为本机ens33这个网卡有10.1.1.0/24这个网段的IP,所以就会默认产生类似下面的路由条目
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
169.254.0.0/24是保留网关
10.1.1.2是配置的网关
问题4: 加网关有什么要求? 如何加网关和删除网关? 加网关的要求:
网关只能加路由条目里已有的路由网段里的一个IP (ping不通此IP都可以) 加网关不需要指定子网掩码
临时配置与删除(立即生效,重启网络服务就没了)
# route add default gw x.x.x.x # route del default gw x.x.x.x
永久配置(如果机器有多张网卡,只需要一张网卡配置网关, 网关要与配置的网卡同网段)
在/etc/sysconfig/network-scripts/ifcfg-ens33配置文件里加上
GATEWAY=x.x.x.x
linux静态路由
环境准备: 四个网段,四台机器(全部清空iptables规则) 1.1.1.0/24网段使用vmnet1网段来模拟(仅主机模式)
2.2.2.0/24网段使用vmnet2网段来模拟(仅主机模式)
3.3.3.0/24网段使用vmnet3网段来模拟(仅主机模式)
4.4.4.0/24网段使用vmnet4网段来模拟(仅主机模式)
ip_forward: linux内核里的一个参数.当两边机器不同网段IP通过中间双网卡机器进行路由交互时,需要将此参数值改为1,也就是打开ip_forward。打开方法如下:
1.在vm1上ping1.1.1.2,能不能通? 如果不能通怎么解决?
分析方法:源IP: 1.1.1.8 目标IP: 1.1.1.2,按照前面的四步口诀,达到目标后,源和目标IP反转并能成功返回则表示能通; 否则不能通
结果:能通
2.在前面ping通的基础上,继续在vm1上ping2.2.2.2,能不能通? 如果不能通怎么解决?
结果:不能通.
解决:在VM1上加网关指向1.1.1.2
3.在前面ping通的基础上,继续在vm1上ping2.2.2.3,能不能通? 如果不能通怎么解决?
结果:不能通.
解决:在VM3上加网关指向2.2.2.2.还要打开VM2的ip_forward
4.在前面ping通的基础上,继续在vm1上ping3.3.3.3,能不能通? 如果不能通怎么解决?
结果:不能通
解决:在VM2上加网关指向2.2.2.3
5.在前面ping通的基础上,继续在vm1上ping3.3.3.4,能不能通? 如果不能通怎么解决?
结果:不能通
解决:在VM4加网关指向3.3.3.3,还要打开VM3的ip_forward
6.在前面ping通的基础上,继续在vm1上ping4.4.4.4,能不能通? 如果不能通怎么解决?
结果:不能通
错误解决:在vm3加网关指向3.3.3.4是不行的,这样的话vm3一张路由表就会产生两个网关。 正确解决:在vm3上加路由
route add -net 4.4.4.0 netmask 255.255.255.0 dev ens37
原作者:黑马程序员
原平台:黑马程序员百家号
原链接:黑马程序员:掌握Linux路由,这一篇就够了!
更多推荐
所有评论(0)