网络配置命令

网卡相关

	网络接口识别并命名相关的udev 配置文件:
		/etc/udev/rules.d/70-persistent-net.rules

	查看网卡:
		dmesg |grep –i eth
				dmesg - print or control the kernel ring buffer
				dmesg [-c] [-r] [-n level] [-s bufsize]
					
		ethtool -i eth0
				ethtool - query or control network driver and hardware settings
					 -i --driver 	 Queries the specified network device for associated(相联系的) driver (驱动器)information.
					
				
	卸载网卡驱动:
		modprobe -r e1000
				modprobe - program to add and remove modules from the Linux Kernel
					modprobe [-v] [-V] [-C config-file] [-d <dirname> ] [-n] [-i] [-q] [-b] [-o <modname>] 
							[ --dump-modversions ] <modname> [parameters...]
					modprobe -r [-n] [-i] [-v] <modulename> ...
					modprobe -l -t <dirname> [ -a <modulename> ...]
					 -r --remove	This  option causes modprobe to remove rather than insert a module.
					
		rmmod e1000
				rmmod - simple program to remove a module from the Linux Kernel
				rmmod [ -f ]  [ -w ]  [ -s ]  [ -v ]  [ modulename ]

	装载网卡驱动:
		modprobe e1000
			装载网卡驱动后,要重启网络:service network restart 

	查询对应设备芯片的数据信息:
		lspci |grep -i  eth
			lspci - list all PCI(外部控制器接口) devices
			lspci [options]
			lspci [<switches>]
			
	网卡名称
		CentOS 6之前,网络接口使用连续号码命名:eth0 、eth1等,当增加或删除网卡时,名称可能会发生变化
		CentOS 7使用基于硬件,设备拓扑和设置类型命名。
		使用centos7中采用传统网卡命名方式
			(1)编辑/etc/default/grub 配置文件
				GRUB_CMDLINE_LINUX ="rhgb quiet net.ifnames=0"
					 或:修改/boot/grub2/grub.cfg(尽量不要用)
			(2)为grub2 生成其配置文件
				grub2-mkconfig -o /etc/grub2.cfg
			(3)重启系统
			
		
	网卡别名
		网卡主名上,可以设置静态,同时也可以设置动态对虚拟主机有用
		将多个IP 地址绑定到一个网卡上
			eth0:1  、eth0:2、  eth0:3
		ifconfig命令:
			ifconfig eth0:0 192.168.1.100/24 up
			ifconfig eth0:0 down
		ip 命令:
			ip addr add 172.16.1.2/16 dev eth0
			ip addr add 172.16.1.1/16 dev eth0 label eth0:0
			ip addr add 172.16.1.2/16 dev eth0 label eth0:0
			ip addr del 172.16.1.1/16 dev eth0 label eth0:0
			ip addr flush dev eth0 label eth0:0
		通过配置文件来配置网卡别名
			为每个设备别名生成独立的接口配置文件
			1。centos6上关闭NetworkManager 服务
			2。复制ifcfg-ethX 给 ifcfg-ethX:xxx
				必须使用静态联网
					DEVICE=eth0:0
					IPADDR=10.10.10.10
					NETMASK=255.0.0.0
					ONPARENT=yes
		注意:重启网络服务生效
		参考/usr/share/doc/initscripts-*/sysconfig.txt

配置命令

