计算机网络基础三

课程目标
        理解路由表的作用
        能够读懂路由表信息
        能够使用图形抓包工具 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

外卖跑腿小程序开发如何满足不断变化的用户需求?

外卖跑腿小程序市场竞争激烈,用户需求不断演变。为了保持竞争力,开发团队需要不断适应变化,提供新功能和改进用户体验。本文将讨论如何通过技术手段来满足不断变化的用户需求。 1. 灵活的后端服务 后端服务是外卖跑腿小程序的核心&#xf…

如何优雅地单元测试 Kotlin/Java 中的 private 方法?

翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先,开发者应该测试代码里的 private 私有方法吗? 直接信任这些私有方法,测试到…

css画一条虚线,用到background-image:linear-gradient线性渐变的属性

CSS实现虚线的方法_css 虚线_saltlike的博客-CSDN博客 渐变属性(background-image)全解析_background-image linear_大聪明码农徐的博客-CSDN博客 Background:linear-gradient()详解_background: linear-gradient_小白白中之白的博客-CSDN博客 注意: 必须要写高…

最短路径:迪杰斯特拉算法

简介 英文名Dijkstra 作用&#xff1a;找到路中指定起点到指定终点的带权最短路径 核心步骤 1&#xff09;确定起点&#xff0c;终点 2&#xff09;从未走过的点中选取从起点到权值最小点作为中心点 3&#xff09;如果满足 起点到中心点权值 中心点到指定其他点的权值 < 起…

C++进阶语法——智能指针【学习笔记(五)】

文章目录 1、智能指针简介1.1 原始指针&#xff08;raw pointer&#xff09;的⼀些问题1.2 智能指针&#xff08;smart pointers&#xff09; 2、智能指针&#xff08;smart pointers&#xff09;——unique_ptr2.1 unique_ptr 的声明2.2 unique_ptr 的函数2.3 ⾃定义类型使⽤ …

基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类 计算机竞赛

文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层&#xff1a;2.4 池化层&#xff1a;2.5 全连接softmax层&#xff1a;2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.…

【HTML/CSS学习】margin和padding的区别

1. margin margin&#xff08;外边距&#xff09;属性定义元素周围的空间。 margin主要在元素的外部创建空白区域&#xff0c;用于分隔元素与其相邻元素之间的距离。 用处&#xff1a;可以用于调整两个元素之间的间隔。 2. padding padding&#xff08;填充&#xff09;定义…

IDE的组成

集成开发环境&#xff08;IDE&#xff0c;Integrated Development Environment &#xff09;是用于提供程序开发环境的应用程序&#xff0c;一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务…

拿下国家级信创认证 中科驭数KPU SWIFT-2200N成为国内首款满足金融业严苛要求的DPU产品

近日&#xff0c;中科驭数KPU SWIFT-2200N低时延DPU卡&#xff0c;在中国人民银行旗下金融信创生态实验室完成测试并取得测试报告&#xff0c;这意味着中科驭数低时延网络代表性产品的应用领域从证券进一步拓展到了银行业&#xff0c;成为国内首款满足金融行业严苛要求的DPU产品…

iis前端代理后台tomcat

1)tomcat服务器配置运行好&#xff0c;服务地址位于 localhost:8080/wechat 2)iis 绑定了域名 api.abc.com 希望访问 api.abc.com/wechat时&#xff0c;实际由tomcat的服务处理; 3)iis上需要添加组件 requestRouter_amd64.msi rewrite_amd64_zh-CN.msi 4)iis进行相关配置…

记录linux运行服务提示报错/bin/java: 没有那个文件或目录

描述&#xff1a;在执行jar启动命令时候提示 没有/bin/java 这个文件或者目录&#xff1b;然后我vi /usr/bin/java&#xff0c;是存在该文件的&#xff1b;那到底是什么问题呢&#xff0c;该不是没有创建软连接吧&#xff1f; 1、执行下述命令先测试下软链接是否有创建 ln -s …

用软件模拟IPC的RTSP流,对接烟火识别算法服务,做实时的烟火检测、人员入侵检测、抽烟检测等算法

最近在研发烟火识别的算法&#xff0c;想要检验算法集成到视频分析服务之后的效果&#xff0c;发现线上的摄像机很难发现火情&#xff0c;有的很长时间都不会有检测的结果&#xff0c;于是我就需要用已经被检验过的视频文件&#xff0c;模拟一路IPC的RTSP流&#xff0c;来测试烟…

jenkins如何安装?

docker pull jenkins/jenkins:lts-centos7-jdk8 2.docker-compose.yml version: 3 services:jenkins:image: jenkins/jenkins:lts-centos7-jdk8container_name: my-jenkinsports:- "8080:8080" # 映射 Jenkins Web 界面端口volumes:- jenkins_home:/var/jenkins_h…

【MySQL数据库】初识MySQL数据库、安装MySQL

文章目录 前言一、什么是 MySQL&#xff1f;二、MySQL 的强大之处三、Ubuntu安装MySQL步骤 1: 更新包列表步骤 2: 安装 MySQL步骤 3: 启动 MySQL 服务步骤 4: 验证 MySQL 安装步骤 5: 确保 MySQL 安全性 总结 前言 在今天的数字化世界中&#xff0c;数据是企业和个人的重要资产…

matlab 中的基本绘图指令与字符串操作指令

字符串指令 创建字符串 使用单引号将字符序列括起来创建字符串使用单引号创建的字符串是一个字符数组&#xff0c;每个字符都被视为一个独立的元素 可以通过索引访问每个字符使用双引号创建的字符串是一个字符串数组&#xff0c;整个字符串被视为一个元素 无法通过索引访问单个…

【SEC 学习】美化 Linux 终端

一、步骤 1. 进入 /etc/bash.bashrc vim /etc/bash.bashrc2. 重新加载 bash.bashrc source /etc/bash.bashrc二、各参数指标 符号含义\u当前用户的账号名称\h仅取主机的第一个名字&#xff0c;如上例&#xff0c;则为fc4&#xff0c;.linux则被省略\H完整的主机名称。例如&…

一文详解防御DDoS攻击的几大有效办法

伴随互联网的飞速发展&#xff0c;网络安全问题变得越来越突出&#xff0c;其中最常见的就是DDoS攻击&#xff0c;也就是分布式拒绝服务攻击。DDoS攻击者利用计算机或其他设备的协作&#xff0c;以发送大量请求的方式导致目标超负荷&#xff0c;导致不能正常运转或“宕机”。以…

【Linux】NTP服务器配置、时间修改

查看当前系统时间date修改当前系统时间date -s "2018-2-22 19:10:30"查看硬件时间hwclock --show修改硬件时间hwclock --set --date "2018-2-22 19:10:30"同步系统时间和硬件时间hwclock --hctosys保存时钟clock –w1.设置NTP Server服务检查系统是否安装n…

医学专题--多组学在病原微生物感染中的研究思路

研究背景 病原微生物是指可以侵犯人和动物&#xff0c;引起感染甚至传染病的微生物&#xff0c;包括病毒、细菌、真菌、立克次体、寄生虫等。在我国&#xff0c;感染性疾病占所有疾病的50%以上&#xff0c;每年约1300万儿童死于感染性疾病&#xff1b;而临床上感染性疾病患者中…

BUUCTF qr 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 这是一个二维码&#xff0c;谁用谁知道&#xff01; 密文&#xff1a; 下载附件&#xff0c;得到一张二维码图片。 解题思路&#xff1a; 1、这是一道签到题&#xff0c;扫描二维码得到flag。 flag&#xff1a;…