实用技巧:Linux构建软路由

学习Linux的用户,在学习工程中学到了很多技巧,比如说怎样Linux构建软路由,你了解这种方法么?不了解没关系,本文教会你Linux构建软路由。希望能增加你Linux的知识。

 

姚 炯 (yaojiongcn@yahoo.com.cn), 网络工程师, 杭州师范大学理学院

一、背景

一、Vim 保存一个没有权限的已编辑文件
 刚安装好Ubuntu,用Vim对vim
/etc/ssh/sshd_config文件做了更改,保存时才发现对该文件仅有只读权限,不能进行保存操作。
 告警内容如下:

IP地址转换也称为IP地址伪装或IP地址欺骗,也就是指当内部网机器登录到防火墙上时,防火墙将内部网IP(不合法的外部网IP地址)伪装成合法的外部网IP地址,再与外部网通信。IP地址伪装的命令格式如下:

一、光驱的软开关:

本文介绍了 Linux 软路由的工作原理,并使用普通 PC
计算机作为硬件设备,在实际网络环境中测试和讨论了 Linux
软路由的性能。实验证明,在百兆以太网络环境中, Linux
软路由的数据报转发速度取决于网络卡的实际速度,并随着软路由系统的应用层服务的增加而降低。该结果为
Linux 软路由的应用和普及提供依据。

在学习路由协议如OSPF协议时,需要进行一个实操的练习,若手里又没有核心交换机,怎么破?

解决方法1::把文件关闭,获取权限以后再重新打开。但是如果你已经做了大量更改,这样做会很浪费时间,因为在这个过程中所有的更改都会丢失。
 解决方法2::在保存文件前更改文件权限。
 命令是:
:w !sudo tee %
这个命令将会要你输入密码,就像在命令行中使用 sudo vim一样。

ipfwadm-F-amasquerade-D0.0.0.0/0-Weth0

eject -r
cdrom,弹开指定光驱设备的仓门,如只有一个光驱,直接用eject就可,如有两个光驱设备根据/dev/下设备文件来指定设备,如我的机器上还有一
台COMBO CDROM,设备文件为/dev/cdrom1,要用eject -r cdrom1来执行。

0、引言

本文讲述了如何在Linux系统上搭建软路由环境,并使用OSPF路由协议完成路由表的学习。

二、Bash快捷键

其中“-D0.0.0.0/0”表示允许对所有内部网IP地址进行转换,“-Weth0”表示内部网IP地址是通过网卡1进行转换的。

威尼斯网址开户网站,关上仓门用-t的参数,如关上我的COMBO就用以下命令:eject -t -r
cdrom1。并且有eject还有个好处就是可以自动将光驱挂上文件系统,弹出时也自动卸下文件系统。

随着开源软件的发展,越来越多的人开始了解、使用和研究 Linux。目前 Linux
环境下的软路由设计和应用案例已有很多;但是对于实际网络环境中 Linux
软路由的负载性能一直缺乏相关的实测和讨论。本文从 Linux
软路由的框架和实验两部分进行讨论,并给出结论。

二、相关知识

在控制台窗口中,输入一长串命令时,发现有个错误,可以用下面几个快捷键

IP地址伪装设置完毕后,就可以在内部网机器上ping一下外部网的机器,如果防火墙上的forwarding没有被关闭的话,就可以ping通了,说明配置一切正确。

二、光驱的限速:

1、Netfilter 框架

2.1 Quagga

Ctrl+a:光标移到行首
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl + w :从光标处删除至字首
Alt + d :从光标处删除至字尾

2.设定访问外部网的权限

eject -x n
cdrom,n为最大的倍速。在实际使用中n要大于等于4,对上限没有限制。

Netfilter 框架上是整个 Linux 软路由运作的体系,是 Linux2.4
内核处理数据报的流水操作系统。它能够运做在 IPv4、IPv6 及 Decnet
等网络栈中。Netfilter 框架的概念的提出及主要实现者是 Rusty Russell。

Quagga是一款开源路由软件套件,它可以用来将你的Linux设备变成一个功能完备的路由器,支持RIP,RIPNG,OSPFv2,OSPFv3,BGP等路由协议。

三、Ctrl + R 搜索历史命令

为了加强对网络的管理,有时要对内部网访问外部网进行一定的限制,这种限制包括:(1)允许哪些机器可以上网;(2)允许访问哪些站点。

eject还附一小软件volname,用来读取光盘的的名称,用法:volname
/dev/cdrom,如果你的Linux没有X-Windows,在TEXT模式下可以方便地知道光盘的volume。