ifconfig

	ifconfig命令,配置接口设备和ip地址
	ifconfig - configure a network interface(临时配置网络接口,网络重启后就就会失效)
	ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
		[add <address>[/<prefixlen>]]
		[del <address>[/<prefixlen>]]
		[[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
		[netmask <address>]  [dstaddr <address>]  [tunnel <address>]
		[outfill <NN>] [keepalive <NN>]
		[hw <HW> <address>]  [mtu <NN>]
		[[-]trailers]  [[-]arp]  [[-]allmulti]
		[multicast]  [[-]promisc]
		[mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
		[txqueuelen <NN>]
		[[-]dynamic]
		[up|down] ...
	
		-a	显示所有接口
		-s	显示简短列表=netstat -i
		-v	ifconfig -v=ifconfig,显示详细信息,也包括错误情况
		interface	接口名,如eth0,ens33等网卡名
		up	激活接口
		down	关闭接口
		[-]arp	在接口上启动或关闭arp协议
		[-]promisc	启动或关闭接口的混杂模式
		[-]allmulti	启动或关闭多路广播模式
		mtu N	设置一个接口的Maximum Transfer Unit (MTU)
		dstaddr addr	为点到点链接的远程ip地址,以pointopoint关键词取代
		netmask addr	设置接口子网掩码
		add addr	给接口添加ip地址
		del addr	从接口上删除ip地址
		tunnel addr	给目标地址创建个隧道
		irp addr	通过这个设备设置中断行
		io_addr addr	在IO空间为设备设置开始地址
		mem_start addr	为被设备使用的共享内存设置开始地址
		media type	设置设备使用的物理端口和介质类型
		[-]broadcast [addr]	若地址参数已给,为接口界面设置协议广播地址
		[-]pointopoint [addr]	激活接口的点到点模式
		hw class address	为接口设置硬件地址
		multicast	在接口界面上设置多路广播标志
		address	ip地址
		txqueuelen length	设置设备的传输队列的长度
	示例:
		ifconfig -a :显示所有接口
		ifconfig Interface [up|down]:启用或禁用
		ifconfig Interface IP/netmask [up]   ;如:172.16.0.1/24
		ifconfig Interface IP netmask NETMASK [up]  ;如:255.255.0.0
		注意:
			设定的地址会立即生效,但不会永久生效。

route

	route命令,配置路由和网关
	route - show / manipulate the IP routing table,路由管理命令
	route [-nNvee] [-FC] [<AF>]           List kernel routing tables
	route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
	route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
	route {-V|--version}                  Display version/author and exit.
		-v, --verbose            	显示详情
		-n, --numeric           	don't resolve names,以数字格式显示
		-e, --extend             	显示更多信息
		-F, --fib                	显示转发信息 (default)
		-C, --cache              	取代fib显示路由缓存
	
	查看:route -n
	添加:route add
		route add [-net|-host] Target [netmask|/Nm] gw  Gateway  [dev Interface]
			-net :后面跟一个网络地址,表示网络路由
			-host:后面跟一个主机地址,表示主机路由
			目标:192.168.1.3 ,网关:172.16.0.1
				route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
			目标:192.168.0.0 ,网关:172.16.0.1
				route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
				route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
			默认路由,网关:172.16.0.1
				route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
				route add default gw 172.16.0.1
	删除:route del
		route del [-net|-host] Target [netmask|/Nm] gw  Gateway  [dev Interface]
			目标:192.168.1.3 ,网关:172.16.0.1
				route del -host 192.168.1.3
			目标:192.168.0.0 ,网关:172.16.0.1
				route del -net 192.168.0.0 netmask 255.255.255.0
	注意:
		所有配置会立即生效,但不会永久生效,想永久生效就要修改对应的静态路由的配置文件。

ip

	ip 命令,配置接口设备、ip地址、路由和网关
	ip - show / manipulate(操纵)routing, devices, policy routing and tunnels(通道)
		Usage:
			ip [options] object {command |help}
			ip [ -force ] -batch filename
				object := { link | address | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |netns | l2tp | macsec | tcp_metrics | token }
				options := { -V[version] | -s[statistics] | -d[details] | -r[resolve] |-h[human-readable] | -iec |-f[family] { inet | inet6 | ipx | dnet | bridge | link } |-4 | -6 | -I | -D | -B | -0 |-l[loops] { maximum-addr-flush-attempts } |-o[oneline] | -t[timestamp] | -ts[hort] | -b[batch] [filename] |-rc[rcvbuf] [size] | -n[netns] name | -a[all] }
			
	ip [options] object {command |help}
		object:={link|addr|route} 
			link:链接接口,如eth0
				ip link - network device configuration
				set:设定接口属性;
					ip link set DEVICE
					set DEVICE { up|down}:激活或禁用指定接口
				ifup/ifdown:启用或禁用链接
				promisc{on|off}:是否支持文件混杂模式
				show:显示接口状态;ip link show [DEVICE],如显示eth0网卡的硬件信息
				show  up :仅显示处于激活状态的接口
				
			addr:管理接口上的地址
				{add|del}:添加或删除地址;
					ip addr {add|del} ipaddr  dev DEVICE
						ip addr add 172.16.200.122 dev eth0
				[label LABEL] :添加地址时指明网卡别名
				[scope {global|link|host}] :指明作用域
							global: 全局可用
							link: 仅链接可用
							host: 本机可用
				[broadcast addr] :指明广播地址
					
				show :显示该网卡的所有地址信息;
					ip address  show - look at protocol addresses
					dev [DEVICE]
					[label PATTERN]
					[primary and secondary]
					
				 flush:清除协议地址;ip addr flush [dev ifname] 
					ip address flush -  使用格式同show
					dev [DEVICE]
					[label PATTERN]
					[primary and secondary]
				
					例子:
						ip addr add 172.16.100.100/16 dev eth0 label eth0:0
						ip addr del 172.16.100.100/16 dev eth0 label eth0:0
						ip addr flush dev eth0 label eth0:0
			route:管理路由
				ip route - routing table management
				lsit|show:显示路由
				add:添加路由;
					ip  route  add  Target   via   Gateway   dev   Interface   src   Source_ip
					设置默认网关:ip route add defalut via 172.18.0.1
						ip route add 192.168.0.0/24 via 172.16.0.1
						ip route add 192.168.1.13 via 172.16.0.1
						
				del:删除路由;
					ip route del Target
					ip route del 192.168.0.0/24
						TARGET:
							主机路由:IP
							网络路由:NETWORK/MASK
				flush:清空路由表
					ip route flush [dev IFACE] [via PREFIX]
					ip route flush dev eth0

netstat

	netstat命令,显示网络连接、路由表、接口统计数据等
	netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
	netstat [-vWeenNcCF] [<Af>] -r         
	netstat {-V|--version|-h|--help}
	netstat [-vWnNcaeol] [<Socket> ...]
	netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]
		-r, --route	显示路由表
		-I, --interfaces=<Iface> 	显示接口表
		-i, --interfaces         	显示接口表
		-g, --groups             	显示多播组成员
		-s, --statistics         	显示网络状态例如snmp
		-M, --masquerade        	显示伪装的连接
		-v, --verbose            	详情
		-W, --wide               	不简短显示ip地址
		-n, --numeric            	不解析名字
		--numeric-hosts          	不解析主机名
		--numeric-ports          	不解析端口名
		--numeric-users          	不解析用户名
		-N, --symbolic           	解析硬件名
		-e, --extend             	显示更多信息
		-p, --programs           	显示套接字的pid或项目名
		-o, --timers             	显示定时器
		-c, --continuous         	监听
		-l, --listening          	显示监听服务套接字
		-a, --all                	默认显示所有连接的套接字
		-F, --fib                	默认显示转发信息
		-C, --cache             	取代fib显示路由缓存
		-Z, --context            	显示套接字的selinux内容
	
	常用组合:
		netstat -tan, -uan, -tnl, -unl,-tunl,-tnlp
		显示网络链接 :   
			netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
		显示路由表:
			netstat {--route|-r} [--numeric|-n]
		显示接口统计数据:
			netstat {--interfaces|-I|-i} [interface] 
			netstat --interfaces=eth0 == netstat -i  eth0 == netstat -I=eth0  ==  ifconfig -s eth0

ss

	ss命令,同netstat差不多的功能,但比netstat强
	netstat 通过遍历proc 来获取socket 信息。
	ss 使用netlink 与内核tcp_diag模块通信获取socket 信息。
	ss - another utility to investigate sockets
	ss [ OPTIONS ] [ FILTER ]
		-n, --numeric       	不解析服务名
		-r, --resolve       	解析主机名
		-a, --all           	显示所有套接字
		-l, --listening     	显示监控套接字
		-o, --options       	显示计时器信息
		-e, --extended      	显示详细信息
		-m, --memory        	显示套接字内存使用率
		-p, --processes     	显示进程使用的套接字
		-i, --info          	显示内容tcp信息
		-s, --summary       	显示套接字使用情况
		-b, --bpf           	显示bpf过滤器套接字信息
		-Z, --context       	显示进程selinux安全内容
		-z, --contexts      	显示进程和套接字selinux安全内容
		-N, --net           	切换到指定的网络空间名
		-4, --ipv4          	仅显示ipv4的套接字
		-6, --ipv6          	仅显示ipv6的套接字
		-0, --packet        	显示包套接字
		-t, --tcp           	仅显示tcp套接字
		-u, --udp           	仅显示udp套接字
		-d, --dccp          	仅显示dccp套接字
		-w, --raw           	仅显示raw套接字
		-x, --unix          	仅显示unix于套接字
		-f, --family=FAMILY 	display sockets of type FAMILY
		-D, --diag=FILE     	转存tcp套接字原始信息到文件
		-F, --filter=FILE   	从文件中读取过滤器信息
		-A, --query=QUERY, --socket=QUERY
			QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink}[,QUERY]
		FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
		STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
		TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
		connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
		synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
		bucket := {syn-recv|time-wait}
		big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
	常用组合:
		-tan, -tanl, -tanlp, -uan,-tunl
	常见用法
		ss -l  显示本地打开的所有端口
		ss -pl  显示每个进程具体打开的socket
		ss -ta  显示所有tcp socket
		ss -ua 显示所有的UDP Socekt
		ss -o state established '( dport = :ssh or sport = :ssh)'  显示所有已建立的ssh 连接
		ss -o state established '( dport = :http or sport =:http )'  显示所有已建立的HTTP 连接
		ss -s  列出当前socket 详细信息

nmcli

	nmcli - command-line tool for controlling NetworkManager,控制网络管理的命令行工具
	nmcli [OPTIONS] OBJECT { COMMAND | help }
	nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent |monitor} [COMMAND] [ARGUMENTS...]
	OPTIONS
		-t[erse]                                   	简洁输出
		-p[retty]                                  	漂亮输出
		-m[ode] tabular|multiline                  	输出模式
		-c[olors] auto|yes|no                      	是否在输出上使用颜色
		-f[ields] <field1,field2,...>|all|common   	指定输出区域
		-e[scape] yes|no                           	escape columns separators in values
		-a[sk]                                     	ask for missing parameters
		-s[how-secrets]                            	允许显示密码
		-w[ait] <seconds>                          	设置等待时间
	OBJECT
		g[eneral]       	网络管理的一般状态和操作
			nmcli general { COMMAND | help }
			COMMAND := { status | hostname | permissions | logging }
		n[etworking]    	完全网络控制
			nmcli networking { COMMAND | help }
			COMMAND := { [ on | off | connectivity ] }
		r[adio]         	网络管理的无线切换
			nmcli radio { COMMAND | help }
			COMMAND := { all | wifi | wwan [ on | off ]
		c[onnection]    	网络管理的连接
			nmcli connection { COMMAND | help }
			COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
		d[evice]        	设备的网路管理
			nmcli device { COMMAND | help }
			COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }
		a[gent]         	代理
			nmcli agent { COMMAND | help }
			COMMAND := { secret | polkit | all }
		m[onitor]       	监控网络管理更改
	
	
	使用nmcli配置网络
		注意:
			尽量使用tab键,会列出你所需要的选项。
		修改IP 地址等属性:
			nmcli connection modify Interface  [+|-]  setting.property value
		NeworkManager 是管理和监控网络设置的守护进程。
		设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接 配置生效
		显示所有包括不活动连接
			nmcli con show
		显示所有活动连接
			nmcli con show --active
		显示网络连接配置
			nmcli con show "System eth0“
		显示设备状态
			nmcli dev status
		显示网络接口属性
			nmcli dev show eth0
		创建新连接default ,IP自动通过dhcp 获取
			nmcli con add con-name default type Ethernet ifname eth0
		删除连接
			nmcli con del default
		创建新连接static  ,指定静态IP ,不自动连接
			nmcti con add con-name static ifname eth0
			autoconnect no type Ethernet ip4 172.25.X.10/24 gw4  172.25.X.254
		启用static 连接配置
			nmcli con up static
		启用default 连接配置
			nmcli con up default
		查看帮助
			nmcli con add help
		修改连接设置
			nmcli con mod “static” connection.autoconnect no
			nmcli con mod “static” ipv4.dns 172.25.X.254
			nmcli con mod “static” +ipv4.dns 8.8.8.8
			nmcli con mod “static” -ipv4.dns 8.8.8.8
			nmcli con mod “static” ipv4.addresses “172.25.X.10/2472.25.X.254”
			nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
		DNS 设置存放在/etc/resolv.conf 文件中PEERDNS=no  表示当IP通过dhcp 自动获取时,dns 仍是 手动设置,不自动获取。
		等价于下面命令:
			nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
		
		修改连接配置后,需要重新加载配置
			nmcli con reload
			nmcli con down “system eth0”  可被自动激活
			nmcli con up “system eth0”
			nmcli dev dis eth0  禁用网卡,访止被自动激活
		图形工具
			nm-connection-editor
		字符工具
			nmtui
			nmtui-connect
			nmtui-edit
			nmtui-hostname
		
		nmcli 实现bonding
			添加bonding 接口
				nmcli con add type bond con-name mybond0 ifname
				mybond0 mode active-backup
			添加从属接口
				nmcli con add type bond-slave ifname ens7 master mybond0
				nmcli con add type bond-slave ifname ens3 master mybond0
				注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
			要启动绑定,则必须首先启动从属接口
				nmcli con up bond-slave-eth0
				nmcli con up bond-slave-eth1
			启动绑定
				nmcli con up mybond0
		网络组Network Teaming
			网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
			网络组不同于旧版中bonding技术,提供更好的性能和扩展性
			网络组由内核驱动和teamd 守护进程实现.
			多种方式runner
				broadcast
				roundrobin
				activebackup
				loadbalance
				lacp (implements the 802.3ad Link Aggregation ControlProtocol)
			启动网络组接口不会自动启动网络组中的port 接口
			启动网络组接口中的port 接口总会自动启动网络组接口
			禁用网络组接口会自动禁用网络组中的port 接口
			没有port 接口的网络组接口可以启动静态IP 连接
			启用DHCP 连接时,没有port 接口的网络组会等待port接口的加入
			创建网络组
				ip link
				nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
				nmcli con mod team0 ipv4.addresses'192.168.0.100/24'
				nmcli con mod team0 ipv4.method manual
				nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
				nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
				teamdctl team0 state
				ping -I team0 192.168.0.254
				nmcli dev dis eno1
				teamdctl team0 state
				nmcli con up team0-port1
				nmcli dev dis eno2
				teamdctl team0 state
				nmcli con up team0-port2
				teamdctl team0 state
			删除网络组
				nmcli connection down team0
				teamdctl team0 state
				nmcli connection show
				nmcli connectioni delete team0-eth0
				nmcli connectioni delete team0-eth1
				nmcli connection show
			
		创建网络接口
			nmcli con add type team con-name CNAME ifname INAME [config JSON]
				CNAME  连接名,INAME  接口名
				JSON  指定runner 方式
				格式:'{"runner": {"name": "METHOD"}}'
				METHOD  可以是broadcast, roundrobin,
					activebackup, loadbalance, lacp
		
		创建port接口
			nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
				CNAME  连接名
				INAME  网络 接口名
				TEAM  网络组 接口名
			连接名若不指定,默认为team-slave-IFACE
			nmcli dev dis INAME
			nmcli con up CNAME
				INAME 名 设备名 CNAME  网络组接口名或port 接口

