網絡管理

網絡管理

本章內容

網絡概念
OSI模型
網絡設備
TCP/IP
IP地址
配置網絡
實現網絡組
測試網絡
網絡工具

為linux網卡配置ip地址,不是給網卡配置地址,是給內核的網絡功能配置,地址是屬于內核。
為內核配置即時生效,修改配置文件,是永久生效。
ifconfig 配置信息,會立即生效,但是重啟網絡服務或主機,都失效。
網絡服務
/etc/init.d/network {start|restart|stop|sataus}
centos6 service NetworkManager status
是centos6默認的網絡服務腳本。不建議使用NetworkManager該服務。不穩定。

linux網絡屬性配置
命令,配置文件
centos6還支持使用文本界面修改網絡配置文件,
setup
system-config-network-tui

配置方式
靜態指定
命令
ifcfg家族
ifconfig:配置ip,netmask
route:路由
netstat:狀態及統計數據查看

        iproute2家族
            ip OBJECT
                addr:地址和掩碼
                link:接口
                route:路由
            ss狀態及統計數據查看

        nm家族(centos7才可以使用)
            nmcli:命令行工具
            nmtul:text window 工具

    配置文件
        etc/sysconfig/network-scripts/

動態分配:依賴于本地網絡中的DHCP服務

基本網絡配置

將Linux主機接入到網絡,需要配置網絡相關設置。
一般包括如下內容:
    主機名
    IP/mask
    路由:默認網關
    DNS服務器
        主DNS服務器
        次DNS服務器
        第三DNS服務器

網絡配置方式

靜態指定:
    ifcfg: ifconfig, route, netstat
    ip: object {link, addr, route}, ss, tc
    system-config-network-tui(setup)
    配置文件
    CentOS 7:新增工具:nmcli, nmtui
動態分配:
    DHCP: Dynamic Host Configuration Protocol

配置網絡接口

接口命名方式:CentOS 6:
    以太網:eth[0,1,2,...]
    ppp:ppp[0,1,2,...]

ifconfig命令
    ifconfig[interface]
        # ifconfig -a   顯示所有接口包括未激活狀態的
        # ifconfig IFACE [up|down] 關閉或激活網卡
    ifconf iginterface [aftype] options | address ...
        # ifconfig IFACE IP/mask [up] 配置ip并激活可以是掩碼長度表示掩碼
        # ifconfig IFACE IP netmask MASK 使用點分十進制表示掩碼
    注意:立即生效;立即送往內核中的TCP/IP協議棧

    option
        啟用混雜模式:[-]promisc 接收網絡中的任意報文。

還可以配置ipv6地址

路由管理命令

查看:route -n

添加:route add
    route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]

目標: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 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

默認路由,網關:172.16.0.1
    # route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
    # route add default gw172.16.0.1

刪除:route del
    route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]

目標:192.168.1.3 網關:172.16.0.1
    # route del -host 192.168.1.3

目標:192.168.0.0 網關:172.16.0.1
    # route del -net 192.168.0.0 netmask 255.255.255.0

route所有的改動重啟網絡服務或主機后失效。

配置動態路由

通過守護進程獲取動態路由
    ?安裝quagga包,支持多種格式的RIP、OSPF和BGP
    ?命令vtysh配置

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

顯示路由表:
    netstat{--route|-r} [--numeric|-n]
    -r: 顯示內核路由表
    -n: 數字格式

