Linux中路由route和ip route

这篇具有很好参考价值的文章主要介绍了Linux中路由route和ip route。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ssssss

如果你要求在使用 macvlan 配置多个 IP 和 MAC 地址时,要求 ARP 响应的 MAC 地址与 IP 地址一一对应,可以考虑使用不同的 macvlan 接口来实现。

首先,创建多个 macvlan 接口,并为每个接口分配对应的 IP 地址和 MAC 地址。例如,创建两个接口 macvlan1macvlan2

ip link add link eth0 macvlan1 type macvlan mode bridge
ip addr add 192.168.1.100/24 dev macvlan1
ip link set dev macvlan1 address 00:11:22:33:44:55

ip link add link eth0 macvlan2 type macvlan mode bridge
ip addr add 192.168.1.200/24 dev macvlan2
ip link set dev macvlan2 address 00:11:22:33:44:66

这里假设你的基础网络设备是 eth0,你可以根据实际情况修改。

接下来,需要配置每个接口的 ARP 响应行为,使其与相应的 IP 地址一一对应。可以使用 ip 命令的 neigh 子命令来实现:

ip neigh add 192.168.1.100 dev macvlan1 lladdr 00:11:22:33:44:55 nud permanent
ip neigh add 192.168.1.200 dev macvlan2 lladdr 00:11:22:33:44:66 nud permanent

这样配置之后,当有 ARP 请求发送到相应的 IP 地址时,会使用对应的 MAC 地址进行响应。

需要注意的是,每个 macvlan 接口必须使用不同的 IP 地址和 MAC 地址,并且你需要根据实际需要配置相应的路由规则和防火墙策略来确保流量可以正确地转发。

希望这能帮助你解决问题!如果还有其他疑问,请随时提问。

IPV4的源地址路由配置:

1. 打开Linux路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward

2.添加路由表,自定义的路由表应介于0到252。
ip route add 172.25.2.0/24 via 192.168.1.5 table 100
ip route add default via 192.168.1.5 table 100
172.25.2.0/24 表示发往的网段
default 默认路由
via表示192.168.1.5表示网关

3.关联一个规则到路由表
ip rule add from 192.168.1.2 table 100
from表示源IP为192.168.1.2的包,查询路由表100. 

4.刷新路由缓存
ip route flush cache

Linux路由表是一个内核数据结构,用来描述Linux主机与其它网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。Linux路由表的主要组成部分包括目的网络、下一跳、子网掩码和接口等信息。

Destination:表示可以到达的目标ID,0.0.0.0/0表示所有未知网络,又称默认路由,优先级最低。
Genmask:目标网络对应的netmask
Iface:到达对应网络,应该从当前主机哪个网卡发送出去。
Gateway:到达非直连的网络,将数据发送到临近路由器的临近本机的接口的IP地址,如果是直连网络,Gateway是0.0.0.0
Metric:开销cost;值越小,路由记录的优先级越高。

route 
route -n

netstat -nt
ss -nt
链路层
ip link
网络层
ip address
ip address add 2.2.2.2/24 dev eth2 label eth2:1
路由
ip route

1、实践例子

1、查看一个命令属于哪个软件包
rpm -qf `which route`
net-tools-2.0-0.52.20160912git.an8.x86_64
rpm -qf `which ip`
iproute-5.15.0-4.an8.x86_64
=====================================================
2、删除一个默认网关
2.1、route语法:route del -net 目标网络地址 netmask 子网掩码 gw 网关地址
例如,要删除目标网络地址为192.168.1.0/24的路由表项,可以使用以下命令:
route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

2.1、ip route语法:ip route del 目标网络地址/子网掩码 via 网关地址
例如,要删除目标网络地址为192.168.2.0/24的路由表项,可以使用以下命令:
ip route del 192.168.2.0/24 via 192.168.0.1

route del default gw 192.168.168.1
ip route del default via 192.168.168.1 dev ens160 proto static metric 100

3、添加一个默认网关
3.1、route语法:route add -net 目标网络地址 netmask 子网掩码 gw 网关地址
例如,要将目标网络地址为192.168.1.0/24的数据包通过网关地址为192.168.0.1的网关进行转发,可以使用以下命令:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.1

3.2、ip route语法:ip route add 目标网络地址/子网掩码 via 网关地址
例如,要将目标网络地址为192.168.2.0/24的数据包通过网关地址为192.168.0.1的网关进行转发,可以使用以下命令:
ip route add 192.168.2.0/24 via 192.168.0.1

ip route add default via 192.168.168.1 dev ens160 proto static metric 100
route add -net 192.168.10.0 netmask 255.255.255.0 dev ens160
去往192.168.10.0/24网段的路由通过ens160网卡出去

