局域⽹如何连通ip地址和⽹关ip不在同⼀个地址的主机
[toc]
问题描述
这神奇的问题源⾃⼤学同学⽼王遇到的⼀个客户机房组⽹⽅案:
级联路由器.jpg
可以看到井上的操作机(PC)的所⽤ip跟其配置的默认⽹关亦即路由器(172.16.16.1/16)不在同⼀个⽹段,该PC在可以上外⽹。
但把井下⼯控机(EPC)按照图上配置也接在该路由器以后,PC ping不通EPC了。
要搞清这个问题产⽣的原因,⾸先得搞清楚ping协议(ICMP)是在⼲什么,怎么⼲的。这就⼜牵扯到ARP协议和路由相关知识。
ARP协议
主要原理:
层⼆协议,当本机ARP表⾥查不到所需要寻址的ip对应的MAC地址时,会⽤ip层⼆⼴播包(层⼆⽬的地址填成全F)向⽹络发请求,等具有该ip的设备回复,回复包⾥会有该设备的MAC地址,如此便知道了哪个ip对应的是哪个MAC地址,该对应关系会被发送⽅和被请求⽅放⼊ARP缓存表。
相关机制:
A RP监听及处理:
每个设备都需要处理收到的ARP⼴播包,如果该包的⽬的ip是⾃⼰,则以对应的ARP响应包作回复,同时更新arp缓存
表;否则直接丢弃。
A RP缓存表:
即ARP缓存(ARP Cache),基本每个以太⽹设备都会维护⼀张ARP表,⽤来存放IP地址和MAC地址的关联信息。该表通常是动态更新的,每⼀对学习到的映射关系都有⼀个⽼化时间,通常是20分钟。
通过配置,也可以让⼀些表项变成静态的。
其他特性:
ARP代理:服务器功能,可使ARP⼴播跨越⼦⽹
免费ARP:探测是否存在ip地址冲突
报⽂格式
ARP报⽂
ICMP协议
ICMP是⼀个⽹络层协议,它不像ARP包⼀样对于上层来说是⾃动进⾏的,⽽是需要在应⽤⾥⼿动把它发出去。
ICMP协议的功能
I C MP协议的功能主要有:
1. 确认IP包是否成功到达⽬标地址
2. 通知在发送过程中IP包被丢弃的原因
电脑IP地址在哪里看3. 其他诊断查询
p ing命令
功能
(1)能验证⽹络的连通性
(2)会统计响应时间和TTL(IP包中的Time To Live,⽣存周期)
实现⽅式
(1)ping命令会先发送⼀个 ICMP Echo Request给对端
(2)对端接收到之后, 会返回⼀个ICMP Echo Reply
(3)若没有返回,就是超时了,会认为指定的⽹络地址不存在。
tr ace r oute命令
家⽤路由器LAN-WAN级联
双⼦⽹局域⽹