linux – 按需透明地启用网络连接
作者:互联网
在Linux上,我正在寻找一种方法来启用网络连接,一旦程序尝试执行网络操作,如果该网络连接被禁用将失败,而程序甚至没有注意到幕后的特殊情况.
更一般地说,有一种方法在操作系统意识到某个网络操作即将因某种原因而失败的那一刻执行()程序映像,然后等待该程序完成,如果结果是EXIT_SUCCESS,则尝试再次进行网络运营?
解决方法:
Is there a way to exec() a program image the moment the operating system realizes that a certain network operation is about to fail for a certain reason, then wait for that program to finish and, if the result is EXIT_SUCCESS, attempt the network operation again?
没有.
当使用按需拨号时,它依赖于未成功连接触发的重试.维护了默认路由,在建立连接之前丢弃了数据包,以避免网络无法访问的错误,这些错误将以例如TCP连接立即尝试.
我认为旧式的按需拨号还依赖于比目前使用的更长的DNS超时/重试次数.在现代系统上,它在15秒后放弃,which does not seem long enough.
按需拨号完全是一件事,我可以想象在大多数情况下工作
without the program even noticing something special went on behind the scenes.
那怎么办?
如果你试图挖掘旧代码,我很确定你会发现它专门用于PPP.这可能对某些现代移动数据连接有用,也可能没用.但如果它不使用PPP,它将无法使用旧代码.默认路由被分配给网络接口,例如ppp0,但相应的PPP守护程序是使用ondemand选项运行的,因此在需要之前没有真正建立连接.
标签:linux,networking,network-interface 来源: https://codeday.me/bug/20190815/1661743.html