Netfilter 框架如图所示:

2.2 OSPF

Linux下的神器Ctrl + R(reverse-i-search ) 的使用方法:
(press Ctrl + R ) 输入任意字符,例如: “vim”  就会出现
(reverse-i-search)`vim’: vim /etc/network/interfaces 
如果我想找另一个vim命令呢?  就多按几次 Ctrl + R ,就可以继续向前搜索
“vim” 的内容了 :(reverse-i-search)`vim’: vim .ssh/known_hosts
如果找到了,按 -> 或者直接回车

限制上网机器可以参照以下脚本:

提示:汉字文件名的问题。如用eject挂上的光驱文件系统,光盘上如有汉字的文件名会都是“??”,经查看eject的源代码,发现是调用/etc
/fstab这个文件中的设置来挂设文件系统的,只要将iocharset=gb2312,codepage=936加到/dev/cdrom这一行的倒
数第三列,重新用eject来挂接光盘,你会发现已经能正确显示汉字文件名了。

威尼斯网址开户网站 1

OSPF(Open Shortest Path
First开放式最短路径优先)是一个内部网关协议(Interior Gateway
Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
OSPF相关概念比较多,以下挑几个重要知识点进行说明。 LSA(Link-State
Advertisement)是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息。
LSAs被路由器接收用于维护它们的路由选择表。
OSPF从报文的结构上划分,可以分为以下几种: Hello报文(Hello
Packet):周期性地发送,用于维护邻居关系以及DR/BDR选举;DD报文(Database
Description
Packet):用于两台路由器进行数据库同步,包含自己的LSDB(LSA集合)信息;LSR报文(Link
State Request
Packet):在交换DD报文后续,使用该报文向对方请求所需的LSA信息;LSU报文(Link
State Update Packet):向对方发送所需的LSA信息集合。LSAck报文(Link State
Acknowledgment Packet):用于对LSU报文进行确认。

四、在命令 history 中显示时间戳

ipfwadm-F-pdeny#全部拒绝内部网机器上网

eject -r
cdrom,弹开指定光驱设备的仓门,如只有一个光驱,直接用eject就可,如有两个光驱设备根据/dev/下设备文件来指…

Figure xxx. Requires a heading

另一个重要的知识点就是邻居建立过程,如下图所示:

临时设置:
[root@www.linuxidc.com ~]# export
HISTTIMEFORMAT=”%F %T `whoami` “
永久设置:
[root@www.linuxidc.com ~]# echo ‘export
HISTTIMEFORMAT=”%F %T `whoami` “‘ >> /etc/profile

ipfwadm-F-am-S192.168.0.5/32

(1)Netfilter 为每种网络协议定义一套钩子函数,其中为 IPv4
定义了以下5个钩子函数:

威尼斯网址开户网站 2

五、用find+sed命令批量修改多个repo文件

-d0.0.0.0/0#允许192.168.0.5机器对

[1]NF_IP_PRE_ROUTING.

对于图上的7种状态进行说明:
Down:在Down状态下,OSPF进程还没有与任何邻居交换信息。OSPF在等待进入Init状态;Init:OSPF路由器以固定的时间间隔(缺省10s)发送Hello分组,以便与邻居路由器建立特殊的关系;Two-Way:每台OSPF路由器都使用分组试图与同一个IP网络中的所有邻居路由器建立双向状态或双向通信。Hello分组中有发送者已知的OSPF邻居列表。当路由器看到它自己出现在一个邻居路由器的Hello分组中时,它就进入了双向状态;ExStart:当路由器与它的邻居进入到ExStart状态后,他们之间的会话就表征为一种毗邻关系,但这时路由器还没有变成全毗邻状态。ExStart状态是使用DD(数据库描述)分组建立的,两个路由器用Hello分组协商出“主从关系”;Exchange:在交换状态下,邻居路由器使用类型2的DD分组来互相发送它们的链路状态信息,也就是说路由器相互描述它们的链路状态数据库。路由器将它们所学到的信息与其现存的链路状态数据库进行比较,并且单独确认每个DD分组,如果任何一台路由器接收到不在其数据库中的链路信息,该路由器就向其邻居请求有关该链路的完整更新信息。完整的路由信息在“Loading”状态下被交换;Loading:在相互描述过各自的链路状态数据库之后,路由器可以用LSR(链路状态请求)分组来请求更完整的信息。当路由器接收到一个LSR的时候,它会用一个LSU(链路状态更新)分组进行回应。这些LSU分组含有确切的LSA,而LSA是链路状态型路由选择协议的核心,LSU分组由LSAck分组所确认;Full
Adjacency:加载状态结束之后,路由器就进入全毗邻状态。每台路由器都保存着一张毗邻路由器列表,它就是称为毗邻数据库。

/etc/yum.conf
和/etc/yum.repos.d/下的各个文件的这个参数决定是否保存yum安装过程中的下载的软件包。
keepcache=1 #1为保存 ,0为不保存,默认不保存。
 用下面这个命令批量修改:
find . -name “*.repo” -print0 | xargs -0 sed -i
‘s/gpgcheck=1/gpgcheck=0\nkeepcache=1/g’

外部网的访问

[2]NF_IP_LOCAL_IN

三、配置过程

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-06/144716.htm

限制访问站点,可以这样设置:

[3]NF_IP_FORWARD

配置的拓扑如下,使用两个CentOS 分别模拟 Rt170、Rt171:

威尼斯网址开户网站 3

ipfwadm-O-ireject-D0.0.0.0/0

[4]NF_IP_POST_ROUTING

威尼斯网址开户网站 4

#对外部网的所有站点加以

[5]NF_IP_LOCAL_OUT

3.1 Quagga安装

拒绝

(2)这些钩子函数在 Linux
内核的模块中注册,并与之挂接。当数据报流入框架的网络层时,内核模块在框架的钩子函数处[1]接收数据报,并对它进行检查、转发、丢弃或指示
Netfilter 将该数据报通过[2]传入用户空间队列。

CentOS下可以直接使用yum install
quagga进行安装,也可以源码安装,但是要注意第三方库的依赖。
安装完成后,需要在 /etc/quagga 把 zebra.conf、vtysh.conf、ospfd.conf
拷贝出来。 启动命令使用 service zebra start、service ospfd
start进行启动,若对端收不到报文,可能还需要关闭防火墙 iptables。

ipfwadm-O-iaccept-D202.114.0.0/16

(3)如果该数据报被传递给用户空间,将在应用层被异步处理。该层的用户进程(Local
Process)在对数据报进行更加精细的检查,修改和装配之后,通过钩子函数[4]把它重新递交给网络层。

3.2 OSPF配置

#允许访问202.114.0.0~

Netfilter
框架的数据报分流结构使它极大地降低了数据报转发的延迟,提高了数据报控制的精度;在节省系统开销,提高数据报的处理效率上超越了工作在
Windows 平台的路由软件。

进入vtysh进行初始配置,设置日志文件 /var/log/quagga/quagga.log

202.114.255.255内的所有站点

威尼斯网址开户网站 5

威尼斯网址开户网站 6

上述设置中,“0.0.0.0/0”表示全部网址,“202.114.0.0/16”表示202.114.0.0至202.114.255.255的所有站点。

威尼斯网址开户网站 7

3.统计IP包流量

配置接口 分别对应拓扑

IP包流量记账的设置如下:

威尼斯网址开户网站 8

ipfwadm-A-f   /sbin/ipfwadm-A-f   /sbin/ipfwadm-Aout-I-S192.168.0.0   /32-D0.0.0.0/0  

威尼斯网址开户网站 9

#对所有流出包

设置OSPF ,router ospf、route-id、network 192.168.50.0/24 area 0

统计

威尼斯网址开户网站 10

/sbin/ipfwadm-Ain-I-S192.168.0.0   /32-D0.0.0.0/0  

威尼斯网址开户网站 11

#对所有流入包

配置成功后,查看邻居信息,可以看见状态分别从 init -> two-way ->…
full 进行切换,最终可以看出主从关系

统计

威尼斯网址开户网站 12

所在记账的统计都存放于/proc/net/ip_acct文件中,其所有IP地址均为16进制表示。

威尼斯网址开户网站 13

以上所有脚本,既可放置在/etc/rc.d文件中,也可单独设立shell脚本,用命令sh执行。

查看路由表,发现可以学习到各自对端的路由表信息

以上设置均在RedHat5.1上运行通过。

威尼斯网址开户网站 14

这样就完成Linux构建软路由。

威尼斯网址开户网站 15

  1. 利用日志使管理Linux更轻松
  2. 操作笔记:Linux Framebuffer编程
  3. 详解介绍Linux文件种类
  4. 命令大全:Linux高级命令行技巧
  5. 简介Linux截屏工具:import

同时,使用 Wireshark 抓包,可以验证报文交换的过程

威尼斯网址开户网站 16

相关文章