跟高手學習LINUX筆記-18

第18節Linux網絡管理入門
本節所講內容:
18.1 OSI七層模型和TCP/IP四層模型
18.1.1 OSI七層模型
OSI七層模型是任何與網絡相關的知識都沒法跳過去的知識點,很重要
1)OSI七層模型(從下往上):
第一層:物理層;表明設備:集線器、網線等
第二層:數據鏈路層;表明設備:二層交換機、網卡等
第三層:網絡層;表明設備:路由器、三層交換機
第四層:傳輸層;表明設備:硬件防火牆
第五層:會話層;
第六層:表示層;後三層表明設備:各類應用程序
第七層:應用層;
2)OSI七層模型特色
第一項:各層只關心本層解決的問題,對其餘層只提供接口
第二項:把複雜的問題分解開來處理,完成解決問題的目的
第三項:最讓人吐槽的是沒法實現
18.1.2 TCP/IP四層模型
TCP/IP四層模型是由兩個重要協議:TCP協議/IP協議共同組成
把OSI七層模型整合優化成四層結構(從下往上):
第一層:物理層接口層
第二層:網絡層
第三層:數據傳輸層
第四層:應用層
---現代網絡通訊過程當中都在用TCP/IP四層模型
18.1.3 常見網絡相關的協議及所用端口
在介紹協議以前要先介紹個重要知識點:TCP協議和UDP協議的區別
(1)TCP協議:TCP(傳輸控制協議),是面向鏈接的協議,在收發數據前,必須和對方創建可靠的鏈接,經過順序號、確認號及划動窗口等確保傳輸可靠性。
(2)UDP協議:UDP(用戶數據報協議),是一種無鏈接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務
總結:TCP與UDP的區別:
1.基於鏈接與無鏈接;
2.對系統資源的要求(TCP較多,UDP少);
3.UDP程序結構較簡單;網絡資源額外開銷很小。因此傳輸速度可更快
4.TCP保證數據正確性、數據順序,UDP不保證。
應用場景:
在要求傳輸可靠性、準確性高的方面通常用TCP如:WEB等
在要求傳輸可靠性、準確性不過高的方面用UCP如:DNS,rsyslog等
ARP:地址解析協議,將IP解析成MAC地址
DNS:域名解析協議,53/TCP OR 53/UDP
SNMP:網絡管理協議,161/UDP
DHCP:動態主機配置協議,67-68/TCP
FTP:文件傳輸協議,20-21/TCP
HTTP:超文本傳輸協議,80/TCP
HTTPS:安全超文本傳輸協議,443/TCP
ICMP:Internet控制信息協議,
ping IP 用的就是ICMP協議
SMTP:簡單郵件傳送協議,25/TCP
TELNET:虛擬終端協議,23/TCP
TFTP:小文件傳輸協議,69/UDP
POP3:郵局協議,110/TCP
看到上面的介紹是否是有些眼暈?做爲忘性比記性好的我確定也是記不住上面的內容的,能夠這樣處理
如記不住POP3服務用哪一個端口
[root@node-1 ~]# cat /etc/services |grep pop3
pop3 110/tcp pop-3 # POP version 3
pop3 110/udp pop-3
pop3s 995/tcp # POP-3 over SSL
pop3s 995/udp # POP-3 over SSL
這樣更加方便node

