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來操作
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章