1. 程式人生 > >第12章,網絡管理(下)網絡基礎配置

第12章,網絡管理(下)網絡基礎配置

linix 網絡管理

更多內容請點擊:

Linux學習從入門到打死也不放棄,完全筆記整理(持續更新,求收藏,求點贊~~~~)

http://blog.51cto.com/13683480/2095439


筆記整理開始時間:2018年5月2日18:52:09

第12章,網絡管理(下)網絡基礎配置

本章內容

IP地址配置

路由管理

配置文件管理

DNS配置

基本網絡配置

將linux主機接入到網絡,需要配置網絡相關設置。

一般包括如下操作:

主機名

IP/netmask

路由:默認網關

DNS服務器

主DNS服務器

次DNS服務器

第三DNS服務器

centos6網卡名稱:

接口命名方式:centos 6

以太網:eth[0,1,2,...]

ppp: ppp[0,1,2,...]

網絡接口識別並命名相關的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

查看網卡驅動:

dmesg dmesg | grep -i eth

ethtool ethtool -i eth0

卸載網卡驅動:

modprobe modprobe -r e1000

rmmod rmmod e1000

裝載網卡驅動:

modprobe e1000

網絡配置方式:

靜態指定:

ifconfig,route,netstat

ip:object{link,addr.route},ss,rc

system-config-network-tui,setup

配置文件

動態分配:

DHCP:Dynamic Host Configuration Protlcol

ifconfig:

ifconfig [interface] 查看網絡接口

ifconfig -a 顯示所有網絡接口(包含狀態為down)

ifconfig InterFace [up|down] 啟用、關閉網絡接口(網卡)

ifconfig interface [aftype] options | address

ifconfig IFACE IP/netmask [up]

ifconfig IFACE IP netmask NETMASK 配置IP地址

註意:

修改立即生效

啟用混雜模式:[-]promisc

route:

路由記錄類型:

主機路由 -host

網絡路由 -net netmask

默認路由

查看:

route -n

添加路由:route add

route add [-host|-net] target [netmask NM] [gw GW] [dev IFACE]

添加主機路由:

目標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/24 gw 172.16.0.1

route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

添加默認路由:

默認路由網關: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 [-host|-net] target [gw GW] [netmask NM] [dev IF]

刪除主機路由:

目標:192.168.1.3 網關 172.16.0.1

route del -hos 192.168.1.3 gw 172.16.0.1

刪除網路路由:

目標:192.168.0.0 網關 172.16.0.1

route -net 192.168.0.0 netmask 255.255.255.0

刪除默認路由:

route del default gw 172.16.0.1

###配置動態路由:

通過守護進程獲取動態路由

### 安裝quagga包

### 主持多種路由協議:rip,ospf。bgp

### 命令vtysh配置

netstat:

print network connections,routing tables,interface statistics,

masquerade connections,and multicast memberships

顯示網路連接:

netstat [--tcp|-t][--udp|-u][--raw|-w][--listening|-l][--all|-a]

[--numeric|-n][--extend|-e][--program|-p]

-t|--tcp tcp協議

-u|--udp udp協議

-w|--raw raw socket相關

-l|--listen 處於監聽狀態

-a|--all 所有狀態

-n|--numeric 以數字顯示IP和端口

-e|--extend 擴展格式

-p|--program 顯示相關進程及PID

常用組合:

-tan ,-uan,-tnl -unl

顯示路由表:

netstat {--route|-r}[--numeric|-n]

-r 顯示內核路由表

-n 數字格式

顯示接口統計數據:

netstat {--interface|-l}[iface][--all|-a][--extend|-e]

[--program|-p][--numeric|-n]

netstat -i

netstat -I=IFACE

ifconfig -s iface

ip:

配置Linux網絡屬性:ip命令

ip - show / manipulate routing,devices,policy routing and tunnels

顯示/操作路由、設備、策略路由和隧道

格式:

ip [options] objecet {command|help}

object: {link|addr|route..}

PS: centos6 默認不支持ip等命令補全,需安裝輔助包 epel源中

