龙空技术网

Linux-什么是网桥?

不寐旋律 425

前言:

现时你们对“centos7创建网桥”可能比较珍视,兄弟们都需要学习一些“centos7创建网桥”的相关知识。那么小编同时在网摘上网罗了一些关于“centos7创建网桥””的相关内容,希望看官们能喜欢,你们一起来学习一下吧!

#头条创作挑战赛#

1 网桥

网桥(Bridge)是一种网络设备,用于连接两个或多个网络(通常是以太网)以形成一个扩展的网络。它在数据链路层(第二层)操作,并根据目标MAC地址将数据帧从一个网络转发到另一个网络。

1.1 桥接原理

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网络端口之间的报文能够互相转发;网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的,与网桥相连的主机就能通过交换机的报文转发而互相通信。

主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D

1.2 配置实现网桥

工具包:bridge-utils,目前 CentOS 8 无此包

yum install bridge-utils#查看网桥brctl show#查看CAM(content addressable memory内容可寻址存储器)表brctl showmacs br0#添加和删除网桥brctl addbr | delbr br0#添加和删除网桥中网卡brctl addif | delif br0 eth0#默认br0 是down,必须启用ifconfig br0 up#启用STP[root@centos7 ~]#brctl showbridge name bridge id STP enabled interfacesbr0 8000.000c297e67a3 no eth1                                             eth2 [root@centos7 ~]#brctl stp br0 on[root@centos7 ~]#brctl showbridge name bridge id STP enabled interfacesbr0 8000.000c297e67a3 yes eth1                                              eth2

注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口

nmcli命令创建软件网桥

nmcli con add con-name mybr0 type bridge ifname br0nmcli con modify mybr0 ipv4.addresses 192.168.0.100/24 ipv4.method manualnmcli con add con-name br0-port0 type bridge-slave ifname eth0 master br0

查看配置文件

cat /etc/sysconfig/network-scripts/ifcfg-br0cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
#1创建网桥nmcli con add type bridge con-name br0 ifname br0nmcli connection modify br0 ipv4.addresses 192.168.0.100/24 ipv4.method manualnmcli con up br0#2加入物理网卡nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0nmcli con add type bridge-slave con-name br0-port1 ifname eth1 master br0nmcli con up br0-port0nmcli con up br0-port1#3查看网桥配置文件cat /etc/sysconfig/network-scripts/ifcfg-br0DEVICE=br0STP=yesTYPE=BridgeBOOTPROTO=staticIPADDR=192.168.0.100PREFIX=24cat /etc/sysconfig/network-scripts/ifcfg-br0-port0TYPE=EthernetNAME=br0-port0DEVICE=eth0ONBOOT=yesBRIDGE=br0UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d#4安装管理软件包:yum install bridge-utilsbrctl show#5删除br0nmcli con down br0rm /etc/sysconfig/network-scripts/ifcfg-br0*nmcli con reload
2 网络测试诊断工具

1 测试网络连通性

ping

2 显示正确的路由表

ip route

3 跟踪路由

traceroutetracepathmtr

4 确定名称服务器使用

nslookuphostdig

5 抓包工具

tcpdumpwireshark

6 安全扫描工具

nmapnetcat :网络界的瑞士军刀,即nc

7 流量控制工具

tc

案例:

tc qdisc add dev eth0 root netem loss 50%tc qdisc add dev eth0 root netem delay 1000mstc qdisc show dev eth0tc qdisc del
2.1 fping

fping是一个程序,用于将ICMP探测发送到网络主机,类似于ping,fping的历史由来已久:RolandSchemers在1992年确实发布了它的第一个版本,从那时起它就确立了自己的地位,成为网络诊断和统计的标准工具。

相对于ping多个主机时性能要高得多。 fping完全不同于ping,可以在命令行上定义任意数量的主机,或者指定包含要ping的IP地址或主机列表的文件, 常在shell 脚本中使用。

CentOS 中由EPEL源提供

官网:

[root@centos8 ~]#yum -y install fping[root@centos8 ~]#fping 10.0.0.710.0.0.7 is alive[root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all[root@centos8 ~]#fping 10.0.0.710.0.0.7 is unreachable[root@centos8 ~]#fping 10.0.0.710.0.0.7 is unreachable [root@centos8 ~]#fping 10.0.0.7 10.0.0.810.0.0.8 is alive10.0.0.7 is unreachable#-g 选项可以指定网段或地址范围[root@centos8 ~]#fping -g 10.0.0.0/2410.0.0.1 is alive10.0.0.2 is alive10.0.0.8 is alive10.0.0.100 is aliveICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.3ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.3ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6......省略....  [root@centos8 ~]#fping -g 10.0.0.5 10.0.0.1010.0.0.8 is aliveICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.6ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.5ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.10ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.9ICMP Host Unreachable from 10.0.0.8 for ICMP Echo sent to 10.0.0.910.0.0.5 is unreachable10.0.0.6 is unreachable10.0.0.7 is unreachable10.0.0.9 is unreachable10.0.0.10 is unreachable#对文件中的主机时行测试[root@centos8 ~]#tee hosts.txt <<EOF10.0.0.710.0.0.8EOF 10.0.0.710.0.0.8  [root@centos8 ~]#fping < hosts.txt10.0.0.8 is alive10.0.0.7 is unreachable[root@centos8 ~]#fping -s < hosts.txt10.0.0.8 is alive10.0.0.7 is unreachable2 targets1 alive1 unreachable0 unknown addresses1 timeouts (waiting for response)5 ICMP Echos sent1 ICMP Echo Replies received0 other ICMP received0.07 ms (min round trip time)0.07 ms (avg round trip time)0.07 ms (max round trip time)4.080 sec (elapsed real time)
2.2 tcpdump