4、显示当前路由表信息
route -n -e
ip route list
ip route

5、添加一个缺省路由 
route add default gw 192.168.0.1

2、route 命令常用格式

[root@localhost ~]# route --help
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
       route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
       route {-V|--version}                  Display version/author and exit.

        -v, --verbose            be verbose
        -n, --numeric            don't resolve names
        -e, --extend             display other/more information
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB

  <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 
add/del  添加/删除 路由
-A      设置地址类型(默认ipv4  配置ipv6地址时:-A inet6)
-net    到一个网段的路由(到目的网段)
-host   到一个主机的路由(到目的主机)
gw      设置默认网关
dev     去此目的地址的出接口
metric  设置路由跳数

3、ip route 命令常用格式

[root@localhost ~]# ip route help
Usage: ip route { list | flush } SELECTOR
       ip route save SELECTOR
       ip route restore
       ip route showdump
       ip route get [ ROUTE_GET_FLAGS ] ADDRESS
                            [ from ADDRESS iif STRING ]
                            [ oif STRING ] [ tos TOS ]
                            [ mark NUMBER ] [ vrf NAME ]
                            [ uid NUMBER ] [ ipproto PROTOCOL ]
                            [ sport NUMBER ] [ dport NUMBER ]
       ip route { add | del | change | append | replace } ROUTE
SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]
            [ table TABLE_ID ] [ vrf NAME ] [ proto RTPROTO ]
            [ type TYPE ] [ scope SCOPE ]
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
             [ ttl-propagate { enabled | disabled } ]
INFO_SPEC := { NH | nhid ID } OPTIONS FLAGS [ nexthop NH ]...
NH := [ encap ENCAPTYPE ENCAPHDR ] [ via [ FAMILY ] ADDRESS ]
      [ dev STRING ] [ weight NUMBER ] NHFLAGS
FAMILY := [ inet | inet6 | mpls | bridge | link ]
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ as [ to ] ADDRESS ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER ] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ features FEATURES ] [ quickack BOOL ] [ congctl NAME ]
           [ pref PREF ] [ expires TIME ] [ fastopen_no_cookie BOOL ]
TYPE := { unicast | local | broadcast | multicast | throw |
          unreachable | prohibit | blackhole | nat }
TABLE_ID := [ local | main | default | all | NUMBER ]
SCOPE := [ host | link | global | NUMBER ]
NHFLAGS := [ onlink | pervasive ]
RTPROTO := [ kernel | boot | static | NUMBER ]
PREF := [ low | medium | high ]
TIME := NUMBER[s|ms]
BOOL := [1|0]
FEATURES := ecn
ENCAPTYPE := [ mpls | ip | ip6 | seg6 | seg6local | rpl | ioam6 ]
ENCAPHDR := [ MPLSLABEL | SEG6HDR | SEG6LOCAL | IOAM6HDR ]
SEG6HDR := [ mode SEGMODE ] segs ADDR1,ADDRi,ADDRn [hmac HMACKEYID] [cleanup]
SEGMODE := [ encap | inline ]
SEG6LOCAL := action ACTION [ OPTIONS ] [ count ]
ACTION := { End | End.X | End.T | End.DX2 | End.DX6 | End.DX4 |
            End.DT6 | End.DT4 | End.DT46 | End.B6 | End.B6.Encaps |
            End.BM | End.S | End.AS | End.AM | End.BPF }
OPTIONS := OPTION [ OPTIONS ]
OPTION := { srh SEG6HDR | nh4 ADDR | nh6 ADDR | iif DEV | oif DEV |
            table TABLEID | vrftable TABLEID | endpoint PROGNAME }
IOAM6HDR := trace prealloc type IOAM6_TRACE_TYPE ns IOAM6_NAMESPACE size IOAM6_TRACE_SIZE
ROUTE_GET_FLAGS := [ fibmatch ]

3、说明

一、Linux路由表
Linux路由表是一个内核数据结构,用来描述Linux主机与其它网络设备之间的路径,以及如何将数据包从源地址路由到目标地址。Linux路由表的主要组成部分包括:目的网络、下一跳、子网掩码和接口等信息。

(一)目的网络 目的网络是一个或多个的IP地址段,用来指示要路由到的网络。Linux路由表中可以有多个目的网络,并且每一个目的网络都有一个与之对应的路由。

(二)下一跳 下一跳表示数据包要经过的下一个路由器的地址。如果目的地址是一个局域网地址,下一跳将指向一个与目的局域网相连的路由器,以便将数据包转发到目的主机。

(三)子网掩码 子网掩码是一个32位二进制数,用于将IP地址分为网络地址和主机地址两部分。子网掩码的作用是帮助路由器区分网络地址和主机地址,以便进行路由选择和数据包路由。

