Linux基础命令-网络配置和相关命令

网络配置和相关命令

一、基本网络配置

将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
	主机名
	IP/netmask
	路由:默认网关
	DNS服务器
		主DNS服务器
		次DNS服务器
		第三DNS服务器

二、网卡名称

Centos6网卡名称
1.接口命名方式:CentOS 6
	以太网:eth[0,1,2,...]
	ppp:ppp[0,1,2,...]
2.网络接口识别并命名相关的udev配置文件:
	/etc/udev/rules.d/70-persistent-net.rules
3.查看网卡:
	dmesg |grep –i eth
	ethtool -i eth0
4.卸载网卡驱动:
	modprobe -r e1000
	rmmod e1000
5.装载网卡驱动:
	modprobe e1000
CentOS7网卡名称
CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化
CentOS 7使用基于硬件,设备拓扑和设置类型命名:
1.网卡命名机制
	systemd对网络设备的命名方式
	(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
	(b) 如果Firmware或BIOSPCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
	(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
	(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
	(e) 上述均不可用时,则使用传统命名机制
基于BIOS支持启用biosdevname软件
	内置网卡:em1,em2
	pci卡:pYpX Y:slot ,X:port
2.名称组成格式
		en: Ethernet 有线局域网
		wl: wlan 无线局域网
		ww: wwan无线广域网
	名称类型:
		o<index>: 集成设备的设备索引号
		s<slot>: 扩展槽的索引号
		x<MAC>: 基于MAC地址的命名
		p<bus>s<slot>: enp2s1

1. 网卡别名

对虚拟主机有用
1.将多个IP地址绑定到一个NIC上
	eth0:1 、eth0:2、eth0:3
2.ifconfig命令:
	ifconfig eth0:0 192.168.1.100/24 up
	ifconfig eth0:0 down
3.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

2. 设备别名

1.为每个设备别名生成独立的接口配置文件
	• 关闭NetworkManager服务
	• ifcfg-ethX:xxx
	• 必须使用静态联网
		DEVICE=eth0:0
		IPADDR=10.10.10.10
		NETMASK=255.0.0.0
		ONPARENT=yes
2.注意:service network restart 生效
3.参考:/usr/share/doc/initscripts-*/sysconfig.txt

3. 实验

要求:配置centos7和centos6 eth0:0,地址分别是172.16.1.7/16172.16.1.6/16 然后通过centos7pingcentos6.
1.centos6的配置
	cd /etc/sysconfig/network-scripts/
	vim ifcfg-eth0:0
		DEVICE=eth0:0
		IPADDR=172.16.1.6
		NETMASK=255.255.0.0
	service network restart
	ip addr或ifconfig查看结果
2.centos7的配置
	cd /etc/sysconfig/network-scripts/
	vim ifcfg-eth0:0
		DEVICE=eth0:0
		IPADDR=172.16.1.7
		NETMASK=255.255.0.0
	systemctl restart network
	ip addr或ifconfig查看结果
3.centos7下验证
	ping 172.16.1.6

三、网络配置方式

1. ifconfig命令

ifconfig命令
ifconfig 网络接口 [选项] 地址/参数
Linux 系统配置网卡的命令工具,可用于查看和更改网络接口的地址和参数,包括IP 地址、广播地址、子网掩码和物理地址,也可激活和关闭网卡。

ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>]
[io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>]
[netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

	add<地址> 设置网络设备IPv6的IP地址。
	del<地址> 删除网络设备IPv6的IP地址。
	down 关闭指定的网络设备。
	<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址。
	io_addr<I/O地址> 设置网络设备的I/O地址。
	irq<IRQ地址> 设置网络设备的IRQ。
	media<网络媒介类型> 设置网络设备的媒介类型。
	mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
	metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
	mtu<字节> 设置网络设备的MTU。
	netmask<子网掩码> 设置网络设备的子网掩码。
	tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
	up 启动指定的网络设备。
	-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
	-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。
	-promisc 关闭或启动指定网络设备的promiscuous模式。
	[IP地址] 指定网络设备的IP地址。
	[网络设备] 指定网络设备的名称。
例子:
1)启动关闭指定网卡
	ifconfig eth0 down
	ifconfig eth0 up
2)为网卡配置和删除IPv6地址
	ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡诶之IPv6地址
	ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
3)用ifconfig修改MAC地址
	ifconfig eth0 down //关闭网卡
	ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
	ifconfig eth0 up //启动网卡
	ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址 
	ifconfig eth1 up //启动网卡
