计算机网络基础三

课程目标
        理解路由表的作用
        能够读懂路由表信息
        能够使用图形抓包工具 wireshark 进行数据包的抓取 ,如( TCP/IP 的三次握手四次断开)

一、路由表

思考:
什么是交换,什么是路由,什么是路由表?1. 交换是指同网络访问(两台机器连在同一个交换机上,配置同网段的不同ip就可以直接迅)2. 路由就是跨网络访问(路径选择)3. 路由表是记录路由信息的表,在Linux中⾸先是⼀张可见的,可更改的表,它的作⽤就是当数据包发到Linux的时候 ,系统(或者说内核)就根据这张表中定义好的信息来决定这个数据包接下来该怎么⾛

1. 查看路由表信息

route 命令用来查看和设置路由表信息
[root @server ~ ] # 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
10.1.1.0               0.0.0.0         255.255.255.0         U         0         0            0 eth0
0.0.0.0                10.1.1.254         0.0.0.0                 UG       0         0            0 eth0
目标网络                 网关              子网掩码        路由标志                           网卡
                                                                               Up : 启动状态
                                                                               UG : 该网关为路由器
113.28.10.34

 2. 读懂路由信息

讨论 1
按上面的路由表来看,如果我 ping 一个公网 IP (如 ping 14.200.151.38 ) ,应该怎么走 ?
1 ) 先看目标 ip 是否为本地 ip ,如果是,则直接访问本地 ; 如果不是,则找路由表里是否有你访问的网段 .
2 ) 如果路由表有则从这个路由条目后面指定的网卡出去;如果路由表里没有你访问的网段,则会找默认路由
(也就是网关)。
3 ) 如果网关也没有的话,则会报错网络不可达。
connect : Network is unreachable
讨论 2
按上面的路由表来看,如果我 ping 一个局域网 IP 10.1.1.10 ,会怎么走 ?
ping 10.1.1.10 不会走网关,而是走本地路由从 eth0 网卡出去(因为路由表里有 10.1.1.0 / 24 的路由)。
讨论 3
如何加网关和删除网关,加网关有什么要求 ?
route add default gw x.x.x.x                  临时加网关,马上生效
route del default gw x.x.x.x                   临时删网关,马上生效
永久增加网关:
vim           / etc / sysconfig / network-scripts / ifcfg-eth0
GATEWAY = x.x.x.x
或者
vim          / etc / rc.local         操作系统开机最后读取的一个文件
..
route add default gw xxxxx
注意事项:
1. 加网关只能加你已经有的路由网段里的一个 IP 才行(此 IP 不一定存在)
2. 加网关可以不用指定子网掩码(因为是已有的一个网段的 ip ,所以掩码已经确认了 )
讨论 4
一个 linux 服务器上能有几个有效网关 ?
准确来说:一个路由表上可以加多个网关,但只有一个生效。
讨论 5
我一台 linux 上如果有双物理网卡,请问可不可以两个网卡配置同网段的不同 IP ?
eth0 10.1.1.1 / 24
eth1 10.1.1.2 / 24
如果两个网卡同网段,则会有下面两条路由
10.1.1.0         0.0.0.0         255.255.255.0          U          0         0         0 eth0
10.1.1.0         0.0.0.0         255.255.255.0          U          0         0         0 eth1
结果:
它会实现从两张网卡进来的包,却从一张网卡出去,问题就产生了。假设 eth0 网卡有问题时,路由表里匹配到第一条后,依 然会走 eth0 网卡,而不会走 eth1
也有解决方法(比如多路由表或者双网卡绑定),这里不涉及。

二、路由选择实验

1. route命令介绍

route - n         查看路由 , 显示 ip, 不解析
route del default gw 10.1.1.254          删除默认路由
route add default gw 192.168.1.110          添加一个默认网关,把所有不知道的网络交给网关来转发
route add - net 192.168.2.0 / 24 dev eth0          对一个网络添加一个新的路由(另一个网段)
route del - net 192.168.2.0 /

 2. 实验要求

前提条件:三台虚拟主机的网络模式都是仅主机模式!
环境准备:
node1 : 10.1.1.1 / 24
作为网关服务器,开启路由转发功能 / proc / sys / net / ipv4 / ip_forward
node2 : 192.168.0.254 / 24
node3 : 172.16.0.254 / 24
要求:
实现不同网络 ( 172.16.0.0 / 24 192.168.0.0 / 24 ) 之间的互通,使用第三方主机 node1 作为路由进行转发

3. 具体步骤

