起因:
接到同事反馈,在公司内部不能访问外地的一台服务器(服务器通过vpn拨号连进公司),让帮忙处理一下。
确认情况:
因为还在外边出差,所以首先vpn连到公司,然后测试ping那台服务器获取的VPN地址,发现能够ping通。。好吧,和同事又确认了下,确实在公司内部电脑连上VPN也可以访问到那台服务器,但是关掉VPN就访问不到了。
处理过程:
1、首先远程到公司内部电脑,跟踪路由查看到哪里不通。
让同事协助用QQ远程到公司一台电脑,测试ping和telnet那台服务器相应端口发现确实都不通。然后尝试用tracert跟踪路由,发现到达网关之后第二跳就不通了
1 2 3 4 5 6 7 8 9 10 11 |
C:\Users\zcy>tracert 192.168.5.26 通过最多 30 个跃点跟踪到 192.168.5.26 的路由 1 2 ms 2 ms 2 ms 192.168.1.5 2 * * * 请求超时。 3 * * * 请求超时。 4 * * * 请求超时。 5 * * * 请求超时。 6 * ^C C:\Users\zcy> |
但是奇怪的是,ping那台RouterOS服务器的IP地址却是通的,并且跟踪路由也只经过一下网关就到了。
1 2 3 4 5 6 7 8 9 10 |
C:\Users\zcy>tracert 192.168.5.104 通过最多 30 个跃点跟踪到 192.168.5.104 的路由 1 3 ms 4 ms 2 ms 192.168.1.5 2 <1 毫秒 <1 毫秒 <1 毫秒 192.168.5.104 跟踪完成。 C:\Users\zcy> |
2、连接到192.168.1.5那台交换机上检查路由表看下是否正常。
根据路由表信息来看,到192.168.5.26那台服务器的路由是有的,这台交换机多个VLAN配置了不同的IP,访问5.0网段的请求下一跳被指向本机192.168.5.5这个IP,即vlan88的接口IP。(讲道理路由有的,到5.104也能通,到5.26不应该不通呀。。。。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<zcy>display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 7 Routes : 7 Destination/Mask Proto Pre Cost Flags NextHop Interface 0.0.0.0/0 Static 50 0 RD 192.168.1.1 Vlanif1 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.1.0/24 Direct 0 0 D 192.168.1.5 Vlanif1 192.168.1.5/32 Direct 0 0 D 127.0.0.1 Vlanif1 192.168.5.0/24 Direct 0 0 D 192.168.5.5 Vlanif88 192.168.5.5/32 Direct 0 0 D 127.0.0.1 Vlanif88 <zcy> |
Destination/Mask: 目的IP地址。
Proto: 发现该路由的协议(Static:静态;Direct:直连)。
Pre: 协议优先级,如果不同路由协议发现到相同目的地址的多条路由,根据优先级选择。数字越小优先级越高。
Cost: 该路由项的Cost值,如果同一个路由协议发现了多条到相同目的地址的路由,根据cost值选择。数字越小优先级越高。
Flags: 是否下发到FIB表。
NextHop: 指定目的地址的下一跳IP地址,如果是192.168.1.5则说明该项为本机接口。
Interface: 指定目的地址的出接口。
3、检查下交换机arp表
根据交换机的arp表信息,发现RouterOS服务器是连在了交换机GE0/0/21接口上。。在交换机上ping RouterOS地址192.168.5.104也通的,但是ping那台服务器VPN地址就是不通。。奇了葩了。。使用display current-configuration检查了交换机的所有配置也没其他策略啥的。
1 2 3 4 5 6 7 8 9 10 |
<zcy>display arp IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE VLAN ------------------------------------------------------------------------------ 192.168.5.5 48d5-9B00-9669 I - Vlanif100 192.168.5.104 0050-56C0-0008 11 D-0 GE0/0/21 100 ------------------------------------------------------------------------------ Total:66 Dynamic:58 Static:1 Interface:7 <zcy> |
IP ADDRESS: ARP表中的IP地址。
MAC ADDRESS: 该IP地址对应的MAC地址。
EXPIRE(M): 该表项的超期时间,单位为分钟。当超期时间减少到0后,该动态表项将被删除。
TYPE: ARP表项类型:
I:Interface,接口本身的MAC地址
D:Dynamic:通过ARP协议报文获取的动态表项
S:Static,通过静态配置获取的静态表项
B:Binding,在DHCP服务器分配IP地址时获取的授权表项
P:Protocol,通过SNMP协议同步到的表项
VLAN: 接口属于哪个VLAN
INTERFACE: 发往该地址的报文从哪个接口发出去。
4、检查RouterOS配置
于是想着会不会RouterOS本身做了策略或则路由配置有问题,但是连到RouterOS上,检查了路由表及防火墙,发现RouterOS路由都配置好好的,防火墙也没有限制啥的。。并且在RouterOS上ping服务器地址和内网交换机啥的也都是通的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[admin@MikroTik] > ip route print [admin@MikroTik] > ip firewall export [admin@MikroTik] > ping 192.168.5.5 SEQ HOST SIZE TTL TIME STATUS 0 192.168.5.5 56 255 1ms 1 192.168.5.5 56 255 1ms sent=2 received=2 packet-loss=0% min-rtt=1ms avg-rtt=1ms max-rtt=1ms [admin@MikroTik] > [admin@MikroTik] > ping 192.168.5.26 SEQ HOST SIZE TTL TIME STATUS 0 192.168.5.26 56 128 14ms 1 192.168.5.26 56 128 14ms sent=2 received=2 packet-loss=0% min-rtt=14ms avg-rtt=14ms max-rtt=14ms [admin@MikroTik] > |
5、尝试配置静态arp条目
想了老半天,突然想到RouterOS是部署在一台虚拟机里的,并且RouterOS也可以算是一个三层的设备了,交换机路由只是把访问5.0网段的请求发到VLAN88里,但是好多接口都属于VLAN88。交换机里没有明确配置详细路由会不会路由并不知道往哪走,确实查看arp表也没有到那台服务器的相关信息。
于是打算尝试手动配置一个静态arp(因为VPN连进来也只会获取一个IP,没有MAC的,所以MAC地址写了RouterOS的,交换机arp表上有也不用去查了)
1 2 |
<zcy>system-view [zcy]arp static 192.168.5.26 0050-56C0-0008 vid 100 interface GigabitEthernet0/0/21 |
再尝试从交换机上ping那台服务器IP,,发现已经能ping通了。。然后在电脑上ping发现也正常了。万事大吉!