yum install bash-completion

ip link:

ip link -network device configuration 網絡設備配置

ip link set IFACE up|down == ifconfig IFACE up|down

down掉之後ifconfig 需要加-a選項查看,ip a, ip link 可直接看到狀態down

ifup/ifdown:

需要由配置文件,且down掉之後ifconfig可以查看網卡

ip link 狀態也依然up

ip link show iface 單獨查看某一網卡

ip addr:

address|ad|a...:

ip addr {add | del} IFADDR dev STRING

[label LABEL] 添加地址時指明網卡別名如(:#)

[scope{global,link,host}] 指明作用域

globel:全局可用

link:僅鏈接可用

host:本機可用

[broadcast ADDRESS]:指明廣播地址

ip addr show|flush dev IFACE 查看清空IP地址

ip route:

ip route add 添加路由

ip route add TARGET via GW dev IFACE src SOURCE-IP

TARGET:

主機路由:IP

網絡路由:NET/MASK

ip route add 192.168.0.0/24 via 172.16.0.1

ip route add 192.168.6.6 via 172.16.0.1

添加網關:

ip route add default via GW

ip route add default via 172.16.0.1

ip route delete 刪除路由

ip route delete TARGET

ip route show|list 顯示路由

ip route flush [dev IFACE][via PREFIX]

清除路由

ss:命令

格式:ss [option]...[FILTER]

netstat 通過遍歷proc來獲取socket信息,ss使用netlink與內核tcp_diag模塊

通信獲取socket信息

選項:

-t tcp協議先關

-u udp協議相關

-w 裸套接字相關

-l listen狀態的連接

-a 所有

-n 數字格式

-p 相關的程序及PID

-e 擴展的信息

-m 內存用量

-o 計時器信息

-s 列出當前socket的詳細信息

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)'

ss state ESTABLISHED sport = :ssh

常用組合:

-tan ,-tanl, -tanlp,-uan

常見用法:

ss -l 顯示本地打開的所有端口

ss -pl 顯示每個進程具體打開的socket

ss -ta 顯示所有的tcp socket

ss -ua 顯示所有的udp socket

ss -o state established '( dport = :ssh or sport = :ssh )'

顯示所有已建立的ssh連接

ss -o state established '( dport = :http or spout = :http )'

顯示所有已建立的http連接

ss -s 列出當前socket的詳細信息

網絡配置文件:

ip,mask,gw,dns相關配置文件:

/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相關的配置文件:

/etc/sysconfig/network-scripts/route-IFACE

NDS配置文件:

/etc/resolv.conf

參考說明:

centos6.9 /usr/share/doc/initscripts-9.03.58/sysconfig.txt

centos7.4 /usr/share/doc/initscripts-9.49.39/sysconfig.txt

ifcfg-IFACE:

DEVICE 此配置文件應用到的設備

HWADDR 對應的設備的MAC地址,如修改,可改為MACADDR=

BOOTPROTO 激活此設備時使用的地址配置協議,常用的dhcp,static,none,bootp

NM_CONTROLLED: NM為:NetworkManager的簡寫,此網卡是否接受NM控制

ONBOOT 在系統引導時是否激活此設備

TYPE 接口類型;常見的有Ethernet,Bridge

UUID uuid

IPADDR ip地址

NETMASK 子網掩碼

PREFIX netmask 使用/24 寫法

GATEWAY 默認網關

DNS1 第一個DNS服務器指向

DNS2 第二個DNS服務器指向

USERCTL 普通用戶是否可控制此設備

PEERDNS 如果BOOTPROTO的值為dhcp ,是否允許dhcp server分配的dns

服務器指向信息直接覆蓋/etc/resolv.conf

DEFROUTE 是否把這個eth設置為默認路由

PEERROUTES 是否從DHCP服務器獲取用於定義接口的默認網關的信息的路由表條目

IPV6INIT 是否啟用IPv6接口

IPV4_FAILURE_FATAL=yes 如果ipv4配置失敗禁用設備

IPV6_FAILURE_FATAL=yes 如果ipv6配置失敗禁用設備

route-IFACE:

兩種書寫風格:

1. TARGET via GW

如:192.167.10.0/24 via 192.168.65.1

192.168.8.8 via 192.168.65.1

2. 每三行定義一條路由

ADDRESS#=ip

NETMASK#=mask

GATEWAY#=gw

PS: #:為數字 必須從0開始

如需添加主機路由 mask 255.255.255.255

如需添加默認路由 ip 和mask 都為 0.0.0.0

配置文件修改之後生效:

service network restart centos6

systemctl restart network centos7

主機名和本地解析器:

配置當前主機的主機名:

hostname HOSTNAME

立即生效,如果想要提示符修改需重新登錄,重啟失效

/etc/sysconfig/network

重啟生效

解析器執行正向和逆向查詢

/etc/hosts

本地主機名數據庫和ip地址的映像

對小型獨立網絡有用

通常,在使用DNS前檢查

getent hosts 查看/etc/hosts內容

dns名字解析:

/etc/resolv.conf DNS記錄配置文件

nameserver DNS-SERVER-ip1

nameserver DNS-SERVER-ip2

nameserver DNS-SERVER-ip3

/etc/nsswitch.conf

優先於/etc/hosts 且可以設置/etc/hosts 優先級

38 hosts: files dns

將files 和 dns 跟換順序即可降低hosts優先級

正向解析:name--> ip

dig dig [-t A] name [+trace]

host host -t A name

反向解析:ip--> name

dig -x ip

host -t PTR ip

網卡別名:

對虛擬主機有用

將多個IP地址綁定到一個網卡(NIC)上

eth0:1 , eth0:2 ,eth0:3

使用ifconfig添加:

ifconfig eth0:1 192.168.8.8/24

ifconfig eth0:1 down

使用ip命令添加:

ip add add 172.16.1.2/24 dev eth0

ip a a 172.16.1.3/16 dev eth0 label eth0:1

ip addr del 172.16.1.2/24 dev eth0

ip a flush dev eth0 label eth0:0

設備別名:

為每個設備別名生成獨立的接口配置文件:

關閉NetworkManager服務

ifcfg-ethX:xxx

必須使用靜態聯網

DEVICE=eth0:xxx

IPADDR=ip

NETMASK=mask

PREFIX=

ONPARENT=yes 表明從屬關系

網絡接口配置-bonding

bonding

將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。

直接給兩塊網卡設置同一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設備的配置文件:

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS="miimon=100 mode=0"

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eht0

BOOTPROTO=none

MASTE=bond0

SLAVE=yes

USERCTL=no

查看bond0狀態: /proc/net/bonding/bond0

miimon是用來進行鏈路監測的。如果miimon=100,那麽系統每100ms監測一次鏈路

狀態,如果一條線路不通就轉入另一條線路

刪除bond0

ifconfig bond0 down

rmmod rmmod bonding

詳細幫助:

https://www.kernel.org/doc/Documentation/networking/bonding.txt

CentOS 7 網絡屬性配置

Centos 6之前,網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名稱

可能會發生變化

CentOS7使用基於硬件,設備拓撲和設置類型命名

1 網卡命名機制:

systemd對網絡設備的命名方式:

a 如果Fireware或BIOS為主板上集成的設備提供的索引信息可用,且

且可預測,則根據此索引進行命名,例如eno1

b 如果Fireware或BIOS 為PCI-E擴展槽提供的索引信息可用,且可預測,則

根據此索引進行命名,例如ens1

c 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0

d 如果用戶顯示啟動,也可根據MAC地址進行命名,如enx2387...

e 上述均不可用時,則使用傳統命名機制

基於BIOS支持啟用biosdevname軟件:

內置網卡: em1,em2

pci卡: pYpX Y:slot,X:port

2 名稱組成格式:

en: Ethernet 有限局域網

wl: wlan 無限局域網

ww: wwan 無線廣域網

名稱類型:

o <index>: 集成設備的設備索引號

s <soft>: 擴展槽的索引號

x <MAC>: 基於MAC地址的命名

p<bus>s<slot>: enp2s1

采用傳統命名方式:

1 編輯/etc/default/grub配置文件

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0

2 為grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

3 重啟系統

或者直接修改/boot/grub2/grub.cfg

在linux16.* 行尾添加 net.ifnames=0

Centos 7修改主機名:

配置文件:/etc/hostname,默認沒有此文件,通過DNS反向解析獲取主機名,

默認為:localhost.localdomain

顯示主機名信息:

hostname

hostamectl status

設置主機名:

hostnamectl set-hostname centos7.4

Centos7網絡配置工具:

nm-connection-editor 圖形工具:nm-connection-editor

nmtui 字符配置tui工具:nmtui

nmcli 命令行工具:nmcli

nmcli:

由NetworkManager 提供的地址配置工具,必須開啟NM服務

設備(device)即網絡接口

連接(connection)是對網絡接口的配置。

添加連接(nmcli con add)使一個網絡接口可有多個連接配置,但同時只有一個連接配置生效

格式:

nmcli []options] object {command|help}

device - show and manage network interface

connection - start,stop,and manager network connections

nmcli device help | show | modify|..

配置網卡屬性,現在進行

nmcil connection help | show |add |modify |del|up|down|..

PS:使用nmcli dev status 查看之後最後一項 CONNECTION 值,即為連接的

connection名稱,

使用nmcli con modify CONNECTION

或者 nmcli con show CONNECTION

需註意

修改ip地址等屬性:

nmcli connection|device modify CONNECTION [+|-]setting.property value

setting.property

ipv4.addresses

ipv4.gateway

ipv4.dns1|2

ipv4.method 值為:manual(靜態)|auto(dhcp)

+|- 用於多條記錄情況

直接修改配置文件之後執行生效:

systemctl restart network

nmcli con|connection reload

nmcli命令生效:

nmcli con down eth0;nmcli con up eth0

顯示所有連接:

nmcli connection show

顯示所有活動連接:

nmcli con show --active

顯示網絡連接配置:

nmcli con show "System eth0" | CONNECTION

顯示設備狀態:

nmcli dev status

顯示網絡接口屬性:

nmcli dev show IFACE

創建新連接:

nmcli con add con-name NAME type Ethernet ifname ens37

添加連接NAME,ip自動通過dhcp獲取,配置在ens37網卡接口下

nmcli con add con-name STATIC ifname ens37 autoconnect no type

Ethernet ipv4.addresses IP/MASK ipv4.gateway GW

添加新連接STATIC ,指定靜態ip 不自動連接

刪除連接:

nmcli con del NAME

切換連接:

nmcli con up STATIC|NAME

DNS和路由相關setting.property

ipv6.ignore-auto-dns yes 相當於PEERDNS

ipv6.ignore-auto-routes yes 相當於PEERROUTES

網絡配置文件:

使用nmcli con add 添加連接會生成新的網卡配置文件:

ifcfg-<ifname>

修改連接配置文件之後,需要重新加載配置:

nmcli con reload

nmcli con down/up CONNECTION 可被自動激活

nmcli dev dis|diconnect eth0 禁用網卡,防止被自動激活

然而實測無效,還是可以被up激活

nmcli實現bonding:

添加bonding接口:

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup、balance-tlb和balance-alb模式不需要交換機的任何特殊配置。

添加從屬接口:

nmcli con add type bond-slave ifname ens33 master mybond0

nmcli con add type bond-slave ifname ens37 master mybond0

要啟動綁定,則必須首先啟動從屬接口

nmcli con up bond-slave-ens33

nmcli con up bond-slave-ens37

啟動綁定:

nmcli con up mybond0

網絡組Networking Teaming

網絡組:是將多個網卡聚合在一起的方式,從而實現容錯和提供吞吐量

網絡組不同於舊版中bonding技術,提供更好的性能和擴展性

網絡組由內核驅動和teamd守護進程實現

多種方式runner

broadcast

roundrobin

activebackup

loadbalance

lacp(implements the 802.3ad Link Aggregation Control Protocol)

網絡組:

啟動網絡組接口(team0)不會自動啟動網絡組中的port接口(team0-ens37)

啟動網絡組接口中的port接口總會自動啟動網絡組接口

禁用網絡組接口會自動禁用網絡組中的port接口

沒有port接口的網絡組接口可以啟動靜態ip鏈接

啟用dhcp連接時,沒有port接口的網絡組會等待port接口的加入

創建網絡組接口:

nmcli con add type team con-name CNAME ifname INAME [config JSON]

CNAME 連接名,INAME 接口名

JOSN:指定runner方式

格式 '{"runner":{"name":"METHOD"}}'

METHOD:broadcast, roundrobin,activebackup, loadbalance, lacp

nmcli con add type team con-name team0 ipv4.addresses

185.170.161.160/16 ipv4.method manual config '{"runner":{"name":"activebackup"}}'

創建port接口:

nmcli con type team-slave con-name CNAME ifname INAME master TEAM

CNAME: 連接名(如team0-ens37)

INAME: 接口名(指明網卡如 ens37)

TEAM: 組接口名 (如team0)

例:nmcli connection add type team-slave con-name team0-ens37

ifname ens37 master team0

nmcli connection add type team-slave con-name team0-ens38

ifname ens38 master team0

連接名若不指定,默認為team-slave-IFACE

啟動網絡組:

nmcli con up team0

nmcli con up team0-ens37

nmcli con up team0-ens38

查看網絡組:

teamdctl teamdctl team0 state

關閉網絡組:

nmcli con down team0 可再次開啟

刪除網絡組

先down

nmcli con del team0

nmcli con del team0-ens37

nmcli con del team0-ens38

PS: 創建或刪除,會自動生成或刪除配置文件

nmcli-實現網橋:

此小段為復制粘貼內容,以便後期查找,沒有操作復現。

橋接:

把一臺機器上的若幹個網絡接口“連接”起來。其結果是,其中一個網

口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互

相轉發。網橋就是這樣一個設備,它有若幹個網口,並且這些網口是橋接起來

的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。

? 主機A發送的報文被送到交換機S1的eth0口,由於eth0與eth1、eth2橋接在一

起,故而報文被復制到eth1和eth2,並且發送出去,然後被主機B和交換機S2

接收到。而S2又會將報文轉發給主機C、D。

配置實現網橋

? 創建軟件網橋

nmcli con add type bridge con-name br0 ifname br0

nmcli connection modify br0 ipv4.addresses 192.168.74.100/24

ipv4.method manuall

nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master

br0

查看網橋

cat /etc/sysconfig/network -scripts/ifcfg-br0

cat /etc/sysconfig/network -scripts/ifcfg-br0-port0

brctl show

刪除網橋 brctl delbr br0

刪除網橋中網卡 brctl delif eth0

註意:NetworkManager只支持以太網接口接口連接到網橋,不支持聚合接口

測試網絡工具:

hostname 顯示主機名

ping 測試網絡連通性

-s 65507 最大包

-f 強制發送,不等回復包

-c 5 幾次

-w 5 指定時間

mtr 測試網路連通性

nslookup 確定名稱服務器使用

host

dig

traceroute 跟蹤路由

tracepath

tcmdump icmp -nn 抓包

tcpdump -i eth1

網絡客戶端工具:

ftp 默認賬號ftp 或者anonymous

lftp 子命令:get(下載)、put 、mget(同時下載多個)、ls、cd、help

!cmd表示執行本機命令

lftpget URL 下載ftp資源

wget[options] URL

-q 靜默模式

-c 斷點續傳

-P 保存在指定目錄

-O 保存為指定的文件名

--limit-rate= 指定傳輸速率,K,M 默認為Byte

links URL 字符版瀏覽器

--dump 查看文字

--source 查看源碼

筆記整理完成時間:2018年5月5日15:48:27


第12章,網絡管理(下)網絡基礎配置