网络数据包截获分析工具;支持针对网络层、协议、主机、网络或端口的过滤;并提供and、or、not等逻辑语句帮助去除无用的信息。

语法:

tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]参数说明:-a 尝试将网络和广播地址转换成名称。-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。-e 在每列倾倒资料上显示连接层级的文件头。-f 用数字显示网际网络地址。-F<表达文件> 指定内含表达方式的文件。-i<网络界面> 使用指定的网络截面送出数据包。-l 使用标准输出列的缓冲区。-n 不把主机的网络地址转换成名字。-N 不列出域名。-O 不将数据包编码最佳化。-p 不让网络界面进入混杂模式。-q 快速输出,仅列出少数的传输协议信息。-r<数据包文件> 从指定的文件读取数据包数据。-s<数据包大小> 设置每个数据包的大小。-S 用绝对而非相对数值列出TCP关联数。-t 在每列倾倒资料上不显示时间戳记。-tt 在每列倾倒资料上显示未经格式化的时间戳记。-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。-v 详细显示指令执行过程。-vv 更详细显示指令执行过程。-x 用十六进制字码列出数据包资料。-w<数据包文件> 把数据包数据写入指定的文件。

案例:

#查看网卡[root@centos8 ~]#tcpdump -D1.eth0 [Up, Running]2.lo [Up, Running, Loopback]3.any (Pseudo-device that captures on all interfaces) [Up, Running]4.bluetooth-monitor (Bluetooth Linux Monitor) [none]5.nflog (Linux netfilter log (NFLOG) interface) [none]6.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]7.usbmon0 (All USB buses) [none]8.usbmon1 (USB bus number 1)9.usbmon2 (USB bus number 2)#不指定任何参数,监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。tcpdump#监听特定网卡tcpdump -i en0#监听特定主机,监听主机10.0.0.100 的通信包,注意:出、入的包都会被监听。tcpdump host 10.0.0.100#特定来源、目标地址的通信#特定来源tcpdump src host hostname#特定目标地址tcpdump dst host hostname#如果不指定src跟dst,那么来源或者目标是hostname的通信都会被监听tcpdump host hostname#面试题[root@centos8 ~]#tcpdump -i eth0 -nn icmp and src host 10.0.0.6 and dst host10.0.0.7 #特定端口tcpdump port 3000 #监听TCP/UDP,服务器上不同服务分别用了TCP、UDP作为传输层,假如只想监听TCP的数据包tcpdump tcp #来源主机+端口+TCP,监听来自主机10.0.0.100在端口22上的TCP数据包tcpdump tcp port 22 and src host 10.0.0.100 #监听特定主机之间的通信tcpdump ip host 10.0.0.101 and 10.0.0.102 #10.0.0.101和除了10.0.0.1之外的主机之间的通信tcpdump ip host 10.0.0.101 and ! 10.0.0.1    #详细示例tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型(2)-i eth1 : 只抓经过接口eth1的包(3)-t : 不显示时间戳(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包(5)-c 100 : 只抓取100个数据包(6)dst port ! 22 : 不抓取目标端口是22的数据包(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24(8)-w ./target.cap : 保存成cap文件,方便用wireshark分析#限制抓包的数量,如下,抓到1000个包后,自动退出tcpdump -c 1000#保存到本地,tcpdump默认会将输出写到缓冲区,只有缓冲区内容达到一定的大小,或者tcpdump退出时,才会将输出写到本地磁盘,可以加上-U强制立即写到本地磁盘(一般不建议,性能相对较差)tcpdump -n -vvv -c 1000 -w /tmp/tcpdump_save.cap
2.3 nmap

Nmap(Network Mapper)是一个用于网络探测和安全评估的开源工具。它被广泛用于网络发现、端口扫描、服务识别和漏洞扫描等任务。Nmap提供了丰富的功能和灵活的选项,使其成为网络管理员和安全专业人员的首选工具之一。

官方帮助:

格式:

nmap [Scan Type(s)] [Options] {target specification}命令选项-sT TCP connect() 扫描,这是最基本的 TCP 扫描方式。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息-sS TCP 同步扫描 (TCP SYN),因为不必全部打开一个 TCP 连接,所以这项技术通常称为半开扫描(half-open)。这项技术最大的好处是,很少有系统能够把这记入系统日志-sF,-sX,-sN 秘密 FIN 数据包扫描、圣诞树 (Xmas Tree)、空 (Null) 扫描模式。这些扫描方式的理论依据是:关闭的端口需要对你的探测包回应 RST 包,而打开的端口必需忽略有问题的包-sP ping 扫描,用 ping 方式检查网络上哪些主机正在运行。当主机阻塞 ICMP echo 请求包是ping 扫描是无效的。nmap 在任何情况下都会进行 ping 扫描,只有目标主机处于运行状态,才会进行后续的扫描-sU UDP 的数据包进行扫描,想知道在某台主机上提供哪些 UDP 服务,可以使用此选项-sA ACK 扫描,这项高级的扫描方法通常可以用来穿过防火墙。-sW 滑动窗口扫描,非常类似于 ACK 的扫描-sR RPC 扫描,和其它不同的端口扫描方法结合使用。-b FTP 反弹攻击 (bounce attack),连接到防火墙后面的一台 FTP 服务器做代理,接着进行端口扫描。-P0 在扫描之前,不 ping 主机。-PT 扫描之前,使用 TCP ping 确定哪些主机正在运行-PS 对于 root 用户,这个选项让 nmap 使用 SYN 包而不是 ACK 包来对目标主机进行扫描。-PI 设置这个选项,让 nmap 使用真正的 ping(ICMP echo 请求)来扫描目标主机是否正在运行。-PB 这是默认的 ping 扫描选项。它使用 ACK(-PT) 和 ICMP(-PI) 两种扫描类型并行扫描。如果防火墙能够过滤其中一种包,使用这种方法,你就能够穿过防火墙。-O 这个选项激活对 TCP/IP 指纹特征 (fingerprinting) 的扫描,获得远程主机的标志,也就是操作系统类型-I 打开 nmap 的反向标志扫描功能。-f 使用碎片 IP 数据包发送 SYN、FIN、XMAS、NULL。包增加包过滤、入侵检测系统的难度,使其无法知道你的企图-v 冗余模式。强烈推荐使用这个选项,它会给出扫描过程中的详细信息。-S <IP> 在一些情况下,nmap 可能无法确定你的源地址 。在这种情况使用这个选项给出指定 IP 地址-g port 设置扫描的源端口-oN 把扫描结果重定向到一个可读的文件 logfilename 中-oS 扫描结果输出到标准输出。--host_timeout 设置扫描一台主机的时间,以毫秒为单位。默认的情况下,没有超时限制--max_rtt_timeout 设置对每次探测的等待时间,以毫秒为单位。如果超过这个时间限制就重传或者超时。默认值是大约 9000 毫秒--min_rtt_timeout 设置 nmap 对每次探测至少等待你指定的时间,以毫秒为单位-M count 置进行 TCP connect() 扫描时,最多使用多少个套接字进行并行的扫描

案例:

#Tcp ack 扫描,并发2000,速度快nmap -n -PA --min-parallelism 2000 172.16.0.0/16#仅列出指定网段上的每台主机,不发送任何报文到目[root@centos8 ~]#nmap -sL 10.0.0.0/24  #可以指定一个IP地址范围[root@centos8 ~]#nmap -sP 10.0.0.1-10#批量扫描一个网段的主机存活数nmap -sP -v 192.168.1.0/24nmap –v –sn ip/24#有些主机关闭了ping检测,所以可以使用-P0跳过ping的探测,可以加快扫描速度.nmap -P0 192.168.1.100#扫描主机nmap –v –A IP#一次性扫描多台目标主机[root@centos8 ~]#nmap 10.0.0.6 10.0.0.7  #从一个文件中导入IP地址,并进行扫描[root@centos8 ~]#cat hosts.txt10.0.0.710.0.0.658.87.87.99[root@centos8 ~]#nmap -iL hosts.txt #探测目标主机开放的端口,可指定一个以逗号分隔的端口列表(如-PS22,443,80)[root@centos8 ~]#nmap -PS22,80,443 10.0.0.1  #使用SYN半开放扫描[root@centos8 ~]#nmap -sS 10.0.0.1#扫描开放了TCP端口的设备[root@centos8 ~]#nmap -sT 10.0.0.1  #扫描开放了UDP端口的设备[root@centos8 ~]#nmap -sU 10.0.0.1#只扫描UDP端口nmap –e eth1 -sU -O 10.0.0.1#扫描TCP和UDP端口nmap -sTU -O 10.0.0.1#用于扫描目标主机服务版本号[root@centos8 ~]#nmap -sV 10.0.0.7  #查看主机当前开放的端口nmap localhost #查看主机端口(1024-65535)中开放的端口nmap -p 1024-65535 localhost  #探测目标主机开放的端口nmap -PS 10.0.0.1 #探测所列出的目标主机端口nmap -PS22,80,3306 10.0.0.1 #探测目标主机操作系统类型nmap -O 10.0.0.1 #探测目标主机操作系统类型nmap -A 10.0.0.1

【啰嗦两句】

各位于晏、迪丽们觉得有帮助就点点关注点点赞吧~谢谢

标签: #centos7创建网桥