一直在用的 yum 今天突然不能用了,开始的时候报错是和 dns 有关,然后又和 repomd.xml 有关。在网上找了很多资料,还是没能解决。刚好今天下午在机房上课,发现没有办法 ssh 回来了,这才发现,原来和默认路由有很大的关系。
我的服务器是双网卡,ip 地址情况如下:
eth0:210.31.X.X 连接外网
eth1:10.16.121.112 连接内网
学校机房:10.16.173.14
首先,我在机房 ssh eth1,发现无法连接。同一网段,无法连接,甚是奇怪!!!
我还有一台笔记本也开着(ip 地址 10.16.121.105),于是 ssh 笔记本,发现能够登录,然后通过笔记本 ssh eth1,成功登录。分别查看两台电脑的路由表如下:
笔记本路由表

服务器路由表:
从上面两张图可以看出,我的笔记本默认路由是 10.16.121.126,而服务器的默认路由是 210.31.197.94。
默认路由的意思:当路由表中与包的目的地址之间没有匹配项时,路由器选择的路由。如果没有默认路由,那么目的地址在路由表中没有匹配项的包将被丢弃。
ssh 是通过 tcp 协议进行联机的,在联机之前,要进行三次握手。
- 笔记本
当我从机房进行 ssh 的时候,首先从10.16.173.14 发出握手请求,当笔记本接收到请求后,将予以回应。这时候,路由表里面没有匹配 10.16.173.14 网段的路由项,所以将回应封闭丢给默认路由,也就是网关 10.16.121.126(并不是每一个默认路由都是网关),然后网关在进行寻址和 10.16.173.14 进行联机。 - 服务器
当在机房 ssh eth1 到服务器的时候,从 10.16.173.14 发送握手请求,这时候,服务器是可以接收到的,然后进行回应,但是它的默认路由是 210.31.197.94,它会将回应封闭丢给 210.31.197.94。由于我 210.31.197.94(交换机)上没有到 10.16.173.254(机房电脑的网关)路由,所以就没办法进行 ssh。
再回过头来说一下 yum 的问题。由于最近学校机房在更新设备,老师把 210 网段的出口关掉了,导致 210 网段出不去。所以我手动改了一下,把默认路由改成了 10 网段,yum 又能正常使用了。
现在还存留一个问题就是,怎样决定开机后的默认路由。由于我双网卡,每次开机后,都会自动选择 210 ip 为默认路由,不知到怎样才能让它开机后默认路由是 10 段。
知道的小伙伴们教教我哈^^