4)配置IP地址
	ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址
	ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码
	ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
5)启用和关闭ARP协议
	ifconfig eth0 arp  //开启
	ifconfig eth0 -arp  //关闭
6)设置最大传输单元
	ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes

2. route命令

route命令
路由管理命令
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] 
      [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help
(1) 选项
	-C		//显示路由缓存。
	-F		//显示发送信息
	-v		//显示详细的处理信息。
	-n		//不解析名字。
	-ee		//使用更详细的资讯来显示
	-V		//显示版本信息。
	-net	//到一个网络的路由表。
	-host	//到一个主机的路由表。
(2) 参数
	add			//增加路由记录。
	del			//删除路由记录。
	target		//目的网络或目的主机。
	gw			//设置默认网关。gateway 的简写,后续接的是 IP 的数值。
	mss			//设置TCP的最大区块长度(MSS),单位MB。
	window		//指定通过路由表的TCP连接的TCP窗口大小。
	dev			//如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。
	reject		//设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。
例子:
1)添加和删除路由
route {add | del } [-net|-host] [网域或主机] netmask [mask] [gw|dev]  
	增加 (add) 与删除 (del) 路由的相关参数:
	(a) -net :表示后面接的路由为一个网域。
	(b) -host :表示后面接的为连接到单部主机的路由。
	(c) netmask :与网域有关,可以设定 netmask 决定网域的大小。
	(d) gw :gateway 的简写,后续接的是 IP 的数值,与 dev 不同。
	(e) dev :如果只是要指定由那一块网路卡连线出去,则使用这个设定,后面接 eth0 等。 
	例1:route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
	例2:route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
	例3:route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
	
2)查询路由信息
route -nee 
	(a) -n:不要使用通讯协定或主机名称,直接使用 IP 或 port number。
	(b) -ee:使用更详细的资讯来显示。

3)添加/删除默认网关路由
route {add | del } default gw {IP-ADDRESS} {INTERFACE-NAME} 
	(a) IP-ADDRESS:用于指定路由器(网关)的IP地址。
	(b) INTERFACE-NAME:用于指定接口名称,如eth0。 
	例1:route add default gw 192.168.1.1 eth0
	例2:route del default gw 192.168.1.1 eth0
	例3: route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.14: route add default gw 192.168.233.2 dev eth1 metric 99

4)添加/删除到指定网络的路由规则
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} dev {INTERFACE-NAME} 
	(a) NETWORK-ADDRESS:用于指定网络地址。
	(b) NETMASK:用于指定子网掩码。
	(c) INTERFACE-NAME:用于指定接口名称,如eth0。 
	例1:route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
	例2:route del -net 192.168.1.0 netmask 255.255.255.0 dev eth0

5)添加/删除路由到指定网络为不可达
设置到指定网络为不可达,避免在连接到这个网络的地址时程序过长时间的等待,直接就知道该网络不可达。 
route {add | del } -net {NETWORK-ADDRESS} netmask {NETMASK} reject 
	(a) NETWORK-ADDRESS:用于指定网络地址。
	(b) NETMASK:用于指定子网掩码。 
	例1:route add -net 10.0.0.0 netmask 255.0.0.0 reject
	例2:route del -net 10.0.0.0 netmask 255.0.0.0 reject

