云计算教程之路由教程

举报
tea_year 发表于 2024/08/15 19:48:11 2024/08/15
【摘要】 技术目标理解路由表的作用能够读懂路由表信息能够使用图形抓包工具wireshark进行数据包的抓取,如(TCP/IP的三次握手四次断开)一、路由表思考:什么是交换,什么是路由,什么是路由表?1. 交换是指同网络访问(两台机器连在同一个交换机上,配置同网段的不同ip就可以直接通迅)2. 路由就是跨网络访问(路径选择)3. 路由表是记录路由信息的表,在Linux中⾸先是⼀张可见的,可更改的表,它的...

技术目标

理解路由表的作用能够读懂路由表信息

能够使用图形抓包工具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

网卡

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:
二、路由选择实验 

1. route命令介绍 

2. 实验要求 

如何加网关和删除网关,加网关有什么要求?

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。
也有解决方法(比如多路由表或者双网卡绑定),这里不涉及

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


二、路由选择实验

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/24 

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

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


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


1.%2
交换机vlan划分



2.%2 路由器连接多个网络


三、抓包工具

1. wireshark工具

安装wireshark工具

# yum -y install wireshark*

telnet登录包:

telnet: 远 程 管 理 服 务 tcp/23 server10.1.1.5 telnet-server client10.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工具

[root@node1

Address

Desktop]#

arp -n

HWtype


HWaddress


Flags Mask


Iface

10.1.1.254


ether

00:50:56:c0:00:01

C

eth0


删除目标主机的MAC缓存

[root@node1 [root@node1

Address

Desktop]# Desktop]#

arp -d 10.1.1.254

arp -n

HWtype    HWaddress



Flags



Mask



Iface

10.1.1.254


(incomplete)



eth0

[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

查看主机10.1.1.1收到的和发送的数据包

-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端口进行监听(123ntp服务端口)

# 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的服务的主机




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。