ifconfig講解(ip地址)
如果檢視ip地址,window上是ipconfig,linux上是ifconfig
linux上還有其他命令檢視ip地址嗎,答案是ip addr
ifconfig和ipaddr區別
這是一個有關 net-tools 和 iproute2 的“歷史”故事
net-tools起源於BSD,自2001年起,Linux社群已經對其停止維護,而iproute2旨在取代net-tools,並提供了一些新功能。一些Linux發行版已經停止支援net-tools,只支援iproute2。
net-tools通過procfs(/proc)和ioctl系統呼叫去訪問和改變核心網路配置,而iproute2則通過netlink套接字介面與核心通訊。
雖然取代意圖很明顯,但是這麼多年過去了,net-tool依然還在被廣泛使用
ipaddr輸出介紹
[[email protected]:~]$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 18:66:da:4d:26:f9 brd ff:ff:ff:ff:ff:ff inet 221.228.75.244/25 brd 221.228.75.255 scope global em1 3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 18:66:da:4d:26:fa brd ff:ff:ff:ff:ff:ff inet 172.16.20.244/16 brd 172.16.255.255 scope global em2 4: em3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 18:66:da:4d:26:fb brd ff:ff:ff:ff:ff:ff 5: em4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 18:66:da:4d:26:fc brd ff:ff:ff:ff:ff:ff
這個命令顯示了這臺機器上所有的網絡卡。大部分的網絡卡都會有一個 IP 地址,當然,這不是必須的。可參考上面輸出
inet:ip地址+網路號位數
在 IP 地址的後面有個 scope,global,說明這張網絡卡是可以對外的,可以接收來自各個地方的包。對於 lo 來講,是 host,說明這張網絡卡僅僅可以供本機相互通訊。lo 全稱是 loopback,又稱環回介面,往往會被分配到 127.0.0.1 這個地址。這個地址用於本機通訊,經過核心處理後直接返回,不會在任何網路中出現
link/ether:mac地址,用十六進位制,6 個 byte 表示
網路裝置狀態標識(net_device flags)
UP 表示網絡卡處於啟動的狀態;BROADCAST 表示這個網絡卡有廣播地址,可以傳送廣播包;MULTICAST 表示網絡卡可以傳送多播包;LOWER_UP 表示 L1 是啟動的,也即網線插著呢。MTU1500 是指什麼意思呢?是哪一層的概念呢?最大傳輸單元 MTU 為 1500,這是乙太網的預設值
網路包是層層封裝的。MTU 是二層 MAC 層的概念。MAC 層有 MAC 的頭,乙太網規定連 MAC 頭帶正文合起來,不允許超過 1500 個位元組。正文裡面有 IP 的頭、TCP 的頭、HTTP 的頭。如果放不下,就需要分片來傳輸
qdisc:全稱是 queueing discipline,中文叫排隊規則。核心如果需要通過某個網路介面傳送資料包,它都需要按照為這個介面配置的 qdisc(排隊規則)把資料包加入佇列。
最簡單的 qdisc 是 pfifo,它不對進入的資料包做任何的處理,資料包採用先入先出的方式通過佇列。pfifo_fast 稍微複雜一些,它的佇列包括三個波段(band)。在每個波段裡面,使用先進先出規則。
三個波段(band)的優先順序也不相同。band 0 的優先順序最高,band 2 的最低。如果 band 0 裡面有資料包,系統就不會處理 band 1 裡面的資料包,band 1 和 band 2 之間也是一樣。
資料包是按照服務型別(Type of Service,TOS)被分配到三個波段(band)裡面的。TOS 是 IP 頭裡面的一個欄位,代表了當前的包是高優先順序的,還是低優先順序的