查看路由信息
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
字段 说明
Destination 目标网络或目标主机。Destination 为 default(0.0.0.0)时,表示这个是默认网关,所有数据都发到这个网关。
Gateway 网关地址,0.0.0.0 表示当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关。如果没有就显示星号(*)。
Genmask Destination 字段的网络掩码,Destination 是主机时需要设为 255.255.255.255,是默认路由时会设置为 0.0.0.0
Metric 路由距离,到达指定网络所需的中转数,是大型局域网和广域网设置所必需的。
Ref 路由项引用次数 。
Use 此路由项被路由软件查找的次数。
Iface 网卡名字,例如 eth0。

Flags
● U 该路由可以使用。
● H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。
● G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地 是直接相连的。
● R 恢复动态路由产生的表项。
● D 该路由是由改变路由(redirect)报文创建的。
● M 该路由已被改变路由报文修改。
● ! 这个路由将不会被接受。

1)实验

1)路由选择分析
当TCP/IP需要向某个IP地址发起通信时,它会对路由表进行评估,以确定如何发送数据包。评估过程如下:
(1) TCP/IP使用需要通信的目的IP地址和路由表中每一个路由项的网络掩码进行相与计算,如果相与后的结果匹配对应路由项的网络地址,则记录下此路由项。
(2) 当计算完路由表中所有的路由项后,
	(a) TCP/IP选择记录下的路由项中的最长匹配路由(网络掩码中具有最多“1”位的路由项)来和此目的IP地址进行通信。
	(b) 如果存在多个最长匹配路由,那么选择具有最低跃点数的路由项。
	(c) 如果存在多个具有最低跃点数的最长匹配路由,那么:均根据最长匹配路由所对应的网络接口在网络连接的高级设置中的绑定优先级来决定(一般有线(eth0) > 无线 (wlan0) > 移动信号(4G))
	(d) 如果优先级一致,则选择最开始找到的最长匹配路由。(排在前面的路由)

验证分析
1) 验证:traceroute www.baidu.com
我们通过路由表可以知道有两条相同默认路由可以选择,由于先找到192.168.31.1 网关路由,所以最后选择了 192.168.31.1 网关。

[root@centos7 ~]#route -n                
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.31.1    0.0.0.0         UG    100    0        0 eth0
0.0.0.0         10.0.7.254      0.0.0.0         UG    101    0        0 eth1
10.0.7.0        0.0.0.0         255.255.255.0   U     100    0        0 eth1
192.168.31.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

[root@centos7 ~]#traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
 1  XiaoQiang (192.168.31.1)  0.495 ms  0.562 ms  0.632 ms

2) 删除原先路由,重新添加路由
重新添加路由后,我们通过路由表可以知道有两条相同默认路由可以选择,由于先找到10.0.7.254网关路由,所以最后选择了 10.0.7.254 网关。

[root@centos7 ~]#route del default gw 192.168.31.1
[root@centos7 ~]#route del default gw 10.0.7.254
[root@centos7 ~]#route add default gw 192.168.31.1
[root@centos7 ~]#route add default gw 10.0.7.254
[root@centos7 ~]#route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.7.254      0.0.0.0         UG    0      0        0 eth1
0.0.0.0         192.168.31.1    0.0.0.0         UG    0      0        0 eth0

[root@centos7 ~]#traceroute www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
 1  XiaoQiang (10.0.7.254)  1.127 ms  1.033 ms  0.973 ms
 

2)配置动态路由协议

通过守护进程获取动态路由
	• 安装quagga包
	• 支持多种路由协议:RIPOSPFBGP
	• 命令vtysh配置

3. netstat命令

netstat命令
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
Linux netstat命令用于显示网络状态,利用netstat指令可让你得知整个Linux系统的网络情况.
	-t: tcp协议相关
	-u: udp协议相关
	-w: raw socket相关
	-l: 处于监听状态
	-a: 所有状态
	-n: 以数字显示IP和端口
	-e:扩展格式
	-p: 显示相关进程及PID
常用组合:
	-tan, -uan, -tnl, -unl
显示路由表:
	netstat {--route|-r} [--numeric|-n]
	-r: 显示内核路由表
	-n: 数字格式