18.2 linux網絡相關的調試命令
由於經過RedHat的RHCE考試,對於NetworkManager管理網絡感受很方便,以此結合這個工具對網絡相關的設置進行說明
1)啓動NetworkManager服務
[root@node-1 ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; disabled; vendor preset: enabled)
Active: active (running) since Sun 2020-03-08 19:20:35 CST; 6s ago
Docs: man:NetworkManager(8)
Main PID: 890 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
└─890 /usr/sbin/NetworkManager --no-daemon
對於NetworkManager管理網絡使用也是RHCE考試必考知識點,在RHEL8中更是管理方便
2)安裝網絡管理工具
[root@node-1 ~]# yum -y install net-tools
18.2.1查看本機開放了哪些端口
使用netstat命令:
[root@node-1 ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN 832/sshd
tcp6 0 0 :::22 :::
LISTEN 832/sshd
結合應用說明參數
-t 查看tcp協議服務
-u 查看ucp協議服務
-l 以長格式顯示
-n 顯示端口號
-p 顯示進程號
18.2.2 IP地址配置文件說明
[root@node-1 ~]# cd /etc/sysconfig/network-scripts/
方法1:修改配置文件
[root@node-1 network-scripts]# vim ifcfg-eth0 --修改內核網卡名稱爲ifcfg-eth0
主要參數有(在此以設置靜態IP來講明):
TYPE=Ethernet
BOOTPROTO=static
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.26.71
NETMASK=255.255.255.0
GATEWAY=192.168.26.2
DNS1=114.114.114.114
DNS2=223.5.5.5linux

以上內容在參加RHCE考試的時候是要求默寫的,請你們注意大小寫。網卡配置文件也要新建的,若是連IP都配置很差,餘下的題目就不用再看了
要習慣LINUX遠程中Ctrl+insert爲複製,Shift+insert爲粘貼,忘記Ctrl+c與Ctrl+v吧,
在這裏給你們講個小段子:
帶了位新同事,用putty遠程鏈接服務器,編輯完成個腳本順手來了個Ctrl+s,結果鎖定了此服務器,而後這位同事鍵入不了命令了。如何從鎖屏中解除請聰明的讀者自查吧
18.2.3 查看網卡物理鏈接是否正常
[root@node-1 ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0
[root@node-1 ~]# mii-tool eth0
eth0: negotiated 1000baseT-FD flow-control, link ok
方法2:用nmcli 命令來配置IP地址
[root@node-1 ~]# nmcli connection modify eth0 ipv4.addresses 192.168.26.71/24 ipv4.gateway 192.168.26.2 ipv4.dns 114.114.114.114 autoconnect yes
方法3:
[root@node-1 ~]# nmtui-edit 字符界面配IP, 瞭解一下vim

配置完成須要重啓網絡服務生效
[root@node-1 ~]# systemctl restart network
查看網卡IP配置信息:
[root@node-1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e2:83:c3 brd ff:ff:ff:ff:ff:ff
inet 192.168.26.71/24 brd 192.168.26.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee2:83c3/64 scope link
valid_lft forever preferred_lft forever
18.3 實戰-centos7服務器網卡聚合綁定
網絡與網卡中斷工做在實際工做中是不被接受的,因此centos7經過聚合--teamd解決此問題,代替了centos6的綁定--bond
1)添加兩塊網卡
[root@node-1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e2:83:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.26.71/24 brd 192.168.26.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee2:83cd/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:e2:83:c3 brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:e2:83:d7 brd ff:ff:ff:ff:ff:ff
2)拷貝配置文件
[root@node-1 ~]# cd /usr/share/doc/teamd-1.27/example_ifcfgs/1
[root@node-1 1]# ll
total 12
-rw-r--r--. 1 root root 73 Mar 18 2017 ifcfg-eth1
-rw-r--r--. 1 root root 73 Mar 18 2017 ifcfg-eth2
-rw-r--r--. 1 root root 157 Mar 18 2017 ifcfg-team_test0
-rw-r--r--. 1 root root 157 Mar 18 2017 ifcfg-team_test0
[root@node-1 1]# cp ./* /etc/sysconfig/network-scripts/
[root@node-1 1]# cd /etc/sysconfig/network-scripts/
[root@node-1 network-scripts]# ll |grep ifcfg
-rw-r--r-- 1 root root 177 Feb 29 22:53 ifcfg-eth0
-rw-r--r-- 1 root root 73 Mar 8 19:58 ifcfg-eth1
-rw-r--r-- 1 root root 73 Mar 8 19:58 ifcfg-eth2
-rw-r--r-- 1 root root 254 Jan 3 2018 ifcfg-lo
-rw-r--r-- 1 root root 157 Mar 8 19:58 ifcfg-team_test0
3)修改配置文件
[root@node-1 network-scripts]# cat ifcfg-eth1
DEVICE="eth1"
NAME="eth1"
DEVICETYPE="TeamPort"
ONBOOT="yes"
TEAM_MASTER="team_test0"
[root@node-1 network-scripts]# cat ifcfg-eth2
DEVICE="eth2"
NAME="eth2"
DEVICETYPE="TeamPort"
ONBOOT="yes"
TEAM_MASTER="team_test0"
[root@node-1 network-scripts]# cat ifcfg-team_test0
DEVICE="team_test0"
NAME="team_test0"
DEVICETYPE="Team"
ONBOOT="yes"
BOOTPROTO=none
NETMASK=255.255.255.0
IPADDR=192.168.26.70
TEAM_CONFIG='{"runner": {"name": "activebackup"}}'
[root@node-1 network-scripts]# systemctl restart network
[root@node-1 network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e2:83:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.26.71/24 brd 192.168.26.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee2:83cd/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team_test0 state UP group default qlen 1000
link/ether 00:0c:29:e2:83:c3 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fee2:83c3/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master team_test0 state UP group default qlen 1000
link/ether 00:0c:29:e2:83:c3 brd ff:ff:ff:ff:ff:ff
inet6 fe80::20c:29ff:fee2:83d7/64 scope link
valid_lft forever preferred_lft forever
5: team_test0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:e2:83:c3 brd ff:ff:ff:ff:ff:ff
inet 192.168.26.70/24 brd 192.168.26.255 scope global team_test0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee2:83c3/64 scope link
valid_lft forever preferred_lft forever
4)操做成功
上面的顯示能夠看出,eth一、eth二、team_test0的MAC地址是同樣的
[root@node-1 network-scripts]# teamdctl team_test0 state
setup:
runner: activebackup
ports:
eth1
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
eth2
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: eth1
一樣的道理以上配置也能夠用nmcli來實現,不過操做起來麻煩些
[root@node-1 ~]#nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
[root@node-1 ~]#nmcli connection modify team0 ipv4.address 192.168.26.70/24 ipv4.methed manual autoconnect yes
[root@node-1 ~]#nmcli connection add type team_slave con-name eth1 ifname eth1 master team0 connection-autoconnect yes
[root@node-1 ~]#nmcli connection add type team_slave con-name eth2 ifname eth2 master team0 connection-autoconnect yes
[root@node-1 ~]# systemctl restart network
這樣也能夠實現centos

相關文章
相關標籤/搜索