思路:
1. 中间人node1,必须开启路由转发功能;
2. 中间人node1即要有到达A网络,又能到达C网络的路
3. node2主机(A网络)必须设置中间人node1作为自己的网关
4. node3主机(C网络)必须设置中间人node1作为自己的网关

步骤:
1. node1 服务器(中间人)完成以下任务
1 )开启路由转发功能
临时开启:
[root @server ~ ] # cat /proc/sys/net/ipv4/ip_forward
0
[root @server ~ ] # echo 1 > /proc/sys/net/ipv4/ip_forward
[root @server ~ ] # cat /proc/sys/net/ipv4/ip_forward
1
永久开启:
[root @server ~ ] # vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
2 )分别添加到 node2 node3 两台主机所在的网络
[root @node1 ~ ] # route add -net 192.168.0.0/24 dev eth0
[root @node1 ~ ] # route add -net 172.16.0.0/24 dev eth0
[root @node1 ~ ] # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
2. 分别配置 node2 node3 IP 和网关
[root @node2 ~ ] # route add -net 10.1.1.0/24 dev eth0
[root @node2 ~ ] # route add default gw 10.1.1.1
[root @node3 ~ ] # route add -net 10.1.1.0/24 dev eth0
[root @node3 ~ ] # route add default gw 10.1.1.1
3. 测试验证
1 )中间主机分别 ping node2 node3
2 node2 node3 相互 ping

4. 实战组建局域网

思科模拟器交换机配置相关命令:

进入到使能模式
Switch > ?
Switch > enable
进入配置终端
Switch #?
Switch #configure terminal
创建 vlan
Switch (config) #vlan 10
删除 vlan
Switch (config) #no vlan 10
进入指定的配置接口
Switch (config) #interface FastEthernet0/1
或者
Switch (config) #int fa0/1
fa0 / 1 接口加入到 vlan
Switch (config-if) #switchport access vlan 10
vlan 中删除接口
Switch (config-if) #no switchport access vlan 10
 4.1 交换机vlan划分

4.2 路由器连接多个网络

三、抓包工具

1. wireshark工具

安装 wireshark 工具
# yum -y install wireshark*

telnet 登录包:
telnet: 远程管理服务 tcp/23
server 10.1.1.5 telnet-server
client 10.1.1.1 telnet 使用: telnet 10.1.1.1
Centos6 .5 系统:
1. 安装软件包
yum - y install telnet-server telnet
2. 启动 telnet 服务
vim / etc / xinetd.d / telnet
service telnet
{
                disable = yes yes 变为 no
                flags = REUSE
                socket_type = stream
                wait = no
                user = root
                server = / usr / sbin / in .telnetd
                log_on_failure += USERID
}
启动服务:
service xinetd start
检查 telnet 服务是否启动:
[root @node1 Desktop] # netstat -nltp|grep 23
tcp         0         0 ::: 23                  :::*                  LISTEN
5546 / xinetd
Centos7 .5 系统:
1. 安装软件包
yum - y install telnet-server
2. 启动服务
[root @centos7 ~ ] # systemctl start telnet.socket
[root @centos7 ~ ] # netstat -nltp|grep :23
tcp6          0         0 ::: 23                  :::*          LISTEN 1 / systemd
3. 测试验证        

2. tcpdump工具  

查看 arp 缓存 (同一网段主机的 MAC 地址)
[root @node1 Desktop] # arp -n
Address         HWtype         HWaddress                 Flags Mask         Iface
10.1.1.254         ether          00 : 50 : 56 : c0 : 00 : 01          C                         eth0
删除目标主机的 MAC 缓存
[root @node1 Desktop] # arp -d 10.1.1.254
[root @node1 Desktop] # arp -n
Address                 HWtype HWaddress         Flags Mask                 Iface
10.1.1.254                          (incomplete)                                               eth0
查看主机 10.1.1.1 收到的和发送的数据包
[root @node1 Desktop] # tcpdump -i eth0 -nn host 10.1.1.1
tcpdump : verbose output suppressed, use - v or - vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
22 : 33 : 25.148389 ARP, Request who-has 10.1.1.254 tell 10.1.1.1 , length 28
22 : 33 : 25.148896 ARP, Reply 10.1.1.254 is-at 00 : 50 : 56 : c0 : 00 : 01 , length 46
22 : 33 : 30.714605 IP 10.1.1.254 > 10.1.1.1 : ICMP echo request, id 1 , seq 237 , length 40
22 : 33 : 30.714619 IP 10.1.1.1 > 10.1.1.254 : ICMP echo reply, id 1 , seq 237 , length 40
- i 指定网络接口,对于多个网络接口有用
- n 显示 IP 地址,不查主机名。当 DNS 不起作用时常用到这个参数
- nn 不显示协议和端口名。即显示 IP 地址和端口
- w 将抓的包保存到指定的文件里方便后续分析
其他用法:
man   tcpdump
TCP  Packets
The general format of a tcp protocol line is :
                                src > dst : flags data-seqno ack window urgent options
                        Src and dst are the source and destination IP addresses and ports. Flags are some combination of S
                        (SYN), F (FIN), P (PUSH), R (RST), W (ECN CWR) or E (ECN-Echo), or a single . (no flags).