(四)接口 接口是一个用于连接Linux主机和网络的物理设备或虚拟设备。每个接口都有一个唯一的标识符,用于标识该接口。在Linux路由表中,每个路由都与一个接口相关联,以便将数据包从源地址发送到目标地址。

二、Linux路由表的配置
在Linux中,可以使用route命令配置路由表。route命令用于显示、添加、删除、修改Linux路由表中的路由信息。

(一)显示路由表 要显示Linux路由表中的路由信息,可以使用“route”命令。例如,要显示系统中的所有路由信息,可以输入以下命令:

route

输出结果会显示每个目的网络的路由信息,包括目的地址、网关、接口和路由类型等信息。此外,还可以使用“netstat -r”命令来显示Linux路由表中的路由信息。

(二)添加路由 要添加一个路由,可以使用“route add”命令。例如,要将数据包路由到目的地址为192.168.1.0/24的网络,网关为192.168.0.1,可以输入以下命令:

route add -net 192.168.1.0/24 gw 192.168.0.1

其中,“-net”选项表示目标网络,“gw”表示网关地址。要添加的路由将被添加到Linux路由表中,并在下次系统启动时自动加载。

(三)删除路由 要删除一个路由,可以使用“route del”命令。例如,要删除Linux路由表中的一条路由,可以输入以下命令:

route del -net 192.168.1.0/24

此命令将修改Linux路由表中指定的路由信息。

三、Linux路由表的优先级

Linux路由表中的每个路由都有一个优先级。优先级用于决定数据包应去往哪个网关。当有两个或多个路由指向同一个目的网络时,可以使用优先级来确定数据包应走哪个路由。每个路由的优先级是由它的度量值决定的,度量值越小,优先级越高。

在Linux中,可以使用metric选项设置路由的度量值。例如,要将路由的度量值设置为100,可以输入以下命令:

route add -net 192.168.1.0/24 gw 192.168.0.1 metric 100

Linux路由表还可以使用源地址和目标地址的匹配规则来设置路由的优先级。例如,要将数据包从地址为192.168.0.2的主机路由到目的地址为192.168.1.0/24的网络,可以使用“ip rule”命令添加一条规则,如下所示:

ip rule add from 192.168.0.2 to 192.168.1.0/24 pref 2000 lookup 1

其中,“pref 2000”表示优先级,值越大,优先级越低。文章来源地址https://www.toymoban.com/news/detail-791875.html

到了这里,关于Linux中路由route和ip route的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux(三)---------网络路由命令(route路由命令)

    计算机之间的数据传输必须经过网络,网络可以直接两台计算机,也可以通过一个一个的节点去连接。路由可以理解为互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的地的。  路由分类学习: 路由分为静态和动态路由 linux机器上配置的都是静态路由,

    2024年02月14日
    浏览(45)
  • Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项

    大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第61篇文章。 专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么需要改进的地方还请

    2024年02月16日
    浏览(66)
  • Linux ip route命令

    ip route是Linux系统中的一个非常常用的命令,它用于配置和管理Linux的路由表。通过ip route命令,管理员可以查看、添加、删除或修改Linux系统的路由表,从而决定数据包如何在网络中传输。例如,当一台Linux机器需要连接外网或者内网的其他主机时,它需要知道如何到达目的地

    2024年02月22日
    浏览(45)
  • Linux服务器常见运维性能测试(1)综合跑分unixbench、superbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月04日
    浏览(82)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • route命令 路由表 Linux Centos

    route route 命令在Linux中被用于显示和操纵IP路由表。然而,现在大部分Linux发行版都推荐使用 ip route 命令代替 route ,因为 ip route 提供更多的功能和更灵活的控制。 以下是 route 命令的基本用法: 查看路由表 : route -n 这个命令显示当前机器的路由表。 -n 标志意味着数字形式的网

    2024年02月04日
    浏览(51)
  • Linux路由转发+多网卡配置(route命令)

    什么是交换?什么是路由?什么是路由表? 交换是指 同网络访问 (两台机器连在 同一交换机上 ,配置 同网段的不同IP 就可以直接通讯) 路由就是 跨网络访问(路径选择) 路由表是 记录路由信息的表 ,在Linux中首先是一张 可见的,可更改的表 ,它的作用就是当数据包发

    2024年02月02日
    浏览(44)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(94)
  • Linux服务器常见运维性能测试(3)CPU测试super_pi、sysbench

    最近需要测试一批服务器的相关硬件性能,以及在常规环境下的硬件运行稳定情况,需要持续拷机测试稳定性。所以找了一些测试用例。本次测试包括在服务器的高低温下性能记录及压力测试,高低电压下性能记录及压力测试,常规环境下CPU满载稳定运行的功率记录。 这个系

    2024年02月02日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包