網絡總結

linux 網絡配置


linux的網絡服務是由內核提供。

網卡在內核看來就是個設備,各種網絡配置不在網卡上。各種配置都是針相應網絡管理程序使用的。

不同發行版的網絡管理工具也是不一樣(net-tools/iproute)。網絡服務的管理程序(守護進程)也是不一樣(腳本/程序)。

網絡管理工具是將用戶的設定直接傳遞給內核的網絡服務,及時有效。

很多管理工具可以及時生效,都是對內核操作,一般只有管理員有權限。修改配置用文件永久有效,但是不是及時生效,可重啟網絡服務或主機。

  • 網絡管理工具

  • 網絡配置文件

  • 網絡服務

  • 網卡別名


centos網絡管理工具

net-tools

[root@centos7 ~]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@centos7 ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.17.20131004git.el7.x86_64
[root@centos7 ~]# rpm -ql net-tools

/bin/netstat
/sbin/arp
/sbin/ether-wake
/sbin/ifconfig
/sbin/ipmaddr
/sbin/iptunnel
/sbin/mii-diag
/sbin/mii-tool
/sbin/nameif
/sbin/plipconfig
/sbin/route
/sbin/slattach

iproute 出現的目的是代替net-tools

/usr/sbin/arpd
/usr/sbin/bridge
/usr/sbin/cbq
/usr/sbin/ctstat
/usr/sbin/genl
/usr/sbin/ifcfg
/usr/sbin/ifstat
/usr/sbin/ip
/usr/sbin/lnstat
/usr/sbin/nstat
/usr/sbin/routef
/usr/sbin/routel
/usr/sbin/rtacct
/usr/sbin/rtmon
/usr/sbin/rtpr
/usr/sbin/rtstat
/usr/sbin/ss
/usr/sbin/tc

命令行下的字符界面管理工具

setuptool

命令 setup

/e> tc/setuptool.d/98netconfig

/etc/setuptool.d/98system-config-authentication
/etc/setuptool.d/98system-config-display
/etc/setuptool.d/98system-config-keyboard
/etc/setuptool.d/99Xconfigurator
/etc/setuptool.d/99authconfig
/etc/setuptool.d/99kbdconfig
/etc/setuptool.d/99mouseconfig
/etc/setuptool.d/99ntsysv
/etc/setuptool.d/99printconf-tui
/etc/setuptool.d/99sndconfig
/etc/setuptool.d/99system-config-firewall-tui
/etc/setuptool.d/99system-config-network-tui
/etc/setuptool.d/99timeconfig
/usr/bin/setup
/usr/sbin/setup


centos網絡配置文件

配置文件可手動修改(vim)也可以使用命令修改。

可修改配置文件的命令

centos6:system-config-network(setup);cenos7:nmtul

接口配置文件

路由配置文件

hosts主機名稱解析配置文件

網絡接口的配置文件(網卡)

/etc/sysconfig/network-scripts/ifcfg-INTERFACE

IP、MASK、GW、DNS相關配置
該文件通過大量參數來定義接口的屬性;其可通過vim等文本編輯器直接修改,也可以使用專用的命令修改,(centos6:system-config-network(setup),cenos7:nmtui)

添加設備后,需要啟動該設備,可以手動創建配置文件,或者使用命令 setup/nmtul

一個網絡接口可以設置多個ip,需要使用別名(lable)。

setup 文字圖形界面

[root@centos7 ~]# rpm -qf /usr/bin/setup
setuptool-1.19.11-8.el7.x86_64

nmtui(文字圖形界面)/nmcli—-是工具軟件

[root@centos7 ~]# rpm -qf /usr/bin/nmcli
NetworkManager-1.0.6-27.el7.x86_64

路由配置文件

/etc/sysconfig/network-scripts/rote-INTERFACE
要用到非默認網關路由,支持兩種配置風格,不可混用。

1)每行一個路由條目
    目標地址 via 下一跳

2)每三行一個路由條目,#為序號
    ADDRESS#=
    NETMASK#=
    GATEWAY#=

修改配置文件不會立即生效,需要重啟網絡服務才能生效。

DNS配置文件

