在这一篇文章中http://blog.csdn.net/zhangdaisylove/article/details/46892917的案例,明确的说明两个不同网段的PC不能Ping的通,其实他给出的答案是片面的,忽略了有路由的功能。

如题,两台PC相连,假设PC1的IP为1.1.1.1,PC2的IP为2.2.2.2。

当PC1 Ping PC2时,会首先查看自己的APR缓存,看是否有2.2.2.2对应MAC地址。第一次显然没有,那么就需要发送ARP包来询问谁的IP地址为2.2.2.2

PC2收到来自PC1的ARP包之后,会回答说我就是2.2.2.2,将MAC地址发送个PC1.

如果按照这个思路,显然是可以Ping的通的。

但是,问题的根源就在这里了,ARP包是在什么情况的时候发送。

ARP协议是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题的。

也就是说当PC1想Ping PC2之前,要先看PC2是否与自己在同一个网段上,如果在一个网段上,可以直接广播ARP,如果不在,那么需要向网关发送ARP包,

网关查询自己的ARP缓存。也就说如果两台直连,不通网段是无法Ping通的。

好,那么下面再来看看这篇文章https://www.linuxidc.com/Linux/2017-08/146368.htm的这个图,下面解释了如何实现不同网段之间的电脑进行互Ping:

配置:

1、如图所示先配置所有的IP地址

2、针对不同的机器配置路由

  • Aubin-CentOS1

    route add default gw 10.0.1.1
  • CentOS-R1

    route add -net 10.0.3.0/24 gw 10.0.2.2
    route add -net 10.0.4.0/24 gw 10.0.2.2
    echo 1 > /proc/sys/net/ipv4/ip_forward #启用转发功能(可以理解为启用路由功能)
    iptables -F #关闭防火墙
  • CentOS-R2

    route add -net 10.0.1.0/24 gw 10.0.2.1
    route add -net 10.0.4.0/21 gw 10.0.3.1
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -F
  • CentOS-R3

    route add -net 10.0.2.0/24 gw 10.0.3.2
    route add -net 10.0.1.0/24 gw 10.0.3.2
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -F
  • Aubin-CentOS1

    route add default gw 10.0.4.1

以上就是全部配置,然后用CentOS1去测试,ping CentOS2的IP地址10.0.4.100。如果ping通则所有配置均没问题。如果没有通请参展以下几点做检查。

1、使用route -n查看路由是否生效。

2、cat /proc/sys/net/ipv4/ip_forward查看输出是否为1,如果为0说明没有开启转发功能。

检查echo 1 > /proc/sys/net/ipv4/ip_forward是否执行成功。

3、检查IP 与 掩码是否配置正确,因为有多个IP地址容易搞混,所以好好检查。

4、检查是是否关闭防火墙,执行iptables -F

5、如果在虚拟机环境下做实验,检查MAC地址是否冲突

两个不同网段的PC直连是否可以Ping通,肯定可以Ping的通(转)的更多相关文章

  1. android与PC直连的socket问题

    关键字:abdroid 模拟器 socket 突然有人说使用android的模拟器做socket服务器,PC做客户端,使用UDP通信的时候,android端无法收到数据包.反过来没问题,我觉得这怎么可 ...

  2. Juniper srx新增接口IP,使PC直连srx(转)

    转自:https://www.jianshu.com/p/bc27134bde3d Juniper srx新增接口IP,使PC直连srx 2018.11.19 14:24:15字数 424 概述 需求 ...

  3. linux环境中,两个不同网段的机器互通

    linux环境中,两个不同网段的机器互通   人评论3690人阅读2019-11-18 14:50:21   环境如下:   host1 单网卡 eth0 172.24.100.15/16   hos ...

  4. NAT 模式下有两个虚拟机 网段不一样,一台可上网,可ping通,一台上不了网且ping不通

    NAT 模式下有两个虚拟机 网段不一样,一台可上网,可ping通,一台上不了网且ping不通直接修改网段的话,会登录不上去,解决方法:设置>网络适配器>高级>生成mac地址重新登陆即 ...

  5. PC问题-可以PING通IP,PING名字不通,可以远程,但不能访问共享文件夹?

    问题现象:可以PING通IP,PING名字不通,可以远程,但不能访问共享文件夹? 问题原因:目标主机中NetLogon服务未启动. 问题处理:远程打开目标主机,“我的电脑-管理-服务-启动(改为自动) ...

  6. 路由表flags的U值引起的能ping通网关,ping不通其它网段的案例

    故障的: 正常的: 初步分析: 看路由表的flags ,之前故障时是U.现在正常的是UG查了下说明,应该是这个原因.U — 路由是活动的G — 路由指向网关

  7. 006一句话解决主机pc,Vmware虚拟机,开发板之间的ping问题

  8. 没有IP地址的主机怎样保持IP层联通

    在<两台不同网段的PC直连能否够相互ping通>一文中,我有点像在玩旁门左道,本文中.我继续走火入魔.两台机器,M1和M2,各自有一个网卡eth0,配置例如以下:M1的配置:eth0上不配 ...

  9. Vlan技术总结

    VLAN主要有两个作用: vlan可以有效的控制广播域的范围 vlan可以分组设备,增强局域网的安全性(业务隔离) vlan的范围: 一共有4096个vlan,vlan 1为默认vlan.但其中vla ...

随机推荐

  1. WebBrowser中运行js

    HtmlElement script = wf.WebBrowser.Document.CreateElement("script"); script.SetAttribute(& ...

  2. 分布式系统的负载均衡以及ngnix负载均衡的五种策略

    一般而言,有以下几种常见的负载均衡策略: 一.轮询. 特点:给每个请求标记一个序号,然后将请求依次派发到服务器节点中,适用于集群中各个节点提供服务能力等同且无状态的场景. 缺点:该策略将节点视为等同, ...

  3. 2017 ACM ICPC Asia Regional - Daejeon

    2017 ACM ICPC Asia Regional - Daejeon Problem A Broadcast Stations 题目描述:给出一棵树,每一个点有一个辐射距离\(p_i\)(待确定 ...

  4. Guava cache功能简介(转)

    原文链接:http://ifeve.com/google-guava-cachesexplained/ 范例 LoadingCache<Key, Graph> graphs = Cache ...

  5. P3960 列队

    这是NOIP 2017最后一道题 不知道这道题有没有人代码写的和我一样麻烦. Solution 30分暴力 维护每行每列的元素. 每次删除一个元素的时候, 需要修改一行一列 因此复杂度上界\(O(nm ...

  6. 浅谈BeanUtils的拷贝,深度克隆

    1.BeanUtil本地简单测试在项目中由于需要对某些对象进行深度拷贝然后进行持久化操作,想到了apache和spring都提供了BeanUtils的深度拷贝工具包,自己写了几个Demo做测试,定义了 ...

  7. STL中stack/queue/map以及Boost unordered_map 的使用方法

    一.stackstack 模板类的定义在<stack>头文件中.stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型 ...

  8. ELK系列--问题汇总(二)

    1.Kibana4 dashboard无法保存拖动的visualization位置 原因: 程序bug,json部分未能及时保存拖动的情况 解决方法: 手动在设置中,手动编辑dashboard的jso ...

  9. 使用Unity解耦你的系统—PART4——Unity&PIAB

    在前面几篇有关Unity学习的文章中,我对Unity的一些常用功能进行介绍,包括:Unity的基本知识.管理对象之间的关系.生命周期.依赖注入等,今天则是要介绍Unity的另外一个重要功能——拦截(I ...

  10. logstash收集java日志,多行合并成一行

    使用codec的multiline插件实现多行匹配,这是一个可以将多行进行合并的插件,而且可以使用what指定将匹配到的行与前面的行合并还是和后面的行合并. 1.java日志收集测试 input { ...