静态路由

在因特网中,网络连接设备用来控制网络流量和保证网络数据传输质量。常见的网络连接设备有集线器(Hub)、网桥(Bridge)、交换机(Switch)和路由器(Router)。 路由器是一种典型的网络连接设备,用来进行路由选择和报文转发。路由器根据收到报文的目的地址选择一条合适的路径(包含一个或多个路由器的网络),然后将报文传送到下一个路由器,路径终端的路由器负责将报文送交目的主机。 路由(routing)就是报文从源地址传输到目的地址的活动。路由发生在OSI网络参考模型中的第三层即网络层。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。最佳路由的选取与发现此路由的路由协议的优先级、路由的度量有关。当多条路由的协议优先级。 路由是数据通信网络中最基本的要素。路由信息就是指导报文发送的路径信息,路由的过程就是报文转发的过程。 根据路由目的地的不同,路由可划分为: 网段路由:目的地为网段,IPv4地址子网掩码长度小于32位或IPv6地址前缀长度小于128位。 主机路由:目的地为主机,IPv4地址子网掩码长度为32位或IPv6地址前缀长度为128位。 根据目的地与该路由器是否直接相连,路由又可划分为: 直连路由:目的地所在网络与路由器直接相连。 间接路由:目的地所在网络与路由器非直接相连。 根据目的地址类型的不同,路由还可以分为: 单播路由:表示将报文转发的目的地址是一个单播地址。 组播路由:表示将报文转发的目的地址是一个组播地址。 路由的优先级 对于相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但这些路由并不都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。为了判断最优路由,各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级(取值较小)的路由协议发现的路由将成为最优路由,并将最优路由放入本地路由表中。 路由协议 优先级 DIRECT 0 OSPF 10 IS-IS IS-IS Level1 15 IS-IS Level 2 由网关加入的路由 50 路由器发现的路由 55 静态路由 60 UNR(User Network Route) DHCP(Dynamic Host Configuration Protocol):60AAA-Download:60IP Pool:61Frame:62Host:63NAT(Network Address Translation):64IPSec(IP Security):65NHRP(Next Hop Resolution Protocol):65PPPoE(Point-to-Point Protocol over Ethernet):65 Berkeley RIP 100 点对点接口聚集的路由 110 OSPF的扩展路由 140 OSPF ASE 150 OSPF NSSA 150 BGP 170 EGP 200 IBGP 255 EBGP 255 其中,0表示直接连接的路由,255表示任何来自不可信源端的路由;数值越小表明优先级越高。 除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。 路由器根据路由转发数据包,路由可通过手动配置和使用动态路由算法计算产生,其中手动配置的路由就是静态路由。...

 ·  · 

网络隧道技术