显示接口统计数据:
	netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p][--numeric|-n]
		netstat -i
		netstat –I=IFACE
		ifconfig -s eth0

4. ip命令

ip命令
配置Linux网络属性:ip 命令
(1)ip - show / manipulate routing, devices, policy routing and tunnels
	ip [ OPTIONS ] OBJECT { COMMAND | help }
	OBJECT := { link | addr | route }
	ip link - network device configuration
		set dev IFACE
		可设置属性:
			up and down:激活或禁用指定接口
				ifup/ifdown
		show [dev IFACE]:指定接口
			[up]:仅显示处于激活状态的接口
	例1:ip link set eth1 down
	例2:ip link show up

(2)ip addr { add | del } IFADDR dev STRING
	[label LABEL]:添加地址时指明网卡别名
	[scope {global|link|host}]:指明作用域
		global: 全局可用
		link: 仅链接可用
		host: 本机可用
	[broadcast ADDRESS]:指明广播地址
	例1: ip addr add 1.1.1.1/24  scope global dev eth1 label eth1:02: ip addr del 1.1.1.1/24 dev eth1 label eth1:0
	
(3)ip address show - look at protocol addresses
	[dev DEVICE]
	[label PATTERN]
	[primary and secondary]1: ip addr show dev eth1 
	
(4)ip addr flush 使用格式同show
	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

(5)ip route - routing table management
	添加路由:ip route add
	ip route add TARGET via GW dev IFACE src SOURCE_IP
		TARGET:
			主机路由:IP
			网络路由:NETWORK/MASK
		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
		
	添加网关:ip route add default via GW dev IFACE
			ip route add default via 172.16.0.1
	删除路由:ip route del TARGET1: ip route del default via 10.0.7.254
	显示路由:ip route show|list
	清空路由表:ip route flush [dev IFACE] [via PREFIX]
			ip route flush dev eth0

5. ss命令

ss命令
格式:ss [OPTION]... [FILTER]
netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息
选项:
	-t: tcp协议相关
	-u: udp协议相关
	-w: 裸套接字相关
	-x:unix sock相关
	-l: listen状态的连接
	-a: 所有
	-n: 数字格式
	-p: 相关的程序及PID
	-e: 扩展的信息
	-m:内存用量
	-o:计时器信息

FILTER : [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
	tcp finite state machine:
		LISTEN: 监听
		ESTABLISHED:已建立的连接
		FIN_WAIT_1: 等待第一阶段
		FIN_WAIT_2: 等待第二阶段
		SYN_SENT
		SYN_RECV
		CLOSED
EXPRESSION:
	dport =
	sport =
	示例:’( dport = :ssh or sport = :ssh )’
常用组合:
	-tan, -tanl, -tanlp, -uan
	ss -l 显示本地打开的所有端口
	ss -pl 显示每个进程具体打开的socket
	ss -t -a 显示所有tcp socket
	ss -u -a 显示所有的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详细信息

6. nmcli命令

nmcli命令
地址配置工具:nmcli
(1)nmcli [ OPTIONS ] OBJECT { COMMAND | help }
	device - show and manage network interfaces
	nmcli device help
	connection - start, stop, and manage network connections
	nmcli connection help
(2)修改IP地址等属性:
	nmcli connection modify IFACE [+|-]setting.property value
	setting.property:
	ipv4.addresses ipv4.gateway
	ipv4.dns1 ipv4.method manual | auto
(3)修改配置文件执行生效:systemctl restart network
	nmcli con reload
(4)nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
(5)NeworkManager是管理和监控网络设置的守护进程
(6)设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效
(7)显示所有包括不活动连接
	nmcli con show
(8)显示所有活动连接
	nmcli con show --active
(9)显示网络连接配置
	nmcli con show "System eth0“
(10)显示设备状态
	nmcli dev status
(11)显示网络接口属性
	nmcli dev show eth0
(12)创建新连接defaultIP自动通过dhcp获取
	nmcli con add con-name default type Ethernet ifname eth0
(13)删除连接
	nmcli con del default
(14)创建新连接static ,指定静态IP,不自动连接
	nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
(15)启用static连接配置
	nmcli con up static
(16)启用default连接配置
	nmcli con up default
(17)查看帮助
	nmcli con add help
(18)修改连接设置
	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.16.X.10/24 172.16.X.254”
	nmcli con mod “static+ipv4.addresses 10.10.10.10/16
(19)DNS设置,存放在/etc/resolv.conf文件中
	PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取
	等价于下面命令:
	nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
(20)修改连接配置后,需要重新加载配置
	nmcli con reload
	nmcli con down “system eth0” 可被自动激活
	nmcli con up “system eth0”
	nmcli dev dis eth0 禁用网卡,访止被自动激活
(21)图形工具
	nm-connection-editor
(22)字符工具
	nmtui
	nmtui-connect
	nmtui-edit
	nmtui-hostname	

在这里插入图片描述
在这里插入图片描述

1)nmcli实现bonding

