两个不同网段的PC直连是否可以Ping通,肯定可以Ping的通(转)

在这一篇文章中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地址是否冲突

原文地址:https://www.cnblogs.com/EasonJim/p/8449507.html

时间: 2024-09-29 21:48:38

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

android与PC直连的socket问题

关键字:abdroid 模拟器 socket 突然有人说使用android的模拟器做socket服务器,PC做客户端,使用UDP通信的时候,android端无法收到数据包.反过来没问题,我觉得这怎么可能,首先如果你代码没问题的话,那就只有真实IP和端口有问题了.于是我搜索了一下,网上还真不少人问这个问题,我不得不说现在java程序员都被SSH毁了,很多已经到了不去思考的地步了,遇到问题想都不想一问,原来你也这样?既然大家都这样,那就说明无法解决了………. 特别是对java来说开源库各种各样,很多

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

环境如下:   host1 单网卡 eth0 172.24.100.15/16   host2 双网卡 eth0 172.24.100.14/16   eth1 192.168.122.214/24   host3 单网卡 eth0 192.168.122.215/24 整个环境如下图: 要求:让host1和host3互通,也就是host1能ping通host3,host3也能ping通host1 解决: 第一,在host2上,保证能同时ping通host1和host3 第二,在host1上,添

CSDN日报20170409 ——《扯蛋的密码规则》

[程序人生]扯蛋的密码规则 作者:陆其明 在很多很多关于密码的糟糕事情中,你知道最扯的是什么吗?密码规则! 2015年8月11日,我曾在twitter上说过:"在我的有生之年,如果我们没有帮用户解决密码问题,我死后变成鬼,也要缠着你!" 今日我再提让这句誓言,想让它成为互联网上的永久记录.我不知道是否有来世,但我很快就会知道的,我打算如地狱恶魔般出来游荡-- [图形渲染] <Real-Time Rendering 3rd> 提炼总结(一) --全书知识点总览 作者:毛星云

没有IP地址的主机如何保持IP层联通

在<两台不同网段的PC直连是否可以相互ping通>一文中,我有点像在玩旁门左道,本文中,我继续走火入魔.两台机器,M1和M2,各自有一个网卡eth0,配置如下:M1的配置:eth0上不配置任何IP地址.M2的配置:eth0上不配置任何IP地址.....爆炸,机器上都没有IP地址,通个毛线球啊!!        我只是想在7年后进一步阐述一个常识,即能否互通,路由是根本.在7年前的2010年,我写了一篇文章<关于IP网段间互访的问题-路由是根本>,在前段时间,我写了一篇类似的<

Vlan技术总结

VLAN主要有两个作用: vlan可以有效的控制广播域的范围 vlan可以分组设备,增强局域网的安全性(业务隔离) vlan的范围: 一共有4096个vlan,vlan 1为默认vlan.但其中vlan 0 和 vlan 4095是保留的,故用户真正可以创建的vlan数为4094. Cisco交换机中,vlan 1002-1005默认用于 FDDI 和 TOKEN RING Vlan标签: 交换机用vlan标签来区分不同的以太网帧. Access类型端口: 仅属于某个特定的vlan 行为总结:“

玩转GNS3——实现两台路由设备与两台PC设备之间互联

之前博主介绍了虚拟软件GNS3的详细安装流程,以及做了CPU占用率的部分优化.既然准备工作都已经做好了,那咱们就来实际玩一玩,用GNS3来实现两台路由设备与两台PC设备之间的互通互联. 首先,我们双击这只呆萌的变色龙 进入GNS3的界面之后,我们选择两个路由设备与PC设备,分别拖放到拓扑操作区中 为了实现路由互通互联的功能,R1和R2设备都要设置一下 R1和R2设备要设置一下硬盘空间 下一步开始连线,点PC设备会提示选择网卡 连接R1设备的接口我用的是f0/0 R1接口可用的只有f0/1 连接到

eNSP同网段PC机互联操作

system-viewvlan 10 / vlan 20quit (可打可不打)interface  Ethernet 0/0/1(0/0/2........)port link-type access  port default vlan 10 system-viewinterface GigabitEthernet 0/0/2port link-type trunkport trunk allow-pass vlan10  20 效果:同网段的PC机可以互ping,不同网段无法互ping.

关于两个交换机中存在多个地址池多个VLANIF的网络互通问题----&gt;新手之路

汇聚层两台交换机简称HJ 1.HJ 2.在HJ1和HJ2中配置了链路聚合,多个VLAN,多个地址池,为了不同网段的PC机能通过DHCP获得IP地址,分别为每个地址池建立了VLANif,,问题来了,交换机中存在不同网段的VLANif(此处的vlanif地址应和每和地址池的配置的网关地址一致),如何让两台交换机所连接的不通网段的pc机相互通信? 本新手的处理方法,首先在两个交换机中建立同一个VLAN,把VLAN加入聚合而成的eth-trunk口,当然其他的要通过eth-trunk的VLAN也要加入(

Linux网络配置——实现不同网段虚拟机的通信

首先我们需要了解一些网络配置的基本命令 一:基础命令 centos6网卡名修改(网卡名的修改可以让我们在配置时更方便快速): 在Linux中//etc/udev/rules.d/70-persistent-net.rules中存放着网卡名掉的基础信息, 通过vim /etc/udev/rules.d/70-persistent-net.rules 查看和修改. 将NAME 的修改之后保存退出 ,然后通过命令 modprobe -r eth1 ; modprobe eth1 卸载驱动并加载驱动以重