1. 获取主机 10.1.1.1 接收或发出的 telnet
#tcpdump tcp port 23 and host 10.1.1.1
2. 对本机的 udp 协议的 123 端口进行监听( 123 ntp 服务端口)
# tcpdump udp port 123
3. 只对 hostname 的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。
下面的命令可以查看主机 hostname 发送的所有数据:
#tcpdump -i eth0 src host hostname
#tcpdump -i eth0 src host 10.1.1.254
4. 下面的命令可以查看所有送到主机 hostname 的数据包:
#tcpdump -i eth0 dst host hostname
#tcpdump -i eth0 dst host 10.1.1.1
5. 监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname
#tcpdump -i eth0 gateway 10.1.1.254
6. 其他
只需要列出送到 80 端口的数据包,用 dst port
#tcpdump –i eth0 host hostname and dst port 80 // 目的端口是 80
只需要看到返回 80 端口的数据包,用 src port
#tcpdump –i eth0 host hostname and src port 80 // 源端口是 80, 一般是提供 http 的服务的主机
如果条件很多的话要在条件之前加 and or not
#tcpdump -i eth0 host ! 210.161.223.70 and ! 210.161.223.71 and dst port 80

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/174422.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux C语言开发-D15一维数组

数组&#xff1a;有一定顺序关系的数据类型相同变量的变量集合 形式&#xff1a;<存储类型> <数据类型> <数组名> [<表达式>] 数组名表示内存首地址&#xff0c;是一个地址常量&#xff0c;sizeof(数组名)是数组占用的总内存空间 编译时分配连续内存…

常见的22个软件测试面试题(含答案解析)

大家好&#xff0c;我是大圣。今天大圣给大家列举了API测试的22个面试题&#xff0c;快来看看吧。 1、什么是API? API是允许两个应用程序相互通信的代码。API使开发人员能够发出特定的调用或请求来发送或接收信息。 2、什么是以API为中心的应用程序? 以API为中心的应用程…

重置 VCSA 6.7 root密码和SSO密码

原贴地址&#xff1a;https://www.cnblogs.com/airoot/p/16059033.html 问题描述 1、用root用户登录 VMware vCenter Server Appliance虚拟机失败&#xff0c;无法登录 2、vCenter Server Appliance 6.7 U1的root帐户错误尝试次数超过3次已锁定或帐户已过期 官方说明 在VC…

帆软同时查看多个tab会卡换种方式用网页跳转就会提升效率

效果如图&#xff1a; 方法&#xff1a; 首先&#xff0c;要下载个插件–网页框控件&#xff1b; 接着&#xff0c;做个frm作为首页&#xff0c; 把地址和参数输入进去 最后&#xff0c;预览首页就可以了

【软件教程】如何用C++检查TCP或UDP端口是否被占用

一、检查步骤 使用socket函数创建socket_fd套接字。使用sockaddr_in结构体配置协议和端口号。使用bind函数尝试与端口进行绑定&#xff0c;成功返回0表示未被占用&#xff0c;失败返回-1表示已被占用。 二、CODE 其中port需要修改为想要检测的端口号&#xff0c;也可以将代码…

检测和缓解SQL注入攻击

SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理员不知情的情况下实现非法操作&#xff0c;以此来实现欺骗数据库服务器执行非授权的任意查询&#…

Jetpack Compose | State状态管理及界面刷新

我们知道Jetpack Compose&#xff08;以下简称Compose&#xff09;中的 UI 可组合项是通过Composable 声明的函数来描述的&#xff0c;如&#xff1a; Composable fun Greeting() {Text(text "init",color Color.Red,modifier Modifier.fillMaxWidth()) }上面的代…

研究人员发现基于xmpp的即时通讯服务被窃听