隧道技术概要 隧道技术(Tunneling)是网络基础设置在网络之间传递数据的方式,使用隧道技术传递可以是不同协议的数据包,隧道协议将这些其他协议的数据包重新封装在新的包头中发送。被封装的数据包在隧道的两个端点之间通过网络进行路由,被封装数据包在网络上传递时所经历的逻辑路径称为隧道。 简单来说,隧道技术是一类网络协议,是将一个数据包封装在另一个数据包中进行传输的技术;**使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径。**通过网络隧道技术,可以使隧道两端的网络组成一个更大的内部网络。(把不支持的协议数据包打包成支持的协议数据包之后进行传输)。 隧道协议 要创建隧道,隧道的客户机和服务器双方必须使用相同的隧道技术,隧道协议有二层隧道协议与三层隧道协议两类。 二层隧道协议对应OSI模型中数据链路层,使用 帧 作为数据交换单位,PPTP、L2TP、L2F都属于二层隧道协议。是将数据封装在点对点协议的帧中通过互联网络发送。 三层隧道协议对应OSI模型中网络层,使用 包 作为数据交换单位,GRE、IPSec 都属于三层隧道协议。都是数据包封装在附加的IP包头中通过IP网络传送。 在例如VxLAN,工作在传输层和网络层之间。具体来说,将运行在用户数据报协议 (UDP) 和网络数据报协议 (IP) 之间,以便在网络中建立安全的通信通道。 网络隧道技术应用 隧道在Linux 中应用 IP隧道是指一种可在两网络间进行通信的通道。在该通道里,会先封装其他网络协议的数据包,之后再传输信息。 Linux原生共支持5种IPIP隧道: ipip: 普通的IPIP隧道,就是在报文的基础上再封装成一个IPv4报文 gre: 通用路由封装(Generic Routing Encapsulation),定义了在任意一种网络层协议上封装其他任意一种网络层协议的机制,所以对于IPv4和IPv6都适用 sit: sit模式主要用于IPv4报文封装IPv6报文,即IPv6 over IPv4 isatap: 站内自动隧道寻址协议(Intra-Site Automatic Tunnel Addressing Protocol),类似于sit也是用于IPv6的隧道封装 vti: 即虚拟隧道接口(Virtual Tunnel Interface),是一种IPsec隧道技术 像IPVS/LVS中的 Virtual Server via IP Tunneling,就是使用了IPIP隧道 SSH隧道技术 SSH提供了一个重要功能,称为转发 forwarding 或者称为隧道传输tunneling,它可以通过加密频道将明文流量导入隧道中,在创建SSH隧道时, SSH客户端要设置并转交一个特定本地端口号到远程机器上;一旦SSH隧道创建,用户可以连到指定的本地端口号以访问网络服务。本地端口号不用与远地端口号一样。 SSH隧道主要使用场景一般为 规避防火墙、加密网络流量 规避防火墙,SSH隧道可以使一个被防火墙阻挡的协议可被包在另一个没被防火墙阻挡的协议里,这技巧可用来逃避防火墙政策。而这种操作符合“数据包封装在另一个数据包中进行传输的技术”,故称为SSH隧道技术。 SSH隧道类型 在ssh连接的基础上,指定 ssh client 或 ssh server 的某个端口作为源地址,所有发至该端口的数据包都会透过ssh连接被转发出去;至于转发的目标地址,目标地址既可以指定,也可以不指定,如果指定了目标地址,称为定向转发,如果不指定目标地址则称为动态转发: 定向转发 定向转发把数据包转发到指定的目标地址。目标地址不限定是ssh client 或 ssh server,既可以是二者之一,也可以是二者以外的其他机器。...

 ·  · 

长期总结 - Linux网络命令合集

Overview 作为系统管理员或程序员,经常需要诊断分析和解决网络问题,而配置、监控与保护网络有助于发现问题并在事情范围扩大前得意解决,并且网络的性能与安全也是管理与诊断网络的重要部分。本文将总结常用与Linux网络管理的命令与使用示例,保持长期更新与更正。 IP iproute2 包含网络、路由、ARP缓存等的管理与配置的ip命令,用来取代传统的 ifconfig 与 route;ip 使用第二个参数,指定在对象执行的操作(例如,add delete show)。 ip 命令是配置网络接口的强大工具,任何 Linux 系统管理员都应该知道。它用于启动或关闭接口、分配和删除地址和路由、管理 ARP 缓存等等。 ip 常用的子命令有: link (l) 网络接口管理 address (a) IP地址管理 route (r) 路由表管理 neigh (n) arp表管理 各系统下的包名与安装 Ubuntu/Debian: iproute2 ;apt install iproute2 CentOS/Fedora: iproute2 ;yum install -y iproute2 Apline:iproute2 ;apk add iproute2 ip link ip link 用于管理和显示网络接口 获取网络接口信息ip link show 查看特定设备信息 bash 1 ip link show dev [device] 查看所有网络接口的统计信息(如传输或丢弃的数据包,错误等等): bash 1 ip -s link 查看单个网络接口的类似信息:...

 ·  · 

动态路由 - OSPF