(1)添加bonding接口
	nmcli con add type bond con-name mybond0 ifname bond0 mode
	active-backup
(2)添加从属接口
	nmcli con add type bond-slave ifname ens7 master bond0
	nmcli con add type bond-slave ifname ens3 master bond0
	注:如无为从属接口提供连接名,则该名称是接口名称加类型构成
(3)要启动绑定,则必须首先启动从属接口
	nmcli con up bond-slave-eth0
	nmcli con up bond-slave-eth1
(4)启动绑定
	nmcli con up mybond0

7. 测试网络工具

(1)在命令行下测试网络的连通性
	显示主机名
		hostname
	测试网络连通性
		ping
	显示正确的路由表
		ip route
(2)跟踪路由
	traceroute
	tracepath
	mtr
(3)确定名称服务器使用
	nslookup
	host
	dig

8. 比较ip和ifconfig,route,ifup,ifdown,netstat

在这里插入图片描述

1. 查看 IP 地址和数据统计
ifconfig 版本:
	ifconfig:显示 up 状态的端口信息,包括 ip、mac、统计等。
	ifconfig -a:显示所有状态的端口信息,包括 ip、mac、统计等。

ip 版本:
	ip addr(简写成 ip a):显示所有端口信息,包括 ip、mac、up/down 等。
	ip -4 a:仅显示带 ipv4 地址的端口信息。
	ip -s link:显示所有端口统计信息。
	ip -s link ls eth0:显示 eth0 端口的统计信息。
	ip -s -s link ls eth0:更详细地显示 error 信息。
2. 添加/删除端口的 ip 地址
ifconfig 版本:
	ifconfig eth0 192.168.120.56 netmask 255.255.255.0:临时添加 eth0 的 ip 地址。
ip版本:
	ip addr add 192.168.2.199/24 dev eth0:临时添加 eth0 的 ip 地址。
	ip addr del 192.168.2.199/24 dev eth0:删除 eth0 的 ip 地址。
3. UP/DOWN 端口
ifconfig 版本:
	ifconfig eth0 up:将端口 eth0 启动。
	ifconfig eth0 down:将端口 eth0 关闭。
ifup/ifdown 版本:
	ifup ifcfg-eth0:将端口 eth0 启动。
	ifdown ifcfg-eth0:将端口 eth0 关闭。
ip 版本:
	ip link set dev eth0 up:将端口 eth0 启动(无需 ifcfg-eth0 文件存在)。
	ip link set dev eth0 down:将端口 eth0 启动(无需 ifcfg-eth0 文件存在)。
4. 路由配置
route 版本:
	route -n:查看路由信息
	route add default gw 192.168.1.1 eth0:添加默认网关路由
	route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0:添加到网络的路由
	route add -host 10.20.30.148 gw 10.20.30.40:添加到主机的路由
