Noo*_*oob 7 networking linux unix centos solaris
如果您有 2 个网络接口连接到默认网关/路由器所在的同一网络,会发生什么?
例如
如果我向 发送数据包8.8.8.8,将使用哪个网络接口?我正在使用 Solaris 10 盒子。但假设这个问题适用于所有 unix/linux 一般实现
在我的路由表中,似乎e1000g1被选为 UG ,但为什么/如何选择?
Mar*_*iae 10
在 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
Run Code Online (Sandbox Code Playgroud)
关键行是以 开头的那一行default,它表示(我的)网关是192.168.73.1。你改变它如下:
> ip route del default
> ip route add default via 192.168.73.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
如果我连接了多个接口,我的路由表将如下所示:
> 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
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,本地流量可以通过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
Run Code Online (Sandbox Code Playgroud)
如果您有多个相同类型的接口(例如多个以太网连接),则优先级将分配给最先连接的接口。
可以说,默认网关由网络本身识别:它是协商 DHCP 转换时传递给您的机器的参数之一(其他参数是网络掩码、网络、广播地址)。您不知道这一点,因为 DHCP 的过程是由network-manager. 有时,您可能希望设置一个不使用 DHCP的静态 IP 地址;在这种情况下,您必须为自己提供上述四个参数。即使在您完全陌生的网络中,也有一些技术可以学习这些参数,但通常您只会在您已经熟悉的 LAN 中设置静态地址。
除了 LAN 和默认网关路由之外,您还可以通过任一接口获得特定路由。在这种情况下,路由的优先级顺序是根据最具体的路由在前的原则确定的。假设您有一个1.1.1.0/24thru路线wlan0。然后,当我们需要路由数据包时,比如说,1.1.1.1这条规则(通过 wlan0)和默认规则(通过 eth0)都适用,但第一个更具体,因此这些数据包将通过wlan0。在这种情况下,当所有其他方法都失败时,即没有其他路由适用时,dafult 网关将成为路由。
在 Linux 中,您可以拥有多个路由表,这称为policy or source routing. 在这种情况下,您还需要内核规则来区分何时应用您可以使用的多个路由表。您可以在此处找到对策略路由的简要介绍。在这种情况下,上述命令保持相同,只是后面跟着您要处理的路由表的名称,例如:
> ip route show table main
> ip route show table MyOtherRoutingTable
Run Code Online (Sandbox Code Playgroud)
您经常会发现对 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
Run Code Online (Sandbox Code Playgroud)
此处网关由default关键字和G标志标识。
您将默认网关更改为:
> route delete default
> route add default 192.168.0.1
> route change default -interface enp0s3
Run Code Online (Sandbox Code Playgroud)
除了policy routingUnix 内核不支持的about 之外,所有注释都保持不变。
| 归档时间: |
|
| 查看次数: |
14462 次 |
| 最近记录: |