顯示接口統計數據:
    netstat{--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
    # netstat-i
    # netstat-IIFACE

ip命令

配置Linux網絡屬性:ip命令
ip-show / manipulate routing, devices, policy routing and tunnels
    ip[ OPTIONS ] OBJECT { COMMAND | help }
    OBJECT := { link | addr| route }
    iplink -network device configuration
        set dev IFACE
            可設置屬性:
                up and down:激活或禁用指定接口
                ifup/ifdown
        show [dev IFACE]:指定接口
            [up]:僅顯示處于激活狀態的接口

ip addr{ add | del } IFADDR dev STRING
    [label LABEL]:添加地址時指明網卡別名
    [scope {global|link|host}]:指明作用域
        global: 全局可用;
        link: 僅鏈接可用;
        host: 本機可用;
    [broadcast ADDRESS]:指明廣播地址

ipaddress show -look at protocol addresses
    [dev DEVICE]
    [label PATTERN]
    [primary and secondary]

ipaddress flush -使用格式同show
ipaddr add 172.16.100.13/16 dev eth0 label eth0:0
ipaddr del 172.16.100.13/16 dev eth0 label eth0:0
ipaddr flush dev eth0 label eth0:0

iproute -routing table management
    添加路由:iproute add
    iproute add TARGET via GW dev IFACE srcSOURCE_IP
            TARGET:
                主機路由:IP
                網絡路由:NETWORK/MASK
        ip route add 192.168.0.0/24 via 172.16.0.1
        ip route add 192.168.1.13 via 172.16.0.1
        添加網關:iproute add default via GW dev IFACE
        ip route add default via 172.16.0.1

刪除路由:iproute delete
        iproute del TARGET

顯示路由:iproute show|list

清空路由表:iproute flush[dev IFACE] [via PREFIX]
    iproute flush dev eth0

ss命令

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

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

選項:
    -t: tcp協議相關
    -u: udp協議相關
    -w: 裸套接字相關
    -x:unixsock相關
    -l: listen狀態的連接
    -a: 所有
    -n: 數字格式
    -p: 相關的程序及PID
    -e: 擴展的信息
    -m:內存用量
    -o:計時器信息

FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
    tcpfinite state machine:
    LISTEN: 監聽
    ESTABLISHED:已建立的連接
    FIN_WAIT_1
    FIN_WAIT_2
    SYN_SENT
    SYN_RECV
    CLOSED
EXPRESSION:
    dport=
    sport =
    示例:’( dport= :sshor sport = :ssh)’
常用組合:
    -tan, -tanl, -tanlp, -uan

常見用法
ss -l 顯示本地打開的所有端口
ss -pl 顯示每個進程具體打開的socket
ss -t -a 顯示所有tcp socket
ss -u -a 顯示所有的UDP Socekt
ss -o state established '( dport = :smtp or sport = :smtp )' 顯所有已建立的SMTP連接
ss -o state established '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連接
ss -x src /tmp/.X11-unix/* 找出所有連接X服務器的進程
ss -s 列出當前socket詳細信息:

網絡配置文件

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


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

說明參考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
    DEVICE:關聯的設備名稱,要與文件名的后半部分保持一致
    HWADDR:對應的設備的MAC地址
    BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp
    NM_CONTROLLED:NM是NetworkManager的簡寫,此網卡是否接受NM控制;建議CentOS6為“no”
    IPADDR=ip地址
    NETMASK=子網掩碼
    GATEWAY=設定默認網關
    ONBOOT=開機時是否自動機會哦此網絡接口

    TYPE:接口類型;常見有的Ethernet, Bridge
    UUID:設備的惟一標識

    DNS1:第一個DNS服務器指向
    DNS2:第二個DNS服務器指向
    USERCTL:普通用戶是否可控制此設備
    PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
    dhcp和指定ip同時使用的話,優先使用dhcp獲取到的ip

路由配置文件
/etc/sysconfig/network-scripts/route-IFACE 注意名稱IFACE必須與網卡名稱一致。例如roue-eth0

格式如下
目的ip/網絡     via 下一跳
192.168.1.2/24 via 192.168.0.120

不會立即生效,但是重啟網絡服務或主機都會生效。

本地解析器

解析器執行正向和逆向查詢  ——————解析其他主機的主機名。
/etc/hosts
    ?本地主機名數據庫和IP地址的映像
    ?對小型獨立網絡有用
    ?通常,在使用DNS前檢查
    ?getent hosts 查看/etc/hosts 內容
配置文件格式,
192.168.1.1 www.mageedu.com www mage mageedu magedu
可設置主機名和多個別名。中間用空格隔開。
DNS解析過程,先訪問本地hosts文件,文件中沒有才組查找DNS配置文件(resolv.conf)

修改主機名

    使用命令hostname HOSTNAME更改主機名,立即有效但是不會永久有效。
    本地主機houstname配置文件/etc/sysconfig/network
    格式    HOSTNAME=mageedu.com
修改主機名配置文件后,只有重新開啟新終端,或重啟服務器才可以生效?;蚴褂妹钚薷?

實例:
    [root@centos6 ~]# cat /etc/sysconfig/network  ###centos6
    NETWORKING=yes  ###是否開啟網絡服務
    HOSTNAME=yangyouwei.centos6
    GATEWAY=           ###也可以定義網關,范圍是全局的。但是同時網卡的配置文件也定義了網關,那么只是網卡的網關生效。

dns名字解析
最多添加三個,ifconfig中PEERDNS=no才可以使用此配置文件
[root@centos7 ~]# cat /etc/resolv.conf

# Generated by NetworkManager
search magedu.com localdomain
nameserver 10.1.0.1
nameserver 192.168.154.1

/etc/nsswitch.conf
與/etc/hosts相比優先于DNS

正解:FQDN-->IP
    # dig -t A FQDN
    # host -t A FQDN

反解:IP-->FQDN
    # dig -x IP
    # host -t PTR IP

/etc/sysconfig/network-scripts/route-IFACE
    ?注意:需service network restart生效
    ?兩種風格:
        (1) TARGET via GW
        (2) 每三行定義一條路由
        ADDRESS#=TARGET
        NETMASK#=mask
        GATEWAY#=GW

網卡別名

對虛擬主機有用

將多個IP地址綁定到一個NIC上,別名的網卡不能使用DHCP服務。必須手動配置地址。
    eth0:1
    eth0:2
    eth0:3

ifconfig命令:
    ifconfig eth0:0 192.168.1.100/24 up

ip命令:
    ip addr add 172.16.1.2/16 dev eth0
    ip addr add 172.16.1.1/16 dev eth0 label eth0:0
    ip addr del 172.16.1.1/16 dev eth0 label eth0:0
    ip addr flush dev eth0 label eth0:0

為每個設備別名生成獨立的接口配置文件
    ?關閉NetworkManager服務
    ?ifcfg-ethX:xxx
    ?必須使用靜態聯網
        DEVICE=eth0:0
        IPADDR=10.10.10.10
        NETMASK=255.0.0.0
        ONPARENT=yes
注意:service network restart 生效
參考/usr/share/doc/initscripts-*/sysconfig.txt

Linux網絡屬性配置的tui(text user interface):
    system-config-network-tui
    setup
    注意:記得重啟網絡服務方能生效
配置當前主機的主機名:
    hostname [HOSTNAME]
    /etc/sysconfig/network
    HOSTNAME=

網絡接口識別并命名相關的udev配置文件:
    /etc/udev/rules.d/70-persistent-net.rules
    卸載網卡驅動:
        modprobe-r e1000
    裝載網卡驅動:
        modprobe e1000

網絡接口配置-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接口上傳送所有的報文。本模式提供容錯能力。

Bonding配置

    創建bonding設備的配置文件

    /etc/sysconfig/network-scripts/ifcfg-bond0
        DEVICE=bond0
        BOOTPROTO=none
        BONDING_OPTS=“miimon=100 mode=0”

    /etc/sysconfig/network-scripts/ifcfg-eth0
        DEVICE=eth0
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=no


    miimon是用來進行鏈路監測的。如果miimon=100,那么系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
    ?查看bond0狀態:/proc/net/bonding/bond
    ?關于bonding的詳細配置請參照
    /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

CentOS 7網絡屬性配置

rhel6之前,網絡接口使用連續號碼命名:eth0、eth1等,當增加或刪除網卡時,名稱可能會發生變化。

rhel7使用基于硬件,設備拓撲和設置類型命名:

(1) 網卡命名機制
    systemd對網絡設備的命名方式
    (a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據此索引進行命名,例如eno1
    (b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據此索引進行命名,例如ens1
    (c) 如果硬件接口的物理位置信息可用,則根據此信息進行命名,例如enp2s0
    (d) 如果用戶顯式啟動,也可根據MAC地址進行命名,enx2387a1dc56;
    (e) 上述均不可用時,則使用傳統命名機制

網卡名稱

基于BIOS支持biosdevname中
內置網卡:em1,em2
pci卡:pYpXY:slot ,X:port

(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="net.ifnames=0 rhgbquiet"
    或:修改/boot/grub2/grub.cfg
    (2) 為grub2生成其配置文件
    grub2-mkconfig -o /etc/grub2.cfg
    (3) 重啟系統

nmcli命令

地址配置工具:nmcli

nmcli[ OPTIONS ] OBJECT { COMMAND | help }
    device -show and manage network interfaces
    nmclidevice help
    connection -start, stop, and manage network connections
    nmcliconnection help

修改IP地址等屬性:
    #nmcliconnection modify IFACE [+|-]setting.propertyvalue
        setting.property:
        ipv4.addressesipv4.gateway
        ipv4.dns1 ipv4.methodmanual | dhcp

修改配置文件執行生效:systemctlrestart network
nmclicon reload

nmcli命令生效:nmclicon down eth0 ;nmclicon up eth0

相關工具

網絡接口配置tui工具:nmtui

主機名稱配置工具:hostnamectl
    status
    set-hostname

使用nmcli配置網絡

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

設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接配置生效。

顯示所有包括不活動連接
    nmclicon show

顯示所有活動連接
    nmclicon show –active

顯示網絡連接配置
    nmclicon show "System eth0“

顯示設備狀態
    nmclidev status

顯示網絡接口屬性
    nmclidev show eno16777736

創建新連接default,IP自動通過dhcp獲取
    nmclicon add con-name default type Ethernet ifnameeth0

刪除連接
    nmclicon del default

創建新連接static ,指定靜態IP,不自動連接
    nmcticon add con-name static ifnameeth0 autoconnectno type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254

啟用static連接配置
    nmclicon up static

啟用default連接配置
    nmclicon up default

查看幫助
    nmclicon add help

修改連接設置
    nmclicon mod“static” connection.autoconnectno
    nmclicon mod “static” ipv4.dns 172.25.X.254
    nmclicon mod “static” +ipv4.dns 8.8.8.8
    nmclicon mod “static” -ipv4.dns 8.8.8.8
    nmclicon mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
    nmclicon mod “static” +ipv4.addresses 10.10.10.10/16

網絡管理

nmclicon mod ifcfg-* 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254” IPADDR0=192.0.2.1 PREFIX0=24 GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnectyes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .

設備配置被保存在文本文件中
?/etc/sysconfig/network-scripts/ifcfg-
?幫助文檔列出完整選項列表:/usr/share/doc/initcripts-*/sysconfig.txt

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

(0)
yywyyw
上一篇 2016-09-05 08:48
下一篇 2016-09-05 08:48

相關推薦

  • Linux基礎

    一、計算機組成及其功能 ENIARC: CPU:運算器、控制器、寄存器、緩存 存儲器:內存,RAM(Random Access Memory)         Input:下指令,提供數據等; Output:輸出數據加工的結果;  程序:指令+數據 算法+數據結構&nb…

    Linux干貨 2016-10-30
  • vim及腳本

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#。     第一步:     [root@localhost ~]# cp /etc/rc.d/rc.sy…

    Linux干貨 2016-12-02
  • N25第二周視頻作業:用戶、組與權限管理詳解

    此篇博客是根據視頻要求寫的,因為馬哥在視頻中說了,用戶組、權限在linux運維過程中比較重要,所以一定要深入學習 首先,先介紹一下用戶、組與權限是什么:     用戶:用戶時指你在服務器上的標識,通過不同類型的用戶,你享受到不同的待遇,而待遇就是權限的大小。每個用戶在服務器上都有唯一的id標識,即使你將此用戶刪除,再建…

    Linux干貨 2016-11-26
  • shell腳本編程3

    補充,shift使用方法 root@localhost wang]# cat jiaoben1.sh  #!/bin/bash echo "$1" echo "$*" shift echo "$1" echo &quot…

    Linux干貨 2016-08-24
  • 第七周-磁盤管理、RAID及Shell腳本練習

    一、創建一個10G分區,并格式為ext4文件系統; (1)、 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2)、掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@N1 ~]# mkfs.ext4 -b 2048 -m 2 -L MYDATA /…

    Linux干貨 2017-08-13
  • 安全和加密

    安全基礎仿冒別人給某人發郵件telnet 127.0.0.1 25helo a.com 命令mail from:god@heaven.com 從某處發來的郵件rcpt to:root 給某人發郵件data 數據subject:hello 郵件名I miss you 郵件正文How old are you. 點代表結束quit redhat5普通用戶提升管理員…

    Linux干貨 2018-01-17
欧美性久久久久