linux下route路由设置命令详解

# route -n                                                  // 显示路由表,哪条在前就用哪条,都没有就用default
# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0       // 向路由表中增加1条路由
# route add -net 224.0.0.0 netmask 240.0.0.0 reject         // 屏蔽1条路由
# route del -net 224.0.0.0 netmask 240.0.0.0                // 删除1条路由
# route del default gw 192.168.120.240                      // 删除和添加设置默认网关
# route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

其中:
- add : 添加一条路由规则
- del : 删除一条路由规则
- net : 目的地址是一个网络
- host : 目的地址是一个主机
- target : 目的网络或主机
- netmask : 目的地址的网络掩码
- gw : 路由数据包通过的网关
- dev : 为路由指定的网络接口

添加到主机的路由
# route add -host 192.168.1.2 dev eth0:0
# route add -host 10.20.30.148 gw 10.20.30.40

添加到网络的路由
# route add -net 10.20.30.40 netmask 255.255.255.248 eth0
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route add -net 192.168.1.0/24 eth1

添加默认路由
# route add default gw 192.168.1.1

删除路由
# route del -host 192.168.1.2 dev eth0:0
# route del -host 10.20.30.148 gw 10.20.30.40
# route del -net 10.20.30.40 netmask 255.255.255.248 eth0
# route del -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
# route del -net 192.168.1.0/24 eth1
# route del default gw 192.168.1.1

设置包转发
开启 Linux 的路由功能可以通过调整内核的网络参数来实现。要配置和调整内核参数可以使用 sysctl 命令。例如:要开启 Linux 内核的数据包转发功能可以使用如下的命令。
# sysctl -w net.ipv4.ip_forward=1

这样设置之后,当前系统就能实现包转发,但下次启动计算机时将失效。为了使在下次启动计算机时仍然有效,需要将下面的行写入配置文件/etc/sysctl.conf。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

用户还可以使用如下的命令查看当前系统是否支持包转发。
# sysctl net.ipv4.ip_forward




> ipconfig /all    // 查看windows下网卡信息,linux下是 ifconfig
> route print      // 查看路右边信息


路由表信息解释
  1)名词解释:
Active Routes:活动的路由
Network destination :目的网段
Netmask:子网掩码
Gateway:网关,又称下一跳路由器。在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。如果是本地计算机直接连接到的网络,网关通常是本地计算机对应的网络接口,但是此时接口必须和网关一致;如果是远程网络或默认路由,网关通常是本地计算机所连接到的网络上的某个服务器或路由器。
Interface:接口,接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口。网关必须位于和接口相同的子网(默认网关除外),否则造成在使用此路由项时需调用其他路由项,从而可能会导致路由死锁。
Metric:跳数,跳数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跳跃数量,一个跳数代表经过一个路由器。跳数越低,代表路由成本越低,优先级越高。
Persistent Routes:手动配置的静态固化路由

  2)第一条路由信息: 缺省路由
  当系统接收到一个目的地址不在路由表中的数据包时,系统会将该数据包通过192.168.99.8(PC-ip)这个接口发送到缺省网关192.168.99.1(PC-网关)。

  3)第二条路由信息: 本地环路
  当系统接收到一个发往目标网段127.0.0.0的数据包时,系统将接收发送给该网段的所有数据包。

  4)第三条路由信息: 直连网段的路由记录
  当系统接收到一个发往目的网段192.168.99.0/24的数据包时,系统会将该数据包通过192.168.99.8这个接口发送出去。

  5)第四条路由信息: 本地主机路由
  当系统接收到一个目标ip地址为本地网卡ip地址的数据包时,系统会将该数据包收下。

  6)第五条路由信息: 本地广播路由
  当系统接收到一个发给直连网段的本地广播数据包时,系统会将该数据包从192.168.99.8这个接口以广播的形式发送出去。

  7)第六条路由信息: 组播路由
  当系统接收到一个组播数据包时,系统会将该数据包从192.168.99.8这个接口以组播的形式发送出去。

  8)第七条路由信息: 广播路由
  在系统接收到一个绝对广播数据包时,系统会将该数据包通过192.168.99.8这个接口发送出去。

  9)Default Gateway( 缺省网关

二、windows路由表操作

windows路由表的设置主要通过route命令,ROUTE命令格式如下:
ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
其中 –f 参数用于清除路由表, -p 参数用于永久保留某条路由(即在系统重启时不会丢失路由)。
Command主要有 PRINT(打印)、 ADD(添加)、 DELETE(删除)、 CHANGE(修改)共4个命令。
Destination代表所要达到的目标IP地址。
MASK是子网掩码的关键字。Netmask代表具体的子网掩码,如果不加说明,默认是255.255.255.255(单机IP地址)。如果代表全部出口子网掩码可用0.0.0.0。
Gateway代表出口网关。
其他interface和metric分别代表特殊路由的接口数目和到达目标地址的跳数,一般默认。




【路由器route设定】————鸟哥私房菜

ip分享器
[root@linux ~]# ifconfig [device] [ IP ] netmask [netmask ip] [up|down]

[root@linux ~]# ifconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up
来建立一个虚拟的网络接口,这样就可以立刻连接上 IP 分享器了。

如何在开机的时候就启动 IP alias 呢?有两个简单的方法可以使用:
• 透过 /etc/rc.d/rc.local:
将『ifconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up』的指令写入 /etc/rc.d/rc.local 当中,这样开机的时候就能够启动这个虚拟接口, 不过这方法有个弱点,就是当使用类似『 /etc/init.d/network restart 』的指令时,该接口可能就会被取消。

• 透过 /etc/sysconfig/network-scripts/ifcfg-eth0:0:
举例来说,你可以透过底下这个方法来建立一个虚拟装置的设定档案:
[root@linux ~]# cd /etc/sysconfig/network-scripts
[root@linux network-scripts]# vi ifcfg-eth0:0
DEVICE=eth0:0 <==相当重要!一定要与文件名相同的装置代号!
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
[root@linux network-scripts]# ifup eth0:0
[root@linux network-scripts]# ifdown eth0:0

路由器的主要功能就是: 『转发网络报文』 也就是说,路由器会分析来源端封包的 IP 表头,找出目标的 IP 后,透过路由器本身的路由表 (routing table) 将这个封包向下一个目标 (next hop) 传送。这就是路由器的功能。

路由表是由 Linux 的核心功能所提供的,这个转递封包的能力也是 Linux 核心所提供, 那如何启动这个封包转递呢?很简单啊,只要这样做即可:
[root@linux ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
上面这个动作就在打开 Linux 核心的封包转递能力。你可以将上述的指令写入 /etc/rc.d/rc.local 当中, 以使 Linux 可以在开机的时候就启动封包转递的功能, 也可以透过修改 /etc/sysctl.conf 来达成开机启动封包转递:
[root@linux ~]# vi /etc/sysctl.conf
# 将底下这个设定值修改正确即可!
net.ipv4.ip_forward = 1
[root@linux ~]# sysctl -p <==立刻让该设定生效
sysctl 这个指令是在核心工作时用来直接修改核心参数的一个指令,更多的功能可以参考 man sysctl 查询。 不要怀疑!只要这个动作,你的 Linux 就具有最简单的路由器功能了。


NAT (Network Address Translation, 网络地址转译)。Linux 的 NAT 主机可以透过修改封包的 IP 表头数据之来源或目标 IP ,让来自私有 IP 的封包可以转成 NAT 主机的公共 IP ,就可以连上 Internet !

Linux Router配置方法:
PC1[192.168.0.20] ————Linux Router———— PC2[192.168.10.30]
首先linux Router需要有两张网卡。
1. 先处理 eth0
[root@linux ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.10.255
IPADDR=192.168.10.254
NETMASK=255.255.255.0
NETWORK=192.168.10.0
ONBOOT=yes

2. 再先处理 eth1
[root@linux ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.254 <==这个设定值很重要喔!
ONBOOT=yes

3. 启动 IP 转递
[root@linux ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
# 上述指令如果没有问题,将他加入 /etc/rc.d/rc.local 当中去!

4. 重新启动网络,并且观察路由
[root@linux ~]# /etc/init.d/network restart
[root@linux ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.0.254 0.0.0.0 UG 0 0 0 eth1


• 请问您如何将您的 eth0 这个接口修改成为 192.168.100.2 在网域 192.168.100.0/25 之内的网络参数内容?
因为 192.168.100.0/25 的 netmask 为 255.255.255.128 ,所以可以这样做:
ifconfig eth0 192.168.100.2 netmask 255.255.255.128 up
这样即可!如果尚须其它的参数,则需要以档案形式来下达,如 vi /etc/sysconfig/network-scripts/ifcfg-eth0,并修改为:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.2
NETMASK=255.255.255.128
NETWORK=192.168.100.0
BROADCAST=192.168.100.127

• 请手动设定 eth0:1 这个虚拟接口,使成为网络参数: 192.168.200.2, 网域在 192.168.200.0/24。
  ifconfig eth0:1 192.168.200.2 up

• 如何观察路由表?
  route -n 即可查阅!注意到 0.0.0.0 那个目标(default gateway)。

• 如何启动 Linux 的 IP Forward 功能?
  直接以『echo "1" > /proc/sys/net/ipv4/ip_forward 』即可!

• 假设你想要连接到 168.95.1.1 ,那么你该如何判断你经过『多少个』节点?
  可以使用 traceroute 168.95.1.1 来分析每个节点的传送信息,也可以透过 ping 168.95.1.1 所回传的那个 ttl 值判断节点数量。

• 万一您的网络有点停顿,发现可能是网络上某个节点出现问题,您应该如何确认是哪一部 Router出问题?

  就利用 traceroute 吧!

  • 2
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜源Jerry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值