ip 版本:
	ip route:查看路由信息
	ip route add default via 192.168.1.1:添加默认网关路由
	ip route add 192.168.0.0/24 via 192.168.1.2:添加到网络的路由
	ip route add 192.168.1.3 via 172.16.0.1 dev eth0:添加到主机的路由

原文链接:https://blog.csdn.net/zzboat0422/article/details/93979978

四、网络配置文件

(1)IPMASKGWDNS相关配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE
(2)路由相关的配置文件:
	 /etc/sysconfig/network-scripts/route-IFACE
	• 注意:需service network restart生效
	• 两种风格:
		(1) TARGET via GW
			如:10.0.0.0/8 via 172.16.0.1
		(2) 每三行定义一条路由
			ADDRESS#=TARGET
			NETMASK#=mask
			GATEWAY#=GW
(3)/etc/sysconfig/network-scripts/ifcfg-IFACE:
	说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
		DEVICE:此配置文件应用到的设备
		HWADDR:对应的设备的MAC地址
		BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static,none, bootp
		NM_CONTROLLEDNM是NetworkManager的简写,此网卡是否接受
		NM控制;建议CentOS6为“no”
		ONBOOT:在系统引导时是否激活此设备
		TYPE:接口类型;常见有的Ethernet, Bridge
		UUID:设备的惟一标识
		IPADDR:指明IP地址
		NETMASK:子网掩码
		GATEWAY: 默认网关
		DNS1:第一个DNS服务器指向
		DNS2:第二个DNS服务器指向
		USERCTL:普通用户是否可控制此设备
		PEERDNS:如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
(4)设备配置被保存在文本文件中
	/etc/sysconfig/network-scripts/ifcfg-<name>
	帮助文档列出完整选项列表:/usr/share/doc/initcripts-*/sysconfig.txt
	
	动态配置 
	DEVICE=ethX
	HWADDR=0:02:8A:A6:30:45
	BOOTPROTO=dhcp
	ONBOOT=yes
	Type=Ethernet
	
	静态配置
	DEVICE=ethX
	HWADDR=0:02:8A:A6:30:45
	IPADDR=192.168.0.123
	NETMASK=255.255.255.0
	GATEWAY=192.168.0.254
	ONBOOT=yes
	Type=Ethernet 

1. 主机名和本地解析器

(1)配置当前主机的主机名:
	hostname [HOSTNAME]
	/etc/sysconfig/network
		HOSTNAME=
(2)解析器执行正向和逆向查询
(3)/etc/hosts
	• 本地主机名数据库和IP地址的映像
	• 对小型独立网络有用
	• 通常,在使用DNS前检查
	• getent hosts 查看/etc/hosts 内容

2. dns名字解析

(1)/etc/resolv.conf
	nameserver DNS_SERVER_IP1
	nameserver DNS_SERVER_IP2
	nameserver DNS_SERVER_IP3
	search magedu.com
(2)/etc/nsswitch.conf
	与/etc/hosts相比优先于DNS
(3)正向解析:FQDN-->IP
	dig -t A FQDN
	host -t A FQDN
(4)反向解析:IP-->FQDN
	dig -x IP
	host -t PTR IP

五、Bonding(多网卡绑定)

Bonding
将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址

(1)Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾顺序的在每一个slave 接口上面发送数据包。本模式提供负载均衡和容错的能力
(2)Mode 1 (active-backup)
活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
(3)Mode 3 (broadcast)
广播策略:在所有的slave接口上传送所有的报文,提供容错能力
(4)active-backup、balance-tlb 和 balance-alb 模式不需要交换机的任何特殊配置。其他绑定模式需要配置交换机以便整合链接。如:Cisco 交换机需要在模式 0、2 和 3 中使用 EtherChannel,但在模式4中需要 LACP和EtherChannel
(1)创建bonding设备的配置文件
	/etc/sysconfig/network-scripts/ifcfg-bond0
	DEVICE=bond0
	NAME=bond0
	BONDING_OPTS= “miimon=100 mode=0IPADDR=10.0.7.60
	PERFIX=24