Open Shortest Path First OSPF,开放的最短路径优先协议,是IETF组织开发的一个基于链路状态的内部网关协议,它的使用不受任何厂商限制,所有人都可以使用,所以称为开放的,而最短路径优先(SPF)只是OSPF的核心思想,其使用的算法是Dijkstra算法,最短路径优先并没有太多特殊的含义,并没有任何一个路由协议是最长路径优先的,所有协议,都会选最短的。 OSPF针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740) 目的: 在OSPF出现前,网络上广泛使用RIP(Routing Information Protocol)作为内部网关协议。 由于RIP是基于距离矢量算法的路由协议,存在着收敛慢、路由环路、可扩展性差等问题,所以逐渐被OSPF取代。 OSPF作为基于链路状态的协议,能够解决RIP所面临的诸多问题。此外,OSPF还有以下优点: OSPF采用组播形式收发报文,这样可以减少对其它不运行OSPF路由器的影响。 OSPF支持无类型域间选路(CIDR)。 OSPF支持对等价路由进行负载分担。 OSPF支持报文加密。 由于OSPF具有以上优势,使得OSPF作为优秀的内部网关协议被快速接收并广泛使用。 OSPF协议特点: OSPF把自治系统AS(Autonomous System)划分成逻辑意义上的一个或多个区域; OSPF通过LSA(Link State Advertisement)的形式发布路由; OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一; OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。 OSPF工作流程 寻找邻居 OSPF协议运行后,先寻找网络中可与自己交互链路状态信息的周边路由器,可以交互链路状态信息的路由器互为邻居 建立邻居关系 邻接关系可以想象为一条点到点的虚链路,他是在一些邻居路由器之间构成的。只有建立了可靠邻接关系的路由器才相互传递链路状态信息。 链路状态信息传递 OSPF路由器将建立描述网络链路状态的LSA Link State Advertisement,链路状态公告,建立邻接关系的OSPF路由器之间将交互LSA,最终形成包含网络完整链路状态的配置信息。 计算路由 获得了完整的LSBD后,OSPF区域内的每个路由器将会对该区域的网络结构有相同的认识,随后各路由器将依据LSDB的信息用SPF算法独立计算出路由。 Router ID OSPF Router-ID用于在OSPF domain中唯一地表示一台OSPF路由器,从OSPF网络设计的角度,我们要求全OSPF域内,禁止出现两台路由器拥有相同的Router-ID。 OSPF Router-ID的设定可以通过手工配置的方式,或者通过协议自动选取的方式。当然,在实际网络部署中,强烈建议手工配置OSPF的Router-ID,因为这关系到协议的稳定。 实验:单区域OSPF配置 配置两台路由器 bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [Huawei]sysname R2 [R2]interface lo0 [R2-LoopBack0]ip add 2....

 ·  · 

网络名称空间

linux namespace namespace是Linux内核的一项功能,该功能对内核资源进行分区,以使一组进程看到一组资源,而另一组进程看到另一组资源。该功能通过为一组资源和进程具有相同的名称空间而起作用,但是这些名称空间引用了不同的资源。资源可能存在于多个空间中。 Linux namespaces 是对全局系统资源的一种封装隔离,使得处于不同 namespace 的进程拥有独立的全局系统资源,改变一个namespace中的系统资源只会影响当前 namespace 里的进程,对其他 namespace 中的进程没有影响。 每一个进程在其对应的 /proc/[pid]/ns 下都有其 namespace 信息 查看当前进程的namespace ll /proc/$$/ns bash 1 2 3 4 5 6 7 8 9 10 cgroup -> cgroup:[4026531835] cgroup的根目录 ipc -> ipc:[4026531839] 信号量 mnt -> mnt:[4026531840] 文件系统挂载点 net -> net:[4026531992] 网络设备、网络栈、端口 pid -> pid:[4026531836] 进程编号 pid_for_children -> pid:[4026531836] time -> time:[4026531834] time_for_children -> time:[4026531834] user -> user:[4026531837] 用户和用户组 uts -> uts:[4026531838] 主机名和NIS域名 linux的网络名称空间 linux network namespace 是network namespace 是 linux 内核提供的功能,在实现网络虚拟化中起重要作用,每个网络名称空间中有独立的网络协议栈,如路由表、iptables、端口等。在network namespace可以创建多个隔离的网络空间,它们有独自的网络栈信息。在运行的时候仿佛自己就在独立的网络中。...

 ·  ·