linux網絡屬性
ifconfig命令家族:ifconfig,route,netstat
ifconfig命令:接口及地址查看和管理
ifconfig [interface]:
ifconfig -a:顯示所有接口,包括inactive
ifconfig IFACE up|down :禁用和啟用網卡
ifconfig IFACE IP/MASK [up] 配置IP地址和子網掩碼
注意:這些配置都是立即生效的
[-]promisc:啟用混雜模式
route命令:路由查看及管理
路由條目類型:
主機路由:目標地址為單個IP
網絡路由:目標地址為IP網絡
默認路由:目標為任意主機,0.0.0.0/0.0.0.0
查看:route -n (以數字格式顯示)
[root@localhost ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 * 255.255.0.0 U 1 0 0 eth0 default server.magedu.c 0.0.0.0 UG 0 0 0 eth0 [root@localhost ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.1.0.0 0.0.0.0 255.255.0.0 U 1 0 0 eth0 0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth0
添加:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
示例:
route add -net 0.0.0.0/8 gw 192.168.10.1 dev eth1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
route add default gw 192.168.10.1
刪除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
route del -net 10.0.0.0/8 gw 192.168.10.1
route del default(刪除默認網關)
配置動態路由
通過手進程獲取動態路由
安裝quagga包,支持各種格式的RIP,OSPF和BGP
命令vtysh
netstat命令
顯示網絡連接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–
extend|-e]] [–program|-p]
-t:TCP相關協議的相關連接;鏈接均有其狀態;FSM(Finate State Machine)
-u:UDPF相關的連接
-w:raw socket相關的連接
-l:處于監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示IP和port
-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 -IIFACE(注意此處網卡名稱與-I選項沒有空格)
ifconfig -s
ip命令
配置Linux網絡屬性:ip命令
ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr |route }
注意:OBJECT可簡寫,各OBJECT的命令也可以簡寫
ip OBJECT:
ip link:網絡設備配置
ip link set:管理修改設備屬性
dev NAME(default):指明要管理的設備,dev關鍵字可省略
down:禁用 up:啟用
multicast on或multicast off 啟用或禁用組播(多播功能)
name NAME:改名
注意:此處更改網卡名成,要先將網卡禁用在使用更改名稱命令!!!!!
mtu NUMBER:設置mtu的大??;默認為1500
netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間;
ip link show:顯示設備屬性
CentOS7專有
ip netns:ip -manage network namspace
ip netns list:列出所有的netns
ip netns add NAME 增加創建網絡命名空間
ip netns del NAME 刪除網絡命名空間
ip netns exec NAME COMMAND :在指定的netns中運行命令
ip address
增加ip address add IFADDR dev IFace
[label NAME] :為額外添加的地址指明接口別名
[broadcast ADDRESS] :廣播地址;會根據IP 和NETMASK自動計算得到
[scope SCOPE_VALUE]:
global:全局可用
link:接口可用
host:僅本機可用
顯示show
ip addr list(show) IFACE:顯示接口的地址
增加ip地址
刪除ip address delete IFADDR dev IFace
添加ip地址時指明網卡別名
清空flush(使用格式同show)
ip address flush dev eth0 label eth0:0
ip route:
add:添加路由
ip route add TARGET via GW dev IFACE src SOURCE_IP
change:修改
replace:替換
ip route add TYPE PREFIX via GW [dev ]
delete:刪除
ip route del TARGET
show:顯示
ip route show|list
flush:清空路由
get:獲取指定單條路由
ss命令
格式: ss [OPTION]…[FILTER]
netstat 通過遍歷proc 來獲取socket 信息, ,ss 使用netlink 與內核tcp_diag
模塊通信獲取socket 信息
選項:
-t:TCP協議的想連接
-u:UDP相關的連接
-w:raw socket相關的連接
-l:監聽狀態的連接
-a:所有狀態的連接
-n:數字格式
-p:相關的程序及其PID
-e:擴展格式信息
-m:內存用量
-o:計時器信息
-x:unix sock相關
TCP的常見狀態:
TCP FSM:
LISTEN:監聽
ESTABLISEHD:建立的連接
FIN_WAIT1:
FIN_WAIT2:
SYN_SENT:
SYN_RECV:
CLOSED:
例: ss -tan '(dport = :22 or sport = :22)'
sport:源端口 dport:目標端口
常見組合:
-tan,-tanl,-tanlp,-uan
常見用法:
ss -l 顯示本地打開的所有端口
ss-pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有的tcp socket
ss -u -a 顯示所有的UDP socket
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的ssh連接
ss -s 列出當前socket詳細信息
網絡配置文件
IP,MASK,GW,DNS相關配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE:此配置文件應用到設備
HWADDR:對應設備的MAC地址
BOOTPROTO:激活此設備使用的地址配置協議,常用的dhcp,static,none,bootp
NM_CONTROLLED:NM是NetworkMangager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no”
網絡服務:network
NetworkManager
管理網絡服務:
centos6:service SERVICE {start|stop|restart|status}
centos7:systemctl {start|stop|restart|status} SERVICE.service
ONBOOT:在系統引導時是否激活此設備
TYPE:接口類型;常見的Ethernet,Bridge
UUID:設備的唯一標識
IPADDR:指明IP地址
NETMASK:子網掩碼
GATEWAY:默認網關
DNS1:第一個DNS的服務器指向
DNS2:第二個DNS的服務器指向
USERCTL:普通用戶是否可控制此設備
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息
直接覆蓋至/etc/resolv.conf中
本地解析器
解析器執行執行正向和逆向查詢
/etc/hosts
本地主機名數據庫和IP地址的映像
對小型獨立網絡有用
通常,在使用DNSian前檢查
getent hosts 查看/etc/hosts內容
DNS名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/etc/nsswitch.conf
與/etc/hosts 相比優先于DNS
正解:FADN—>IP
#dig -t A FAQN
#host -t A FQDN
反解:IP–>FQDN
#dig -x IP
#host -t PTR IP
路由相關配置文件
/etc/sysconfig/network-scripts/route-IFACE
支持兩種配置方式,但是不可混用:
1. TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
2.每三行定義一條路由
ADDRESS#=TAGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
CentOS 7網絡屬性配置
在rhel6之前,網絡接口使用連續號碼命名:eth。eth1等,當增加或者刪除網卡時名稱可能會發生變化
rhel7使用基于硬件,設備拓撲和設置類型命名:
-
網卡命名機制
-
如果Firmware或BIOS為主板集成的設備提供的索引信息可用,且可預測。,則根據此索引進行命名,例如eno1
-
如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1
-
如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s
-
如果用戶顯示啟動,也可以根據MAC地址進行命名,enx2387a1dc56
-
上述均不可用時,則使用傳統命名機制
基于BIOS支持啟用biosdevnam軟件
內置網卡:em1,em2
pci卡:pYpX X:port Y:slot
-
名稱組成格式
en:Ethernet 有線局域網
wl:wlan 無線局域網
ww:wwan 無線廣域網
名稱類型:
o<index>: 集成設備的設備索引號
s<slot>: 擴展槽的索引號
x<MAC>: 基于MAC 地址的命名
p<bus>s<slot>: enp2s1
網卡設備的命名過程:
第一步:
udev, 輔助工具程序/lib/udev/rename_device,
/usr/lib/udev/rules.d/60-net.rules
第二步:
biosdevname 會根據/usr/lib/udev/rules.d/71-biosdevname.rules
第三步:
通過檢測網絡接口設備,根據
/usr/lib/udev/rules.d/75-net-description
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
使用傳統命名方式:
(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) 重啟系統
nmcli命令
nmcli配置網絡
NetworkManager是管理和監控網絡設置的守護進程
設備及網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,
但是同時只有一個連接配置生效
connection:
nmlic connection show(查看連接)
nmcli的子命令可以用tab鍵補全,很方便
使用nmcli命令及其子命令直接增加了一個ip地址及其配置文件
此時此地址雖然配置文件沒有問題,但是是個無效的,因為它的名字和接口沒有綁定
還需執行命令 nmcli connection up home 才能啟用
刪除新增加的ip地址和配置文件
general:顯示NetworkMangager的所有狀態
device:列出NetworkManager識別出的設備列表及他們的狀態
顯示網絡接口屬性
nmcli dev show eno16777736
創建新連接default,自動獲取IP地址
nmcli connection add con-name default type ethernet ifname eno33554976
1.創建
2.啟用綁定
修改連接設置
給default增加一個ipv4地址
nmcli connection modify default +ipv4.addresses 10.1.252.211/24
啟用此ip地址,步驟如下
nmcli connection down default nmcli connection up default ip add
備注:此處只能使用ip add命令查看,ifconfig命令無法查看
nmcli的子命令太多,這里就不一一列舉,這些子命令都可用tab鍵補全,所以使用起來很方便
nmcli命令列表
修改 連接 配置后 ,需要重新加載配置
nmcli con reload
nmcli con down “system eth0” 可被自動激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用網卡,訪止被自動激活
圖形工具
nm-connection-editor
網絡組NetworkManager Teaming
網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
網絡組不同于舊版中bonding 技術,提供更好的性能和擴展性
網絡組由內核驅動和teamd 守護進程實現.
多種方式runner
broadcast
roundrobin
activebackup
loadbalance
lacp (implements the 802.3ad Link Aggregation Control Protocol)
啟動網絡組接口不會自動啟動網絡組中的port接口
啟動網絡組接口中的port 接口不會自動啟動網絡組接口
禁用網絡組接口會自動禁用網絡組中的port接口
沒有port 接口的網絡組接口可以啟動靜態IP連接
啟用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
給team0添加ip地址,并且更改設置為手動獲取IP地址
給tam0添加DNS和網關
創建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 接口
ifcfg-team0-port1和ifcfg-team0-port2配置文件如下
查看物理接口信息
啟用team0
將物理接口port1和part2啟用
使用teamdctl team0 state可查看網絡組使用信息
用另一個主機來ping此主機(效果和bond其實是一樣的)
結果有點奇怪
第一次測試時,兩塊網卡任意一塊存在時,都是可以ping通的
但是第二次在測試時,取消第二塊網卡連接時,只保留第一網卡,無法ping通,
取消第一網卡連接時,只保留第二網卡,是可以ping通的
因為老師上課的時候也出現過同樣的情況(第二次測試),所以我猜測是不是這個
還不穩定,存在什么漏洞,具體還得在找找資料看看了!
這個實驗就到這里吧!
管理網絡組配置文件
配置文件在老地方
如果想修改team0,可以使用命令。當然也可以在配置文件中直接修改
team-part1和team-part2也是一樣,可以直接在配置文件中修改
nmcli配置主機名
rhel6 之前 主機名配置文件:/etc/sysconfig/network
rhel7.0 主機名配置文件:/etc/hostname ,默認沒有這個文件,通過DNS 反向解析獲取主機名,
主機名 默認為 :
localhost.localdomain
顯示主機名信息
hostname
hostnamectl status
創建并修改文件并生效
hostnamectl set-hostname desktopX.example.com
刪除文件,恢復主機名localhost.localdomain
DNS 設置,存放在/etc/resolv.conf 文件中
PEERDNS=no 表示當 當IP 通過dhcp 自動獲取時,dns 仍是 手動設置,不自動獲取。
等價于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
測試網絡
在命令行下測試網絡的連通性
顯示主機名
hostname
測試網絡連通性
ping 10.1.252.194
mtr 10.1.252.194
顯示正確的路由表
ip route
確定名稱服務器使用:
nslookup
host
dig
跟蹤路由
traceroute
Tracepath
To me:
網絡管理還需多花時間研究研究!
以后的我,切記!?。。。。。?
原創文章,作者:qiuwei,如若轉載,請注明出處:http://www.www58058.com/44230