情景一:
有一台ip为172.16.160.53服务器,此服务器为固定ip,由于某些特殊情况,此服务器的ip不能修改。
现在这台服务器需要与另外一个网段ip为172.16.176.150服务器进行局域网通信。
局域网通过连接同一个交换机实现。
操作方法:路由表(使用ip route 命令操作静态路由表)
先看看路由表的定义:
所谓路由表,指的是路由器或者其他互联网网络设备上存储的表,该表中存有到达特定网络终端的路径,在某些情况下,还有一些与这些路径相关的度量。路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳的传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用,表中包含的信息决定了数据转发的策略。打个比方,路由表就像我们平时使用的地图一样,标识着各种路线,路由表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路由表根据其建立的方法,可以分为动态路由表和静态路由表。
解决方法:
172.16.160.35 需要ping 通 172.16.176.150
首先,进入35的服务器中:
route -n
结果如下:
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 172.16.160.1 0.0.0.0 UG 100 0 0 eno1
172.16.160.0 0.0.0.0 255.255.240.0 U 100 0 0 eno1
解决方法为:将150的网段路由,添加到35服务器里面就好了。
进入35服务器,查看ip信息
ifconfig
结果如下:
xenbr3 Link encap:Ethernet HWaddr B0:83:FE:D9:B3:2C
inet addr:172.16.176.151 Bcast:172.16.191.255 Mask:255.255.240.0
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:1533682 errors:0 dropped:139662 overruns:0 frame:0
TX packets:51720 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:142772383 (136.1 MiB) TX bytes:23832202 (22.7 MiB)
可以看到子网掩码:255.255.240.0
netstat -r
结果如下:
Destination Gateway Genmask Flags MSS Window irtt Iface
default 172.16.176.1 0.0.0.0 UG 0 0 0 xenbr3
172.16.176.0 * 255.255.240.0 U 0 0 0 xenbr3
可以看到默认网关:172.16.176.1
在35服务器中,输入以下命令:
route add -net 172.16.176.0/20 eno1 //20由子网掩码255.255.255.240计算
或者
route add -net 172.16.176.0/20 gw 172.16.176.1 dev eno1
意思是访问 172.16.176.*网段的数据,都是用172.16.176.1的网关。而默认的使用172.16.160.1的网关。
问题解决
情景二
以前服务器在172.16.160网段后,后来因为一定原因,需要把这台服务器换个地方,同时ip也换了,服务器内置了ArteryCloud,直接在界面修改ip后,发现一个奇怪的现象。ping baidu.com 是正常的,但是ping 原本的ip段,却ping不通。
route print
发现
default 172.16.176.1 0.0.0.0 UG 0 0 0 xenbr3
172.16.160.0 172.16.160.1 255.255.240.0 U 100 0 0 xenbr0
意思为160这个网段使用xenbr0网卡,但是xenbr0是不通的。而服务器的网卡只用了一个:xenbr3.
处理方法:
route del -net 172.16.160.0 dev xenbr0
都是用默认的路由就ok