bonding

	bonding是一种网络接口的配置,都知道给两块网卡设置同一个ip地址是不可能的,那么若确实想设置一个ip该怎么办?这就需要用到bonding配置。
	bonding就是将多块网卡绑定同一ip地址来对外提供服务器,从而实现高可用或负载均衡。
	通过bonding虚拟一块网卡对外提供连接,物理网卡被修改为相同的MAC地址。
	bonding的工作模式
		Mode 0 (balance-rr),轮转(Round-robin )策略:
			从头到尾顺序的在每一个slave接口上面发送数据包。
			本模式提供负载均衡和容错的能力
		Mode 1 (active-backup),活动- 备份(主备)策略:
			只有一个slave被激活,当且仅当活动的slave 接口失败时才会激活其他slave。
			为了避免交换机发生混乱此时绑定的MAC 地址只有一个外部端口上可见
		Mode 3 (broadcast),广播策略:
			在所有的slave 接口上传送所有的报文,提供容错能力
		active-backup 、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。
		其他绑定模式 需要配置交换机以便整合链接 。
			如: Cisco 式 交换机需要在模式 0 、2 和 和 3  中使用EtherChannel ,但在模式4中需要 LACP和 和 EtherChannel
		
	Bonding 配置
		创建bonding 设备的配置文件
			/etc/sysconfig/network-scripts/ifcfg-bond0
				DEVICE=bond0
				BOOTPROTO=none
				BONDING_OPTS= “miimon=100 mode=0”
			/etc/sysconfig/network-scripts/ifcfg-eth0
				DEVICE=eth0
				BOOTPROTO=none
				MASTER=bond0
				SLAVE=yes
				USERCTL=no
		查看bond0 状态:/proc/net/bonding/bond0
		
		miimon是用来进行链路监测的,如果miimon=100 ,那么系统每100ms  监测一次链路连接状态,如果有一条线路不通就转入另一条线路
		
		删除bond0
			ifconfig bond0 down
			rmmod bonding
		
		详细帮助:
			/usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
			https://www.kernel.org/doc/Documentation/networking/bonding.txt

