如果您有2个网络接口连接到默认网关/路由器所在的同一网络,将会发生什么?
例如
如果我将数据包发送到8.8.8.8
,将使用哪个网络接口?我正在使用Solaris 10盒。但是,假设此问题适用于所有unix / linux的一般实现
在我的路由表中,似乎e1000g1
选择了UG,但是为什么/如何选择呢?
在Linux和Unix中,每个路由表只能有一个网关。在Linux上,您可以有多个路由表,但是每个路由表都有一个网关。
在Linux中,其标识如下:
> ip route show
default via 192.168.73.1 dev eth0 proto static
192.168.73.0/24 dev eth0 proto kernel scope link src 192.168.73.75 metric 1
关键是从此开始default
,它指出(我的)网关是192.168.73.1
。您进行如下更改:
> ip route del default
> ip route add default via 192.168.73.1 dev eth0
如果我连接了多个接口,则路由表将如下所示:
> ip route show
default via 192.168.73.1 dev eth0 proto static
192.168.73.0/24 dev eth0 proto kernel scope link src 192.168.73.75 metric 1
192.168.73.0/24 dev wlan0 proto kernel scope link src 192.168.73.66 metric 9
如您所见,本地流量可以通过eth0
或传递wlan0
,但是由于较小的metric
值(1比9)将通过路由eth0
。
WAN流量肯定会通过,eth0
因为默认网关已打开dev eth0
。
这些值由您自动维护network manager
,默认情况下,这些电缆支持wifi连接。不过,您可以通过与之前类似的命令来覆盖其选择,
> ip route delete default
> ip route add default via 192.168.73.1 dev wlan0
如果您具有多个相同类型的接口(例如,多个以太网连接),则优先级将优先于首先连接的接口。
可以说,默认网关由网络本身标识:它是在协商DHCP转换时传递给您的计算机的参数之一(其他参数是网络掩码,网络,广播地址)。您没有意识到这一点,因为DHCP的过程由来处理network-manager
。有时,您可能希望设置一个不使用DHCP的静态IP地址。在这种情况下,您将必须提供上述四个参数。即使在您不熟悉的网络中,也有一些学习这些参数的技术,但是通常,您只会在您已经很熟悉的LAN中设置静态地址。
除了您的LAN和默认网关路由外,您还可以通过任一接口使用特定的路由。在这种情况下,首先根据最特定的路由原理确定路由的优先级顺序。假设你有一个路由,1.1.1.0/24
直通wlan0
。然后,当我们需要路由数据包时,例如,1.1.1.1
此规则(通过wlan0)和默认规则(通过eth0)都适用,但是第一个规则更具体,因此这些数据包将通过wlan0
。在这种情况下,dafult网关将在所有其他路由均失败时(即在没有其他路由适用时)成为路由。
在Linux中,您可以有多个路由表,这称为policy or source routing
。在这种情况下,您还需要一个内核规则来区分何时应用多个路由表。您可以在此处找到有关策略路由的简要介绍。在这种情况下,除了上面的命令后跟您要处理的路由表的名称之外,上述命令保持相同,例如:
> ip route show table main
> ip route show table MyOtherRoutingTable
您会经常发现对诸如netstat,route,ifconfig之类的命令的引用。在Linux中(但在Unix上不是,请阅读下面的最高注释),它们已经过时了。目前的命令,IP的的iproute2的套件,对于所有这些,和一些替补球员。通过谷歌搜索,linux ip cheat sheet
您可以找到比较该ip
实用程序和以前的实用程序功能的站点。
编辑
在Unix上,上面的命令将是:您查询路由表为
> netstat -rn -f inet
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.11.1 UGSc 10 0 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 2 161444 lo0
169.254 link#4 UCS 1 0 en0
169.254.10.9 10:c3:7b:9d:c8:78 UHLSW 0 0 en0
192.168.11 link#4 UCS 4 0 en0
192.168.11.1 10:6f:3f:25:c6:33 UHLWIir 11 4589 en0 1162
192.168.11.56 88:53:2e:10:77:5f UHLWI 0 0 en0 1187
192.168.11.65 2:f:b5:70:5b:22 UHLWI 0 0 en0 1081
192.168.11.67 127.0.0.1 UHS 0 0 lo0
192.168.11.113 6:20:3e:52:16:4d UHLWIi 2 278 en0 1188
在此,网关由default
关键字和G
标志标识。
您将默认网关更改为:
> route delete default
> route add default 192.168.0.1
> route change default -interface enp0s3
每个注释保持不变,但关于的注释除外policy routing
,Unix内核不支持这些注释。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句