(2)/etc/sysconfig/network-scripts/ifcfg-eth0或者ifcfg-eth1
	都添加下面两条参数
	MASTER=bond0
	SLAVE=yes
	重启网卡
	service network restart
(3)查看bond0状态:/proc/net/bonding/bond0
(4)测试,用另一台机器ping10.0.7.60,断开一个网卡设备还是可以正常通信,但是可以看到丢了一个包,把mode=0改成mode=3,重启网卡设备可以看到ping的条目会出现重复的字眼.
(4)miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
(5)删除bond0
	ifconfig bond0 down
	rmmod bonding
(6)详细帮助:
	/usr/share/doc/kernel-doc- version/Documentation/networking/bonding.txt
	https://www.kernel.org/doc/Documentation/networking/bonding.txt

六、网络组Network Teaming

1.网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
2.网络组不同于旧版中bonding技术,提供更好的性能和扩展性
3.网络组由内核驱动和teamd守护进程实现.
4.多种方式runner
	broadcast
	roundrobin
	activebackup
	loadbalance
	lacp (implements the 802.3ad Link Aggregation Control Protocol)
5.启动网络组接口不会自动启动网络组中的port接口
6.启动网络组接口中的port接口总会自动启动网络组接口
7.禁用网络组接口会自动禁用网络组中的port接口
8.没有port接口的网络组接口可以启动静态IP连接
9.启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口
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接口
ip link
nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
nmcli con mod team0 ipv4.addresses '192.168.31.100/24'
nmcli con mod team0 ipv4.method manual
nmcli con add con-name team0-eth0 type team-slave ifname eth0 master team0
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
teamdctl team0 state
ping -I team0 192.168.31.1
nmcli dev dis eth0
teamdctl team0 state
nmcli con up team0-eth0
nmcli dev dis eth1
teamdctl team0 state
nmcli con up team0-eth1
teamdctl team0 state
管理网络组配置文件
/etc/sysconfig/network-scripts/ifcfg-team0-eth1
	DEVICE=eth1
	DEVICETYPE=TeamPort
	TEAM_MASTER=team0
	NAME=team0-eth1
	ONBOOT=yes
删除网络组
	nmcli connection down team0
	teamdctl team0 state
	nmcli connection show
	nmcli connectioni delete team0-eth0
	nmcli connectioni delete team0-eth1
	nmcli connection show

七、网桥

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

创建软件网桥
	nmcli con add con-name mybr0 type bridge ifname br0
 	nmcli con add con-name br0-eth0 type bridge-slave ifname eth0 master br0
 	nmcli con add con-name br0-eth1 type bridge-slave ifname eth1 master br0
查看配置文件
 	cat /etc/sysconfig/network-scripts/ifcfg-br0
	cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
工具包 yum install bridge-utils
查看网桥 brctl show
查看CAM表 brctl showmacs br0
添加和删除网桥 brctl addbr | delbr br0
添加和删除网桥中网卡 brctl addif | delif eth0
注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口

临时清理ip地址:
	ifconfig eth1 0.0.0.0

实验:
要求,需要三台机器,中间B机器作为网桥交换机
(1)AC机器的配置
	网卡设置为桥接模式,只保留一张网卡,通过修改配置文件分别配置A:192.168.31.100 B:192.168.31.200,并且不配置网关.
(2)B机器的配置
	需要两张网卡,一张为桥接,一张为net模式,
	ifconfig eth1 0.0.0.0
	ifconfig eth0 0.0.0.0
	brctl addbr br0
	brctl addif br0 eth0 eth1
	brctl stp br0 on
	brctl show
(3)A机器pingC机器的地址192.168.31.200
	重点:需要启动br0网桥
	ifconfig br0 up
这样配置不会写入配置文件,需要需要开机后还在需要用nmcli来操作
发布了12 篇原创文章 · 获赞 4 · 访问量 940

猜你喜欢

转载自blog.csdn.net/qq_41596208/article/details/103981292