Linux networkmanager

我们开发的网络,出于保密,只能叫XXX网络,或者我更倾向于称之为WTF-network

由于经常处于封闭的环境,刚一接触新一点的世界,总是有那么一点猝不及防。最近发现配置的静态路由经常消失,经发现是networkmanager在删除无效路由:

1、暴露了俺们对它的无知;

2、未出于安全考虑,共享使用了ip栈的路由表空间(终端兼容);

下面是扫盲用的连接了。

https://wiki.gnome.org/Projects/NetworkManager

没有仔细去探索NM的源码,不过搜索了一下路由更新的事件,有一种我良辰自有一百方法让你(可怜的路由)呆不下去,而你却无可奈何的感觉。。。

/* if @cur_ipx_route is not equal to @plat_route, the route must be deleted. */
            if (   !cur_ipx_route
                || route_dest_cmp_result != 0
                || *p_effective_metric != cur_plat_route->rx.metric)
                vtable->vt->route_delete (priv->platform, ifindex, cur_plat_route);

            cur_plat_route = _get_next_plat_route (plat_routes_idx, FALSE, &i_plat_routes);

再往下就是netlink消息了,可见linux下并无秘密,真是如此,可能异构网络并不能真正安全,或许知此知彼,各凭本事,也能一搏。

 1 nlmsg = _nl_msg_new_route (RTM_DELROUTE,
 2                                0,
 3                                AF_INET,
 4                                ifindex,
 5                                NM_IP_CONFIG_SOURCE_UNKNOWN,
 6                                RT_SCOPE_NOWHERE,
 7                                &network,
 8                                plen,
 9                                NULL,
10                                metric,
11                                0,
12                                NULL);
原文地址:https://www.cnblogs.com/danxi/p/6377643.html