/etc/resolv.conf
[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

主機名配置文件

/etc/sysconfig/network

    本地主機houstname配置文件/etc/sysconfig/network
    格式    HOSTNAME=mageedu.com
修改主機名配置文件后,只有重新開啟新終端,或重啟服務器才可以生效。或使用命令修改

實例:

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

hosts配置文件—–解析其他其他主機用的

本地解析器

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

網絡服務

隨系統啟動,啟動后讀取配置文件,將網絡配置的參數傳遞給內核。

centos5、6都使用network服務
centos6還是用NetManager服務(但是不穩定,不建議使用,在網卡配置文件中可以禁止使用該服務。)NeworkManager是管理和監控網絡設置的守護進程

centos7使用NetworkManager 也支持使用network
修改了配置文件,要重啟網絡服才能立即生效。

服務管理

centos6:service SERVICE {start|stop|restart|status}

centos7:也支持使用service
實際使用的是 systemctl {start|stop|restart|status} SERVICE[.service]

查看開啟了那些服務

[root@centos7 ~]# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off

網絡設備名稱

網絡管理軟件一般都是針對網卡名稱,對網卡操作。所以網卡名稱很關鍵。在配置文件中也不要寫錯。

網卡設備名稱,類似硬盤的/dev/sda…的作用。不應該有重名的

網卡別名

一個網絡接口可以配置多個ip,對虛擬主機有用
有多個ip地址的網絡接口,對應的設備及ip要有lable(別名),ifconfig才能夠識別。

使用命令配置網卡別名

將多個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

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

eth0, eth1這些名稱是怎么來的呢?

內核發現一個pci網卡設備,調用網卡驅動的probe函數。
probe函數在做完一定的初始化之后,會調用內核接口register_netdev向內核注冊一個新的net_device設備。

這個設備的名字,網卡驅動程序往往只決定其中一部分。
就像下面這種方式,網卡驅動提供一個“eth%d”這樣的名稱,然后調用內核接口register_netdev。
strcpy(netdev->name, "eth%d");
register_netdev(netdev);
register_netdev流程中,會根據系統中已有的接口情況,找出一個最小的還沒有使用的數字編號,分給新注冊的網卡。
比如,系統中當前有,eth0, eth2, eth3三塊網卡。
那么新注冊的網卡,名字就是eth1了。
當然,網卡驅動也可以提供完整的名字,但必須保證名字與現有網卡不沖突。
這在驅動中就不好實現了。而且,一個驅動程序,可能會驅動很多塊網卡,怎么起名字,都是個問題。
最后,用戶態程序,可以通過ioctl系統調用,去修改網卡的名稱。
Linux中總線、設備、驅動這3者是非常重要的數據結構,它們互相之間都有聯系一旦一個設備和一個驅動能夠匹配上,就會執行驅動里的probe。

prpbe 探針

總之一句話,probe函數作為driver的最基本的函數指針,一旦你的device和driver匹配(match,由總(bus)來完成,匹配工作發生在device_register()和drvier_register()的時候),probe函數就肯定會被調用;而probe的參數,pci里是struct pci_dev *pdev ,這個是由linux內核啟動時遍歷pci總線后得到的pci設備的描述符。

probe調用期間一般會完成device的初始化,注冊中斷等操作。

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

(0)
yywyyw
上一篇 2016-09-09
下一篇 2016-09-09

相關推薦

  • 計算機基礎

    計算機系統 計算機系統由兩大部分組成硬件系統(Hartware)和軟件系統(Software) 硬件系統:主要由中央處理器、存儲器、輸入輸出控制系統和各種外部設備組成。中央處理器是對信息進行高速運算處理的主要部件,其處理速度可達每秒幾億次以上操作。存儲器用于存儲程序、數據和文件,常由快速的主存儲器(容量可達數百兆字節,甚至數G字節)和慢速海量輔助存儲器(容量…

    Linux干貨 2017-05-20
  • Linux系統常用命令介紹

    [root@alibaba ~]# ifconfig?#查看或者配置網絡適配器的接口信息 eth0????? Link encap:Ethernet? HWaddr 00:16:3E:0A:7B:2A inet addr:172.18.10.115? Bcast:172.18.15.255? Mask:255.255.240.0 [root@alibaba …

    Linux干貨 2018-03-04
  • N22-第2周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 cd、pwd、ls、alias、cat、more、less、tail、cut、wc、touch、mv、cp、rm pwd:用戶當前所在目錄 [xuc@localhost ~]$ pwd /home/xuc cd:切換目錄  cd  [/PATH…

    Linux干貨 2016-08-22
  • 使用monit搭建一個監控系統

     上周用monit搭建或者說定制了一個監控系統,來監控服務器發生事情。當然了主要是監控異常,因為我們的產品屬于服務器類型,很多進程都daemon,要不停的運行。我們搭建監控目的不過是出現問題能夠及時的知道,平時可從web UI上看到整個系統的狀況,同時它本身要輕量級,不要影響性能。當然了類似的產品很多了,比如Ganglia,我在老科長波哥曾經搭建過…

    Linux干貨 2015-02-15
  • ?rsyslog

    rsyslog 概述 rsyslog支持的facility與priority facility:設施、信道: priority:級別 rsyslog程序 配置文件 配置日志記錄級別和路徑 配置日志記錄在遠程rsyslog server rsyslog server端 rsyslog client端 測試遠程服務器是否記錄日志 rsyslog記錄在MySQL中…

    Linux干貨 2016-10-16
  • 集群-ipvsadm和NAT實驗(3)

    糾正:報文進入內核空間后,當到達input鏈時發現是一個集群服務時,則直接發送到postrouting鏈,不經過forward鏈。 調度算法: 1、靜態方法: rr:輪詢,即依照次序從所有RS中進行挑選 wrr:加權輪詢,按照權重在RS中進行輪詢 sh:source hashing,源地址哈希,即對來自相同客戶端的請求發送至同一RS,這樣會破壞負載均衡效果。…

    Linux干貨 2015-12-15
欧美性久久久久