brctl

	网桥
	桥接:
		把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
		主机A 发送的报文被送到交换机S1 的eth0 口,由于eth0与eth1 、eth2 桥接在一起,故而报文被复制到eth1 和eth2 ,并且发送出去,然后被主机B 和交换机S2 接收到。而S2 又会将报文转发给主机C 、D。 

		
	配置实现网桥
		创建网桥
			brctl addbr br0
		查看网桥
			cat /etc/sysconfig/network-scripts/ifcfg-br0
			brctl show
		删除网桥 brctl delbr br0
		删除网桥中网卡 brctl delif eth0
		注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口
		
	brctl命令
		brctl - ethernet bridge administration
			 brctl is used to set up, maintain, and inspect the ethernet bridge configuration in the linux kernel.
		brctl [command]
			addbr     	<bridge>			添加网桥
			delbr     	<bridge>			删除网桥
			addif     	<bridge> <device>		添加接口到网桥
			delif     	<bridge> <device>		从网桥上删除接口
			hairpin   	<bridge> <port> {on|off}		打开或关闭 hairpin
			setageing 	<bridge> <time>			设置老化时间
			setbridgeprio	<bridge> <prio>			设置网桥优先级
			setfd     	<bridge> <time>			设置桥前延迟
			sethello  	<bridge> <time>			设置 hello 时间
			setmaxage 	<bridge> <time>			设置最大消息期限
			setpathcost	<bridge> <port> <cost>		设置路径成本
			setportprio	<bridge> <port> <prio>		设置端口优先级
			show      	[ <bridge> ]			显示网桥列表
			showmacs  	<bridge>			显示mac 地址列表
			showstp   	<bridge>			显示网桥stp信息
			stp       	<bridge> {on|off}		开启或关闭
原文地址:https://www.cnblogs.com/shenxm/p/8453716.html