linux路由表的配置
linux路由表的配置
一、原理说明
3、操作系统在选路时首先根据路由规则选取table,然后再从table里选取相应路由,如果同一table里不同接口使用相同的网关,选路时会默认选择第一条路由,所以当有两个网络接口卡时,如果目标网络在同一网段,那么由于选路时按第一条路由出口出去,所以会导致所有的流量都会从第一个网卡上出去。
1、对于别名为main的路由表配置和查看我们一般只需要使用route命令就可以了,通常的格式如下:
route [-nNvee] [-FC] [<AF>] : 用来列出别名为main的路由表记录
route [-v] [-FC] {add|del|flush} ... :用来修改别名为main的路由表记录
2、添加其他编号的路由table时,我们需要使用ip route命令,通常的格式为:
ip route { list | flush | show } SELECTOR: 用来显示指定table的路由表记录
ip route { add | del | change | append | replace | monitor } ROUTE:用来修改指定table的路由表记录
注:ip命令为iproute2包的一个工具,用来定义ip包的一些规则
3、示例
解决双网卡在同一子网内,网关相同的情况下,使两块网卡各自的ip包从自己接口上出去。
A、两块的网的配置如下:
IP:192.168.9.8/22 网关:192.168.9.1
IP:192.168.9.9/22 网关:192.168.9.1
B、table 0的路由表查看(route -n)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
192.168.8.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1(这条实际上是无用的,选路时不会被选到)
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 192.168.9.1 0.0.0.0 UG 0 0 0 eth0
C、说明:第1、2条路由都由网卡的配置产生,需要路由时都使用最后一条默认路由192.168.9.1,并且从eth0上出去。问题:两块网卡的流量都从eth0上出去,相当于浪费了一块网卡。
D、解决方法,由于在table 0中添加路由只能解决目的地址或目的网络不同时路由问题,但两块网卡有相同的子网,网关也一样,目的子网也一样,所以已经不能通过在table 0添加路由记录来解决问题,我们只能添加其他编号的table,并在新的table中添加路由记录,使eth1的包选路时使用新的table的路由记录,并从eth1上出去。过程如下:
A、添加新table和新table的路由记录
ip route add 192.168.8.0 via 192.168.9.9 [dev eth1] table 10
ip route add default via 192.168.9.9 [dev eth1] table 10
ip rule add from 192.168.9.9 table 10
linux路由表的配置的更多相关文章
- Linux网络属性配置
目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...
- linux路由表命令
转自此大神http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 留在好查阅 linux 路由表维护 查看 Linux 内核路由表 使用 ...
- linux 网桥的配置与实现
==================================================================================from: http://www.i ...
- LINUX查看硬件配置命令
LINUX查看硬件配置命令 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinf ...
- Linux网络基础配置
这是看itercast视频的笔记 Linux网络基础配置 以太网连接 在Linux中,以太网接口被命令为:eth0, eth1等, 0,1代表网卡编号 通过lspci命令可以查看网上硬件信息(如果是u ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- linux 路由表 的一些相关资料
linux 路由表维护 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Linux 内核路由表. # route Destination Gateway Genmask Flags ...
- Linux入门-6 Linux网络基本配置
1. 网络基础知识 网络编址 IP编址 子网掩码 同一网络主机之间通信--MAC地址 不同网络之间的通信 路由 域名 DNS 基本网络参数 2. Linux网络基础配置 以太网连接 配置网络信息 网络 ...
随机推荐
- Java8 Comparator 排序方法
Java8 中 Comparator 接口提供了一些静态方法,可以方便于我们进行排序操作,下面通过例子讲解下如何使用 对整数列表排序(升序) List<Integer> list = Ar ...
- Struts2获取Servlet的api的两种方式,解决ParameterAware过时的问题
servlet API通过ActionContext进行获取 Struts2对HttpServletRequest,HttpSession和ServletContext进行了封装,构造了3个Map对象 ...
- 牛客小白月赛4C——病菌感染
链接:https://www.nowcoder.com/acm/contest/134/C 来源:牛客网 #include <bits/stdc++.h> using namespace ...
- java的编码格式
几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言 ...
- ORB-SLAM(十)LoopClosing
构造函数 LoopClosing(Map* pMap, KeyFrameDatabase* pDB, ORBVocabulary* pVoc,const bool bFixScale); 主要分两部分 ...
- spring源码-自定义标签-4
一.自定义标签,自定义标签在使用上面相对来说非常常见了,这个也算是spring对于容器的拓展.通过自定义标签的方式可以创造出很多新的配置方式,并且交给容器直接管理,不需要人工太多的关注.这也是spri ...
- XenServer master主机的作用
https://wenku.baidu.com/view/a2d3f0a333d4b14e852468c9.html###
- Linux命令应用大词典-第19章 文件系统管理
19.1 mkfs:创建Linux文件系统 19.2 mke2fs:创建ext2.3.4文件系统 19.3 mkfs.ext4:创建ext4文件系统 19.4 mkfs.ext3:创建ext3文件系统 ...
- 初学Direct X(5)
初学Direct X(5) 前面学习了使用表面绘制屏幕,但这种方法与另一种比较起来,有着绘图速度颇慢以及缺乏对任何透明类型的支持,这就是前面的篮框以及炸弹会有黑色背景的原因,这种方法就是纹理.他可以绘 ...
- leetcode-前K个高频元素
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], ...