網絡管理命令

linux網絡屬性

    ifconfig命令家族:ifconfig,route,netstat

ifconfig命令:接口及地址查看和管理

    ifconfig [interface]:

    ifconfig -a:顯示所有接口,包括inactive

blob.png

    ifconfig IFACE up|down :禁用和啟用網卡

blob.png 

    ifconfig IFACE IP/MASK [up] 配置IP地址和子網掩碼

blob.png

注意:這些配置都是立即生效的

    [-]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

 blob.png   

    刪除:

    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(刪除默認網關)

blob.png    

配置動態路由

通過手進程獲取動態路由

    安裝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

blob.png

blob.png

blob.png

blob.png

常用整合:

    -tan,-uan,-tnl,-unl

顯示路由表:

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

        -r:顯示內核路由表

        -n:以數字格式顯示

blob.png

顯示接口統計數據:

    netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]

netstat -i

netstat -IIFACE(注意此處網卡名稱與-I選項沒有空格)

ifconfig -s 

blob.png

blob.png

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:啟用       

blob.png

        multicast on或multicast off 啟用或禁用組播(多播功能)            

        name NAME:改名 

        注意:此處更改網卡名成,要先將網卡禁用在使用更改名稱命令!!!!!  

blob.png

        mtu NUMBER:設置mtu的大??;默認為1500

        netns PID:ns為namespace,用于將接口移動到指定的網絡名稱空間;

    ip link show:顯示設備屬性

blob.png

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地址

blob.png

刪除ip  address delete IFADDR dev IFace

blob.png

添加ip地址時指明網卡別名

blob.png

blob.png

清空flush(使用格式同show)

    ip address flush dev eth0 label eth0:0

ip route:

    add:添加路由

        ip route add TARGET via GW dev IFACE src SOURCE_IP

blob.png

    change:修改

    replace:替換

        ip route  add  TYPE PREFIX  via GW [dev ]

    delete:刪除

        ip route del TARGET

blob.png

    show:顯示

        ip route show|list

blob.png

    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 顯示本地打開的所有端口

blob.png

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

ss -t -a 顯示所有的tcp socket

ss -u -a 顯示所有的UDP socket

ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連接

blob.png

ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的ssh連接

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

blob.png

網絡配置文件

    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中

blob.png

本地解析器

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

/etc/hosts

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

    對小型獨立網絡有用

    通常,在使用DNSian前檢查

getent hosts 查看/etc/hosts內容

blob.png

DNS名字解析

/etc/resolv.conf

    nameserver DNS_SERVER_IP1

     nameserver DNS_SERVER_IP2

    nameserver DNS_SERVER_IP3

blob.png

/etc/nsswitch.conf

 與/etc/hosts 相比優先于DNS

正解:FADN—>IP

    #dig -t A FAQN

    #host -t A FQDN

blob.png    

反解:IP–>FQDN

    #dig -x IP

    #host -t PTR IP

blob.png

路由相關配置文件

    /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使用基于硬件,設備拓撲和設置類型命名:

  1. 網卡命名機制    

    1. 如果Firmware或BIOS為主板集成的設備提供的索引信息可用,且可預測。,則根據此索引進行命名,例如eno1

    2. 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1

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

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

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

      基于BIOS支持啟用biosdevnam軟件

      內置網卡:em1,em2

      pci卡:pYpX    X:port  Y:slot

  2. 名稱組成格式

    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

blob.png

blob.png

(2)  為grub2 生成其配置文件

    grub2-mkconfig -o /etc/grub2.cfg

blob.png

(3)  重啟系統

nmcli命令


blob.png

blob.png

nmcli配置網絡

NetworkManager是管理和監控網絡設置的守護進程

設備及網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,

但是同時只有一個連接配置生效

connection:

nmlic connection show(查看連接)

blob.png

nmcli的子命令可以用tab鍵補全,很方便

blob.png

使用nmcli命令及其子命令直接增加了一個ip地址及其配置文件

blob.png

此時此地址雖然配置文件沒有問題,但是是個無效的,因為它的名字和接口沒有綁定

blob.png

還需執行命令 nmcli connection up home 才能啟用

刪除新增加的ip地址和配置文件

blob.png


general:顯示NetworkMangager的所有狀態

blob.png


device:列出NetworkManager識別出的設備列表及他們的狀態

blob.png

顯示網絡接口屬性

nmcli dev show eno16777736

blob.png

創建新連接default,自動獲取IP地址

 nmcli connection add con-name default type ethernet ifname eno33554976

1.創建

blob.png

2.啟用綁定

blob.png

修改連接設置

給default增加一個ipv4地址

nmcli connection modify default +ipv4.addresses 10.1.252.211/24

blob.png

啟用此ip地址,步驟如下

nmcli connection down default 
nmcli connection  up default
ip add

blob.png

備注:此處只能使用ip add命令查看,ifconfig命令無法查看

nmcli的子命令太多,這里就不一一列舉,這些子命令都可用tab鍵補全,所以使用起來很方便

nmcli命令列表

blob.png

blob.png

 

修改 連接 配置后 ,需要重新加載配置

    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, lacpblob.png

blob.png

給team0添加ip地址,并且更改設置為手動獲取IP地址

blob.png

給tam0添加DNS和網關

blob.png

創建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 接口

blob.png

ifcfg-team0-port1和ifcfg-team0-port2配置文件如下

blob.png

查看物理接口信息

blob.png

啟用team0

blob.png

將物理接口port1和part2啟用

blob.png

blob.png

使用teamdctl team0 state可查看網絡組使用信息

blob.png

用另一個主機來ping此主機(效果和bond其實是一樣的)

結果有點奇怪

第一次測試時,兩塊網卡任意一塊存在時,都是可以ping通的

但是第二次在測試時,取消第二塊網卡連接時,只保留第一網卡,無法ping通,

取消第一網卡連接時,只保留第二網卡,是可以ping通的

因為老師上課的時候也出現過同樣的情況(第二次測試),所以我猜測是不是這個

還不穩定,存在什么漏洞,具體還得在找找資料看看了!

這個實驗就到這里吧!

管理網絡組配置文件

配置文件在老地方

blob.png

如果想修改team0,可以使用命令。當然也可以在配置文件中直接修改

team-part1和team-part2也是一樣,可以直接在配置文件中修改

blob.png

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

blob.png

測試網絡連通性

    ping 10.1.252.194

blob.png

    mtr 10.1.252.194blob.png

顯示正確的路由表

    ip route

blob.png

確定名稱服務器使用:

    nslookup

    host

    dig

跟蹤路由

    traceroute

    Tracepath

To me:

    網絡管理還需多花時間研究研究!

     以后的我,切記!?。。。。。? 

原創文章,作者:qiuwei,如若轉載,請注明出處:http://www.www58058.com/44230

(0)
qiuweiqiuwei
上一篇 2016-09-13
下一篇 2016-09-13

相關推薦

  • linux防火墻規矩管理工具-iptables

    工具:iptables  系統:centos6.8 目錄 一、iptables簡介 二、主機報文流向 三、Netfilite功能 四、Iptables規矩     一、iptables簡介 iptables,一個運行在用戶空間的應用軟件,通過控制Linux內核netfilter模塊,來管理網絡數據包的流動與轉送。通常iptabl…

    2017-02-07
  • http2

    練習:     (1)基于主機名實現三個虛擬主機     (2) 每虛擬主機使用獨立的訪問日志和錯誤日志     (3) 第三個虛擬主機的/admin要進行用戶訪問認證     (4) 在第二個虛擬主…

    Linux干貨 2016-10-09
  • 系統啟動及恢復

    一、知識整理 1、modinfo命令:顯示模塊的詳細描述信息: -n 只顯示模塊文件路徑 -p 顯示模塊參數 -a auther -d description -l license協議 modprobe命令:裝載或卸載內核 -r卸載內核,同rmmod 配置文件:/etc/modprobe.d/*.conf depmod命令:內核模塊依賴關系文件及系統信息映射…

    Linux干貨 2016-09-22
  • linux 基礎目錄配置及用途說明

    bin -> usr/bin 一般存放root和一般用戶都可以使用的指令例如:cat, chmod, chown, date, mv, mkdir, cp, bash 等等常用的指令,同時還存放著單人維護模式下還能夠被使用的指令。 boot  這個目錄主要放置開機會使用到的文件,包括linux核心文件以及開機選單和開機所需要的配置文件。 de…

    Linux干貨 2017-08-19
  • 馬哥教育網絡班22期+第13周作業

    week13 1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)   1)共享名為shared,工作組為magedu;   2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為…

    Linux干貨 2016-11-21
  • 集中練習8-bash腳本及系統啟動

    集中練習8-bash腳本及系統啟動

    2017-12-06
欧美性久久久久