linux – 路由不正确匹配 – 网络无法访问
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 路由不正确匹配 – 网络无法访问,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1828字,纯文字阅读大概需要3分钟。
内容图文
![linux – 路由不正确匹配 – 网络无法访问](/upload/InfoBanner/zyjiaocheng/957/ed2bacdc724b4dc5829762e6ff3fa93f.jpg)
如果我有两条具有相同目的地的路由,系统是否应该选择与其源地址匹配的路由?我正在尝试使用from关键字将源地址约束路由添加到路由表中.
例如,我在接口e1中有一个地址为2001:db9:1 :: 2的主机.如果我添加到2001的正常路由:db9:1 :: 3如下,ping6工作正常:
root@pc:/# ip -6 route add 2001:db9:1::3 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 dev e1 metric 1024
接下来,我使用from关键字添加源约束路由,使用未分配给任何接口的某个源地址:
root@pc:/# ip -6 route add 2001:db9:1::3 from 2001:db9:a::2 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 from 2001:db9:a::2 dev e1 metric 1024
2001:db9:1::3 dev e1 metric 1024
如果我现在尝试ping,我会收到网络无法访问的消息.当系统发现第一个源约束条目不起作用时,它不应该尝试第二个条目并成功吗?
有趣的是,如果我添加一个带有from说明符但具有正确源地址的路由,则选择正确的路由并且ping成功.
root@pc:/# ip -6 route add 2001:db9:1::3 from 2001:db9:1::2 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 from 2001:db9:1::2 dev e1 metric 1024
2001:db9:1::3 from 2001:db9:a::2 dev e1 metric 1024
2001:db9:1::3 dev e1 metric 1024
(我也尝试使用2001:db9:1 :: 1作为源,结果仍然成功,所以词典顺序无关紧要).因此,如果目的地存在源约束路由,则忽略非源约束路由.
我已经检查了内核配置(版本4.9.13)并启用了IPV6_SUBTREES.有任何想法吗?
解决方法:
似乎在同一路由表中混合普通和源特定路由会导致意外行为.这在linux内核源代码中的net / ipv6 / Kconfig中提到:
config IPV6_SUBTREES
bool "IPv6: source address based routing"
depends on IPV6_MULTIPLE_TABLES
---help---
Enable routing by source address or prefix.
The destination address is still the primary routing key, so mixing
normal and source prefix specific routes in the same routing table
may sometimes lead to unintended routing behavior. This can be
avoided by defining different routing tables for the normal and
source prefix specific routes.
If unsure, say N.
将源约束路由放在单独的路由表中可以提供正确的行为.
内容总结
以上是互联网集市为您收集整理的linux – 路由不正确匹配 – 网络无法访问全部内容,希望文章能够帮你解决linux – 路由不正确匹配 – 网络无法访问所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。