Tailscale 在 CentOS Linux 主机上使用 Policy-Based Routing(PBR)来控制路由。PBR 是一种根据特定策略或条件将数据包路由到不同路径的技术。
当你在 CentOS Linux 主机上配置 Tailscale 时,它会创建一个虚拟网络接口,并使用 PBR 来指定哪些流量应通过 Tailscale 接口进行转发。这样,当数据包到达 CentOS Linux 主机时,根据 PBR 的规则,内核将决定将其转发到 Tailscale 接口。
要检查 CentOS Linux 上的 PBR 配置,可以执行以下步骤:
- 检查路由表:使用
ip route show
命令查看当前的路由表。确保 Tailscale 接口(通常是ts0
)具有正确的路由规则,以便将流量转发到 Tailscale 网络。 - 查看路由策略规则:使用
ip rule show
命令查看当前的路由策略规则。确保你有适当的规则配置,以便根据策略将流量路由到 Tailscale 接口。 - 检查 PBR 配置文件:Tailscale 在 CentOS Linux 上使用
/etc/tailscale/tailscale.conf
文件来配置 PBR。你可以查看该文件以确认配置是否正确。
需要注意的是,具体的 Tailscale 配置和 PBR 规则可能因你的网络和需求而有所不同。如果你遇到问题或需要更详细的指导,请参考 Tailscale 的官方文档或联系 CentOS Linux 的技术支持团队,以获取特定于你的环境和要求的帮助和支持。
查看本地 路由
root@raspberrypi:/home/admin# ip route
default via 192.168.105.1 dev eth0 proto dhcp src 192.168.105.13 metric 202
192.168.105.0/24 dev eth0 proto dhcp scope link src 192.168.105.13 metric 202
root@raspberrypi:/home/admin# ip route list table 52
100.64.0.2 dev tailscale0
100.64.0.3 dev tailscale0
100.100.100.100 dev tailscale0
192.168.124.0/24 dev tailscale0
扩展linux下路由的知识
在linux下面,查看本地路由表及优先级
在Linux下查看本地路由表和优先级,可以使用以下命令:
查看路由表:使用
ip route show
命令可以显示当前系统的路由表信息。该命令将列出所有的路由条目,包括目标网络、网关、接口和优先级等信息。ip route show
查看路由策略规则:使用
ip rule show
命令可以显示当前系统的路由策略规则。这些规则定义了路由选择的优先级和策略。ip rule show
查看默认路由:使用
ip route show default
命令可以显示当前系统的默认路由信息,包括默认网关和出口接口等。ip route show default
这些命令将提供有关当前系统路由表和路由策略规则的详细信息,包括目标网络、网关、接口、优先级等。请注意,执行这些命令通常需要管理员权限(使用sudo
)来查看完整的路由表信息。
关于ip rule show,请给出实例,并做出解释
当你在Linux系统上运行ip rule show
命令时,它会显示当前系统的路由策略规则。这些规则定义了路由选择的优先级和策略。以下是一个示例输出及其解释:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
解释:
0: from all lookup local
:这条规则指定了本地主机的路由规则。当数据包的目标地址是本地主机时,将使用本地路由表进行路由选择。32766: from all lookup main
:这条规则指定了主要路由表的路由规则。当数据包的目标地址不匹配本地主机或其他具体规则时,将使用主要路由表进行路由选择。32767: from all lookup default
:这条规则指定了默认路由表的路由规则。当数据包的目标地址不匹配本地主机、主要路由表或其他具体规则时,将使用默认路由表进行路由选择。
请注意,实际的输出可能会因系统配置和网络环境而有所不同。每个规则都有一个唯一的标识符,规则的顺序决定了优先级,较低的标识符具有更高的优先级。路由策略规则的设置可以通过修改相关配置文件来进行自定义。
0 32766 32767代表什么意思?
在Linux中,0、32766和32767是预留的特殊标识符,用于表示不同的路由策略。以下是它们的含义:
0
:这是特殊的本地路由表标识符。它指定了用于本地主机的路由规则。当数据包的目标地址是本地主机时,将使用本地路由表进行路由选择。32766
:这是特殊的主要路由表标识符。它指定了主要路由表的路由规则。当数据包的目标地址不匹配本地主机或其他具体规则时,将使用主要路由表进行路由选择。32767
:这是特殊的默认路由表标识符。它指定了默认路由表的路由规则。当数据包的目标地址不匹配本地主机、主要路由表或其他具体规则时,将使用默认路由表进行路由选择。
这些预留的标识符用于定义路由策略规则,并在路由选择过程中确定路由表的使用顺序。其他标识符可以用于定义自定义的路由策略规则。路由策略规则的顺序由标识符的值决定,较低的标识符具有更高的优先级。这样可以根据需要定义不同的路由规则,并按照优先级进行路由选择。
local main default 代表啥意思?
在Linux中,local
、main
和default
是预定义的路由表名称,用于表示不同的路由表。以下是它们的含义:
local
:这是本地路由表,用于处理本地主机的数据包。它包含本地主机的IP地址和回环接口等信息。当数据包的目标地址是本地主机时,将使用本地路由表进行路由选择。main
:这是主要路由表,也称为主路由表。它是默认的路由表,用于处理大多数数据包。当数据包的目标地址不匹配本地主机或其他具体规则时,将使用主要路由表进行路由选择。default
:这是默认路由表,用于处理无法匹配到其他路由表的数据包。当数据包的目标地址不匹配本地主机、主要路由表或其他具体规则时,将使用默认路由表进行路由选择。
这些预定义的路由表名称提供了一种组织和管理路由规则的方式。每个路由表都包含一组路由规则,用于确定数据包的下一跳和路径。通过在不同的路由表中定义不同的路由规则,可以实现复杂的路由策略和网络配置。
如果自己增加一个路由策略,请举例,并做出详细解释?
当你需要自定义路由策略时,可以添加自己的路由表和路由规则。下面是一个示例,说明如何添加一个名为custom
的路由表,并定义一条路由规则:
创建一个新的路由表:
sudo ip route add table custom
添加一条路由规则到新的路由表:
sudo ip rule add from 192.168.1.0/24 table custom
在上述命令中,
192.168.1.0/24
是一个示例的源地址,你可以根据需要替换为你的实际源地址。这条规则的含义是,当数据包的源地址是192.168.1.0/24
时,将使用custom
路由表进行路由选择。添加路由规则的下一跳:
sudo ip route add default via 192.168.1.1 dev eth0 table custom
在上述命令中,
192.168.1.1
是示例的下一跳地址,你需要将其替换为你的实际下一跳地址。这条规则的含义是,将所有从192.168.1.0/24
源地址发送出去的数据包,通过eth0
接口发送到192.168.1.1
下一跳。
通过上述步骤,你创建了一个名为custom
的路由表,并定义了一条路由规则,指定了特定源地址的数据包使用该路由表,并将其发送到指定的下一跳。你可以根据需要添加更多的路由规则和配置。
请注意,上述示例是基于Linux的命令行操作。具体的步骤和命令可能因操作系统版本和网络配置而有所不同。在实际使用时,建议参考操作系统的文档或咨询网络管理员以获取更准确和详细的指导。
/etc/iproute2/rt_tables 中的数字代表啥意思?
在Linux系统中,文件/etc/iproute2/rt_tables
用于定义路由表的名称和标识符之间的映射关系。每行都包含一个标识符和对应的路由表名称。
这些数字代表路由表的标识符(或称为表号),用于在Linux系统中唯一标识每个路由表。这些标识符的范围通常是从0到255。
在/etc/iproute2/rt_tables
文件中,每个标识符与一个路由表名称相关联。这个名称是你为路由表定义的自定义名称,用于识别和引用该路由表。你可以根据需要为每个路由表选择一个有意义的名称。
通过在/etc/iproute2/rt_tables
文件中定义路由表的标识符和名称,你可以在Linux系统中配置多个自定义路由表,并在网络配置中使用它们。这允许你根据特定需求和策略,将流量路由到不同的路由表中,实现更灵活和高级的网络配置。