首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用两个不同的接口向外部IP切换?

如何使用两个不同的接口向外部IP切换?
EN

Unix & Linux用户
提问于 2019-07-05 02:09:12
回答 1查看 4.2K关注 0票数 3

我已经在这个网站上看过一些关于多界面pings的例子,但是这些方法似乎都不适合我。

我有两个接口

  • eth0 ( 192.168.0.x)
  • wlan0 (192.168.1.2)

eth0从dhcp服务器获取其IP。

wlan0具有静态IP。

当我运行命令时

代码语言:javascript
复制
ping -I eth0 www.google.com

我得到的结果似乎来自eth0 (ipv6 )。

当我运行命令时

代码语言:javascript
复制
ping -I wlan0 www.google.com

我得到以下输出。

代码语言:javascript
复制
connect: Network is unreachable

如果我拔掉我的eth0,然后再次运行comand,我就会得到想要的结果。

如何通过选择接口来平平外部服务器?就好像一个在支配着,如果一个存在,另一个就被忽视了。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-07-05 06:33:16

问题是路由是如何工作的。

如果您有多个接口,每个接口都可以配置一个网关。我不知道路由表是如何在您的特定系统上被填满的,但我怀疑您的系统对第一个默认路由的优先级是最高的,其次是第二个默认路由,依此类推。只有最佳默认路由处于活动状态。如果您关闭了相应的接口,它的默认路由也会消失,因此,如果有其他默认路径,它将接管。这种优先权被称为“公制”。

当您ping时,您的系统会创建一个具有某些源地址的数据包。它可以自行选择一些地址(从本地网络路由的"src“属性中选择),但是您可以通过-I交换机指定要使用的地址或本地网络路由从中获取该地址的接口。这就是这个swich所做的;只在设置源地址。它不选择路由,也不影响使用哪个接口。

正在发生的事情:从“第一个”接口发送一个具有“第二个”接口源地址的数据包到“第一个”网关。很可能它被丢弃在网关上,它不知道如何到达那个源地址(当回复的时候,它应该回复谁?),或者不希望它以这种方式出现。

该怎么办呢?您应该根据源地址设置路由。这是高级话题。在Linux中,您设置了几个路由表,每个路由表都有不同的默认路由,并指示系统根据数据包源地址选择要使用的路由表。这就是所谓的多归位。

在Linux中,在您的情况下,基本的多归属设置将是:

代码语言:javascript
复制
ip route add default via 192.168.0.GW0 table 1
ip route add default via 192.168.1.GW1 table 2
ip rule add from 192.168.0.x lookup 1
ip rule add from 192.168.1.2 lookup 2

前两个是默认的resp路由。网关,第三和第四是使用哪个表的哪个地址。当然,您最好将具体的实际值放入占位符中。DHCP?忘记多归属,或者编写一个脚本,在接收地址时动态地设置所有内容,并删除当地址丢失时(通常,路由将被自动删除,则应该始终手动删除该规则)。启动时自动配置?您的分发手册可以指导您进入正确的方式,准备打破网络,并知道如何将它恢复到干净的状态。

票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/528467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档