攻击者使用我们的加密服务发布了几个新的TLS证书,这些服务被用来劫持加密的 星连接 在5222端口使用透明的[中间人]代理。 到目前为止收集到的证据指向在托管提供者网络上配置的流量重定向,排除了其他可能性&#xff0c;例如服务器中断或欺骗攻击。 据估计&#xff0c;窃听从20…

数据结构:优先级队列(堆)

概念 优先级队列是啥&#xff1f; 队列是一种先进先出 (FIFO) 的数据结构 &#xff0c;但有些情况下&#xff0c; 操作的数据可能带有优先级&#xff0c;一般出队 列时&#xff0c;可能需要优先级高的元素先出队列。 在这种情况下&#xff0c; 数据结构应该提供两个最基本的…

uniapp开发小程序 小米手机真机bottom:0无效 底部间隙 设备安全区域处理办法

uniApp自定义导航 CSS设置 bottom:0竟然无效&#xff0c;而iphone和开发模拟器没有问题 height: 150rpx;position: fixed;left: 0;right: 0;bottom: calc(var(--window-bottom,0)); 网上查了各种方法&#xff0c;包括设置bottom:-20啊以及 padding-bottom: constant(safe-are…

Spark On Hive原理和配置

目录 一、Spark On Hive原理 &#xff08;1&#xff09;为什么要让Spark On Hive&#xff1f; 二、MySQL安装配置&#xff08;root用户&#xff09; &#xff08;1&#xff09;安装MySQL &#xff08;2&#xff09;启动MySQL设置开机启动 &#xff08;3&#xff09;修改MySQL…

后悔没早学这份Python神级文档!2023最新入门到进阶核心知识点学习文档!

如今学 Python 的程序员越来越多&#xff0c;甚至不少人会把 Python 当作第一语言来学习。不过尽管 Python 功能强大上手轻松&#xff0c;但并不代表它的学习曲线不陡峭&#xff0c;得来全不费工夫。 当推开 Python 的大门&#xff0c;你会发现 Python 入门简单但精通很难。看…

Realrek 2.5G交换机 8+1万兆光RTL8373-VB-CG方案简介

新一代2.5G交换机方案RTL8373-VB-CG可以提供4中不同形态 a. 52.5G 电口110G光》RTL8373 b. 52.5G 电口110G电》RTL83738261 c. 82.5G 电口110G光》RTL83738224 d.82.5G 电口110G电口》RTL837382248261 1.概述 Realtek RTL8373-CG是一款低功耗、高性能、高度集成的八端口2.5G和一…

(c语言进阶)字符串函数、字符分类函数和字符转换函数

一.求字符串长度 1.strlen() (1)基本概念 头文件&#xff1a;<string.h> (2)易错点&#xff1a;strlen()的返回值为无符号整形 #include<stdio.h> #include<string.h> int main() {const char* str1 "abcdef";const char* str2 "bbb&q…

N-129基于springboot,vue学生宿舍管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vuevue-element-admin 服务端技术&#xff1a;springboot,mybatis…

css矩形盒子实现虚线流动边框+css实现step连接箭头

由于项目里需要手写步骤条 且实现指定状态边框虚线流动效果&#xff0c;故使用css去绘制步骤条连接箭头和绘制边框流动效果 效果&#xff1a; 1.绘制步骤条连接箭头 <ul class"process-list"><div v-for"(process, index) in processes" :key&qu…

论文阅读——DistilBERT

ArXiv&#xff1a;https://arxiv.org/abs/1910.01108 Train Loss: DistilBERT&#xff1a; DistilBERT具有与BERT相同的一般结构&#xff0c;层数减少2倍&#xff0c;移除token类型嵌入和pooler。从老师那里取一层来初始化学生。 The token-type embeddings and the pooler a…

UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…

Wpf 使用 Prism 实战开发Day03

一.实现左侧菜单绑定 效果图: 1.首先需要在项目中创建 mvvm 的架构模式 创建 Models &#xff0c;放置实体类。 实体类需要继承自Prism 框架的 BindableBase&#xff0c;目的是让实体类支持数据的动态变更! 例如: 系统导航菜单实体类 / <summary>/// 系统导航菜单实体类…

CAD需要学c语言嘛?

CAD需要学c语言嘛&#xff1f; AutoCAD 和 C 语言没有关系的。 如果非要说是 AutoCAD 和哪个编程语言有关系&#xff0c;那应该是 VBA, 可以通过 VBA 编程&#xff0c;最近很多小伙伴找我&#xff0c;说想要一些c语言资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬…