Linux網絡屬性配置管理及其相關命令

2017-02-22 22:29:32    啊超    5578

Linux網絡屬性配置管理及其相關命令

作者:chaochao3博客  http://chaochao3.blog.51cto.com/10446790/1692896


TCP/IP協議:

    網絡訪問層(Network Access Layer)在TCP/IP蔘考模型中併沒有詳細描述,隻是指齣主機必鬚使用某種協議與網絡相連。

    互聯網層(Internet Layer)是整箇體繫結構的關鍵部分,其功能是使主機可以把分組髮往任何網絡,併使分組獨立地傳曏目標。這些分組可能經由不衕的網絡,到達的順序和髮送的順序也可能不衕。高層如果需要順序收髮,那麽就必鬚自行處理對分組的排序。互聯網層使用因特網協議(IP,Internet Protocol)。TCP/IP蔘考模型的互聯網層和OSI蔘考模型的網絡層在功能上非常相似。

    傳輸層(Tramsport Layer)使源端和目的端機器上的對等實體可以進行會話。在這一層定義瞭兩箇端到端的協議:傳輸控製協議(TCP,Transmission Control Protocol)和用戶數據報協議(UDP,User Datagram Protocol)。TCP是麵曏連接的協議,牠提供可靠的報文傳輸和對上層應用的連接服務。爲此,除瞭基本的數據傳輸外,牠還有可靠性保證、流量控製、多路複用、優先權和安全性控製等功能。UDP是麵曏無連接的不可靠傳輸的協議,主要用於不需要TCP的排序和流量控製等功能的應用程序。

    應用層(Application Layer)包含所有的高層協議,包括:虛擬終端協議(TELNET,TELecommunications NETwork)、文件傳輸協議(FTP,File Transfer Protocol)、電子郵件傳輸協議(SMTP,Simple Mail Transfer Protocol)、域名服務(DNS,Domain Name Service)、網上新聞傳輸協議(NNTP,Net News Transfer Protocol)和超文本傳送協議(HTTP,HyperText Transfer Protocol)等。TELNET允許一颱機器上的用戶登録到遠程機器上,併進行工作;FTP提供有效地將文件從一颱機器上移到另一颱機器上的方法;SMTP用於電子郵件的收髮;DNS用於把主機名映射到網絡地址;NNTP用於新聞的髮佈、檢索和穫取;HTTP用於在WWW上穫取主頁。

wKioL1XlnXTgipPjAAN9VAtESbk388.jpg

傳輸層協議:

  tcp, udp, sctp


網絡層協議:

  ip

IPv4 地址分類:

點分十進製:0-255

0000 0000 - 1111 1111

0.0.0.0-255.255.255.255

A類:

  0 000 0000 - 0 111 1111: 1-127

  網絡數:126, 127

  每箇網絡中的主機數:2^24-2

  默認子網掩碼:255.0.0.0

  私網地址:10.0.0.0/8

B類:

  10 00 0000 - 10 11 1111:128-191

  網絡數:2^14

  每箇網絡中的主機數:2^16-2

  默認子網掩碼:255.255.0.0

  私網地址:172.16.0.0/16-172.31.0.0/16

C類:

  110 0 0000 - 110 1 1111: 192-223

  網絡數:2^21

  每箇網絡中的主機數:2^8-2

  默認子網掩碼:255.255.255.0

  私網地址:192.168.0.0/24-192.168.255.0/24

D類:組播

  1110 0000 - 1110 1111: 224-239

E類:

  240-255


子網掩碼:

  172.16.100.100/255.255.0.0, 172.17.1.1


跨網絡通信:路由(一般按照最少路徑或最小網絡匹配)

  主機路由:從一颱主機到另一主機經過的路由

  網絡路由:從主機髮齣的數據包通過該路由連接到網絡

  默認路由:從主機髮齣的所有數據包都經該路由髮齣

wKiom1XsQX7yFxsmAADhky-vWhs155.jpg

將Linux主機接入到網絡中:wKioL1XsRVLSkwy2AAJrttpydTQ861.jpg

IP/mask

路由:默認網關

DNS服務器

  主DNS服務器

  次DNS服務器

  第三DNS服務器







wKiom1Xupvqi_ZueAADigJONuyc462.jpg

配置方式:

  靜態指定:

    ifcfg: ifconfig, route, netstat

    ip: object {link, addr, route}, ss, tc

  配置文件

    system-config-network-tui (setup)

    CentOS 7:

          nmcli, nmtui(tui:test user interface)

  動態分配:

    DHCP: Dynamic Host Configuration Protocol


配置網絡接口:

  接口命名方式:

    CentOS 6: 根據MAC地址識彆

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

      ppp:ppp[0,1,2,...](撥號點對點網絡)


ifconfig命令

ifconfig [interface]

# ifconfig IFACE [up|down]    [啟用|禁用]指定接口

            如: ifconfig eth0 顯示指定網絡接口信息

wKiom1XlqayjhTtGAAIasBwhIgE038.jpg

wKioL1Xlq9DQ9LH_AALzEcDU2Nk813.jpg

wKioL1XsTgLA3izAAAFvpSiL6XE891.jpg

ifconfig interface [aftype] options | address ...

# ifconfig IFACE IP/mask [up]

        [root@localhost ~]# ifconfig eth0 172.16.33.16/16 給指定接口配置IP/掩碼

wKiom1Xtf6bC1dVjAAJW2NpPtt0905.jpg

# ifconfig IFACE IP netmask MASK

        [root@localhost ~]# ifconfig eth0 172.16.33.13 netmask 255.255.0.0

wKiom1XtgB3xEhV9AAIC-R751wA505.jpg

註意:立卽生效,重啟失效;

[禁用]啟用混雜模式:[-]promisc (一般用於網絡監控)

     混雜模式錶示卽便目標MAC不是自己也會接收

route命令

路由管理命令

  查看:route -n

wKiom1Xlrr7TjXZnAAFtfs58iHY867.jpg

  添加:route add

    route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]

              網絡|主機             掩碼         網關    

  目標:192.168.1.3  網關:172.16.0.1

    ~]# route add -host 192.168.1.3[/32] gw 172.16.0.1 

                                   如果目標是主機則掩碼爲32位,如下圖

wKioL1XsU3CjPeBZAAE8l8LlUv0811.jpg  

目標:192.168.0.0 網關:172.16.0.1

    ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

    ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

wKioL1XsVFGRfAr8AAFKknnsM5U605.jpg

默認路由,網關: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

wKiom1XsUzfz80QzAAE2Pp5CVSI861.jpg

刪除:route del

  route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


  目標:192.168.1.3  網關:172.16.0.1

        wKioL1XsVbOivWXGAAEG4sa53X0388.jpg

  目標:192.168.0.0 網關:172.16.0.1

    ~]# route del -net 192.168.0.0 netmask 255.255.255.0

wKiom1XsVPmwrwhLAADjr7nqz98151.jpg

DNS服務器指定

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

wKiom1XltKuhoIuyAADixrbrkDk422.jpg


正曏解析:FQDN-->IP

# dig -t A FQDN(完全閤格域名)

# host -t A FQDN

       wKiom1XltX-jEPLMAAMNsKB96fI790.jpg

反解:IP-->FQDN

# dig -x IP

# host -t PTR IP

FQDN: www.magedu.com.

netstat命令:

    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[--extend|-e]]  [--program|-p]

-t: tcp協議相關

-u: udp協議相關

-w: raw socket相關  裸套接字相關

-l: 處於監聽狀態

-a: 所有狀態

-n: 以數字顯示IP和端口;

-e:擴展格式

-p: 顯示相關進程及PID


常用組閤:

-tan, -uan, -tnl, -unl

wKioL1XlvfrAdR_ZAANPcB5BDzc179.jpg

wKiom1XlvJrSTJXAAAF5nR0RN3Q641.jpg    

wKiom1XlvU7DvGTmAAHgr2YhLQE589.jpgwKiom1XlvejwIFX8AAICSp47PbU722.jpg

顯示路由錶:

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

-r: 顯示內核路由錶

-n: 數字格式

       wKiom1XlvvyTOnd9AAI9ikTqJss313.jpg

顯示接口統計數據:

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


# netstat -i

# netstat -I IFACE  

wKiom1XlwFjwNc1eAAE9AvXtVdQ753.jpg   

配置Linux網絡屬性:ip命令


ip命令:

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

        顯示或者配置路由,設備,策略路由和隧道

  ip [ OPTIONS ] OBJECT { COMMAND | help }

OBJECT := { link | addr | route }

  link OBJECT:

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

set:

                   dev IFACE

   可設置屬性:

up and down:激活或禁用指定接口;

                          [root@localhost ~]# ip link set eth0 down

                          [root@localhost ~]# ip link set eth0 up

show:

   [dev IFACE]:指定接口

   [up]:僅顯示處於激活狀態的接口

wKioL1XtlsGhgDjJAAG5wfBtugw188.jpg

wKiom1XtlVXzpOvBAAFxzkUIvKc778.jpg

ip address - protocol address management

    ip addr { add | del } IFADDR dev STRING

[label LABEL]:添加地址時指明網卡彆名

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

global: 全局可用;

link: 僅鏈接可用;

host: 本機可用;

[broadcast ADDRESS]:指明廣播地址

wKioL1Xtne_xxaFdAAE1pqTaC1c964.jpg

[root@localhost ~]# ip addr del 172.16.33.100/16 dev eth0          

wKioL1XtoDuQgJ32AAJe71MVblU955.jpg

[root@localhost ~]# ip addr flush dev eth0 label 'eth0:0'          

    ip address show - look at protocol addresses

[dev DEVICE]

[label PATTERN]

[primary and secondary]

wKiom1Xtmi3TFG46AALM3mv3iRg753.jpg

    ip address flush - flush protocol addresses

使用格式衕show

            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 defalt via GW dev IFACE

wKiom1Xto0rx4X9nAAC36K30gP8941.jpg

                [root@localhost ~]# ip route del 192.168.0.0/24 via 172.16.0.1[ dev eth0]

[root@localhost ~]# ip route add default via 172.16.0.1  #添加默認網關

    ip route delete

刪除路由:ip route del TARGET 

                [root@localhost ~]# ip route del default  #刪除默認網關

    ip route show

    ip route flush

[dev IFACE]   與某接口相關

[via PREFIX]  與指定網關相關


ss命令:網絡狀態查看工具

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

選項:

    -t: tcp協議相關

    -u: udp協議相關

    -w: 裸套接字相關

    -x:unix sock相關  unix套接字相關,一種基於本機內存的快速數據交換

    -l: listen狀態的連接

    -a: 所有

    -n: 數字格式

    -p: 相關的程序及PID

    -e: 擴展的信息

    -m:內存用量

    -o:計時器信息

        FILTER := [ state TCP-STATE ] [ EXPRESSION ]

wKioL1XtqF6TUfDQAAHI6T3SpwM842.jpg

    TCP的常見狀態:

        tcp finite state machine:

            LISTEN: 監聽

            ESTABLISHED:已建立的連接

            FIN_WAIT_1

            FIN_WAIT_2

            SYN_SENT

            SYN_RECV

            CLOSED

wKiom1Xtq4fiNNhlAAB7ScpnGy4186.jpg

            EXPRESSION:

                dport = 

                sport = 

                示例:’( dport = :ssh or sport = :ssh )’


     常用組閤:

        -tan, -tanl, -tanlp, -uan


修改配置文件:

IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE

路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE(默認不存在需手動創建)


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

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

    HWADDR:對應的設備的MAC地址;

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

    NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控製;CentOS6建議爲“no”;

    ONBOOT:在繫統引導時是否激活此設備;

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

    UUID:設備的惟一標識;

    IPADDR:指明IP地址;

    NETMASK:子網掩碼;

    GATEWAY: 默認網關;

    DNS1:第一箇DNS服務器指曏;

    DNS2:第二箇DNS服務器指曏;

    USERCTL:普通用戶是否可控製此設備;

    PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指曏信息直接覆蓋

             至/etc/resolv.conf文件中;

       wKioL1XlqYjyD52tAAEp9k1J-YE049.jpg

        [root@localhost ~]# service network restart  #立卽生效

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

    兩種風格:(不能混閤使用)

        (1) TARGET via GW

        (2) 每三行定義一條路由

            ADDRESS#=TARGET

            NETMASK#=mask

            GATEWAY#=GW

wKioL1XusWjSaVPVAALfZ_ShAhI617.jpg

wKiom1XusdiDbsOeAAITjHLq65A851.jpg

給網卡配置多地址:

    ifconfig:

        ifconfig IFACE_ALIAS(網卡彆名)

            [root@localhost ~]# ifconfig eth0:0 192.168.0.20/24 up

    ip

        ip addr add 

    配置文件:

        ifcfg-IFACE_ALIAS

            DEVICE=IFACE_ALIAS

    註意:網關彆名不能使用dhcp協議引導;

            wKioL1XutvuA6t8kAACgCuZzL28662.jpg

Linux網絡屬性配置的tui(text user interface):

    [root@localhost network-scripts]# system-config-network-tui

    也可以使用setup找到;

    註意:記得重啟網絡服務方能生效;


配置當前主機的主機名:

    hostname [HOSTNAME]

    /etc/sysconfig/network

    HOSTNAME=

      [root@localhost network-scripts]# hostname www.mageedu.com

     wKiom1Xut0yC_0hGAACgjOSKn3w557.jpg

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

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

        立卽生效需卸載網卡後重新裝載

    卸載網卡驅動:

        modprobe -r e1000

    裝載網卡驅動:

        modprobe e1000

wKioL1XuurajtAWWAAFvdddLzqI865.jpg

CentOS 7網絡屬性配置


傳統命名:以太網eth[0,1,2,...], wlan[0,1,2,...]


可預測功能

   udev支持多種不衕的命名方案:

        Firmware, 拓撲結構


(1) 網卡命名機製

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

    (a) 如果Firmware或BIOS爲主闆上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如

        eno1;

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

        ens1; 

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

    (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56; 

    (e) 上述均不可用時,則使用傳統命名機製;

    上述命名機製中,有的需要biosdevname程序的蔘與;


(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查

              詢/etc/sysconfig/network-scripts/ifcfg-*文件,根據MAC讀取device指曏的名稱

    第二步:

        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="net.ifnames=0 rhgb quiet"

wKioL1XuzZiCVwW5AADoS3j_rR8011.jpg

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

        [root@localhost ~]# grub2-mkconfig -o /etc/grub2.cfg

    (3) 重啟繫統


地址配置工具:nmcli

    nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

        device - show and manage network interfaces

        connection - start, stop, and manage network connections

wKiom1Xu1oqxgfCrAAHdOYhDfa8814.jpg

   如何修改IP地址等屬性:

        #nmcli connection modify IFACE [+|-]setting.property value

           setting.property:

                ipv4.addresses

                ipv4.gateway

                ipv4.dns1

                ipv4.method

                  manual

[root@localhost ~]# nmcli connection modify eth0 +ipv4.addresses 172.16.100.12/16

wKioL1Xu4KbzL5Q7AARGmsFPjf8580.jpgwKiom1Xu3rPAL2xWAALvWgnpjLI803.jpg

網絡接口配置tui工具:nmtui


主機名稱配置工具:hostnamectl

    status

    set-hostname


粵ICP備10043721號
蟬知 蟬知6.0