linux路由

linux路由,第1张

Linux 路由需要记住两点:跨网段通信需要经过路由;Linux 本身就是一台路由器

开启路由功能

$ cat/proc/sys/net/ipv4/ip_forward

如果值为 1,表示开启了路由功能,如未开启,需要在 /etc/sysctl.conf 中设置:

net.ipv4.ip_forward=1

然后执行 sysctl -p 使之生效。

实践

创建两个网络 namespace:

$ ip netns add ns1

$ ip netns add ns2

创建两对 veth-pair,一端分别挂在两个 namespace 中:

$iplinkadd v1type veth peer name v1_r$iplinkadd v2type veth peer name v2_r$iplink setv1netns ns1$iplink setv2netns ns2

分别给两对 veth-pair 端点配上 IP 并启用:

$ ip a a 10.10.10.1/24 dev v1_r$ ip l s v1_r up$ ip a a 10.10.20.1/24 dev v2_r$ ip l s v2_r up$ ip netnsexecns1 ip a a 10.10.10.2/24 dev v1$ ip netnsexecns1 ip l s v1 up$ ip netnsexecns2 ip a a 10.10.20.2/24 dev v2$ ip netnsexecns2 ip l s v2 up

测试:

$ ip netnsexecns1 ping 10.10.20.2

发现不通。

添加路由

查看路由:

$ ip netnsexecns1 route -nKernel IP routing tableDestination    Gateway        Genmask        Flags Metric Ref    Use Iface10.10.10.0      0.0.0.0        255.255.255.0  U    0      0        0 v1

只有一条直连路由,没有去往 10.10.20.0/24 网段的路由,怎么通?那就给它配一条:

$ ip netnsexecns1 route add -net 10.10.20.0 netmask 255.255.255.0 gw 10.10.10.1$ ip netnsexecns1 route -n

同理也给 ns2 配上去往 10.10.10.0/24 网段的路由:

$ ip netnsexecns2 route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.20.1$ ip netnsexecns2 route -n

再次测试,发现可以 ping 通了:

$ ip netnsexecns1 ping 10.10.20.2

总结

Linux 本身是一台路由器。

上面的实验使用 namespace 效果和使用虚拟机是一样的,关键是知道有这个功能,知道怎么用就差不多了。

1)路由概念

路由:   跨越从源主机到目标主机的一个互联网络来转发数据包的过程

路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备

路由表:在路由器中维护的路由条目,路由器根据路由表做路径选择

直连路由:当在路由器上配置了接口的IP地址,并且接口状态为up的时候,路由表中就出现直连路由项

静态路由:是由管理员手工配置的,是单向的。

默认路由:当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口 。

2)静态路由和默认路由的特点

静态路由特点:

路由表是手工设置的;

除非网络管理员干预,否则静态路由不会发生变化;

路由表的形成不需要占用网络资源;

适用环境:一般用于网络规模很小、拓扑结构固定的网络中。

默认路由特点:

在所有路由类型中,默认路由的优先级最低

适用环境:一般应用在只有一个出口的末端网络中或作为其他路由的补充

浮动静态路由:

路由表中存在相同目标网络的路由条目时,根据路由条目优先级的高低,将请求转发到相应端口;

链路冗余的作用;

3)路由器转发数据包时的封装过程

源IP和目标IP不发生变化,在网络的每一段传输时,源和目标MAC发生变化,进行重新封装,分别是每一段的源和目标地址

linux下添加路由的方法:

一:使用 route 命令添加

使用route 命令添加的路由,机器重启或者网卡重启后路由就失效了,方法:

二:在linux下设置永久路由的方法:

1.在/etc/rc.local里添加

方法:

2.在/etc/sysconfig/network里添加到末尾

方法:GATEWAY=gw-ip 或者 GATEWAY=gw-dev

3./etc/sysconfig/static-router :

linux 添加永久静态路由

Linux 的路由功能:

# route 命令添加的路由,机器重启或者网卡重启后就没掉了,在linux下设置永久路由的方法:

1.在/etc/rc.local里添加

2.在/etc/sysconfig/network里添加到末尾

3./etc/sysconfig/static-router :

any net x.x.x.x/24 gw y.y.y.y

开启 IP 转发:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7298779.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存