跨網絡通信
跨網絡通信需要借助路由器,而路由器根據路由表路徑來轉發資料
路由分類
主機路由
網絡路由
預設路由
路由有優先級:精度越高,優先級越高
路由表構成

Destination Gateway Genmask Flags Metric Ref Use Iface
目标位址 網關 掩碼 優先級 接口
目标:資料包發送的目标路徑
網關
1、直連:不需要配置
2、非直連:下一跳位址(下一個路由器鄰近本路由器的接口位址)
掩碼:目标位址對應的掩碼
接口:本路由器的出口
基本網絡配置
将Linux主機接入到網絡,需要配置網絡相關設定
一般包括如下内容
主機名hostname
IP/Netmask
路由route:預設網關
DNS伺服器
主DNS伺服器
次DNS伺服器
第三DNS伺服器
網卡管理
檢視網卡工作模式
mii-tool -v IFACE
檢視網卡驅動
dmesg | grep -i IFACE
ethtool -i IFACE
解除安裝網卡驅動
modproble -r e1000
rmmod e1000
裝載網卡驅動
modproble e1000
網卡名稱
centos6
網絡接口使用連續号碼命名:eth0、eth1等,當增加或删除網卡時,名稱可能會發生變化
以太網:eth[0,1,2,...]
ppp:ppp[0,1,2,...]
網絡接口識别并命名相關的udev配置檔案:
/etc/udev/rules.d/70-persistent-net.rules
centos7
CentOS 7使用基于硬體,裝置拓撲和設定類型命名:
一、網卡命名機制:systemd對網絡裝置的命名方式
1、Firmware或BIOS為主機闆上內建的裝置提供的索引資訊可用,且可預測則根據此索引進行命名,例如eno1
2、Firmware或BIOS為PCI-E擴充槽所提供的索引資訊可用,且可預測,則根據此索引進行命名,例如ens1
3、硬體接口的實體位置資訊可用,則根據此資訊進行命名,例如enp2s0
4、使用者顯式啟動,也可根據MAC位址進行命名,enx2387a1dc56
5、 上述均不可用時,則使用傳統命名機制
基于BIOS支援啟用biosdevname軟體
内置網卡:em1,em2
pci卡:pYpXY:slot ,X:port
二、 名稱組成格式
en: Ethernet 有線區域網路
wl: wlan無線區域網路
ww: wwan無線廣域網
名稱類型:
o<index>: 內建裝置的裝置索引号
s<slot>: 擴充槽的索引号
x<MAC>: 基于MAC位址的命名
p<bus>s<slot>: enp2s1
修改網卡命名方式為傳統指令方式
1、修改/etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg
2、修改/etc/grub2.cfg --> /etc/grub2/grub.cfg
linux 16 行的行尾添加net.ifnames=0
設定主機名
centos6
hostname [HOSTNAME] 臨時生效
永久有效:/etc/sysconfig/network
存放網關和主機名
修改網關,在下一次重新開機生效
修改主機名後執行hostname newhostname 生效
注意:如果hostname檔案和網卡配置檔案都有網關,網卡配置檔案優先生效
centos7
hostname [HOSTNAME] 臨時生效
永久有效:/etc/hostname
直接存放主機名
hostnamectl set-hostname newhostname 修改配置檔案并生效
設定DNS
/etc/resolv.conf
nameserverDNS_SERVER_IP1
nameserverDNS_SERVER_IP2
nameserverDNS_SERVER_IP3
/etc/hosts 本地主機名資料庫和IP位址映射
hosts檔案優先級高于resolv.conf檔案
注意:建議修改主機名後把新主機名添加到此檔案;搭好網站後,在hosts檔案中位址指向自己
/etc/nsswitch.conf
可修改hosts檔案優先級;交換files和dns位置即可
IP 管理相關指令
ifconfig指令
檢視
ifconfig [IFACE] 顯示活動的接口清單
ifconfig -a 顯示所有接口清單
ifconfig -s [IFACE] 顯示網卡接收資訊
啟用禁用網卡
ifconfig IFACE down | up
ifdown | ifup IFACE 注意:此指令依賴于配置檔案,配置檔案得事先存在
設定IP位址
ifconfig IFACE IP/mask | IP netmask
ifconfig IFACEALIAS IP/netmask 網卡别名設定位址
啟用混雜模式
[-]promisc
ip指令
ip a | add | address 顯示IP位址,網絡層資訊
ip link show | list [IFACE] 顯示資料鍊路層資訊
禁用或啟用網卡
ip link set IFACE down | up
添加IP位址
ip a a IP/mask device IFACE
ip a a IP device IFACE label ALIASIFACE
ip a a IP dev IFACE scpe{global|link|host}指明作用域
global:全局可用
link:僅連結可用
host:本機可用
删除IP位址
ip a del IP dev IFACE
ip a flush dev IFACE 清空IP位址
路由管理
檢視路由表
ip route show | list
添加路由
ip route add TARGET via GW dev IFACE
删除路由
ip route del TARGET via GW dev IFACE
ip route flush dev IFACE 清空路由表
注意:iP指令添加的位址隻能用ip指令可以檢視到
route 路由管理指令
檢視路由表
route -n
添加路由
route add -host IP GW IP dev IFACE 主機路由
route add -net IP/32 GW IP dev iFACE
route add -net IP/mask GW IP [dev IFACE] 網絡路由
route add -net IP netmask GW IP [dev IFACE]
route add default GW IP 預設路由
route add -net 0.0.0.0 netmask 0.0.0.0
删除路由
route del -host IP
route del -net IP netmask
route del default gw IP
使用指令管理路由是臨時生效,永久生效需寫配置檔案
路由配置檔案
/etc/sysconfig/network-scripts/route-IFACE
格式
一、TARGET via GW
二、每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
重新開機網絡服務後配置檔案生效 service network restart
注意:如果有兩條預設路由,和外網通訊時會有故障,建議寫一條預設路由
Linux預設不轉發路由,開啟路由轉發功能
echo 1 > /proc/sys/net/ipv4/ip_forward
跟蹤路由
traceroute IP
tracepath IP
mtr 動态跟蹤
網絡配置檔案
IP,MASK,GW,DNS相關配置檔案
/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE 此配置檔案應用到的裝置
ONBOOT=yes|no 是否開機自動啟動
BOOTPROTO=dhcp|static|none|bootp 激活此裝置時使用的位址配置協定
IPADDR 指明IP位址
NETMASK | PREFIX 子網路遮罩,可用CIDR表示法
TYPE=ethernet|bridge 接口類型
GATEWAY 預設網關
DNS1 主DNS伺服器
DNS2 次DNS伺服器
HWADDR 對應裝置的MAC位址
MACADDR 自己指定的MAC位址
UUID 裝置的唯一辨別
USERCTL 普通使用者是否可控制此裝置
PEERDNS 如果BOOTPROTO的值為“dhcp”,是否允許dhcp server配置設定的dns伺服器指向資訊直接覆寫至/etc/resolv.conf檔案中
NM_CONTROLLED=yes|no NM是NetworkManager,此網卡是否接受NM控制;建議centos6為No
檢視網絡系統狀态資訊相關指令
netstat 指令
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 相關
-a:所有
-l:處于Listen狀态
-n:數字格式顯示
-e:顯示擴充資訊
-p:顯示相關程序及PID
-nr:顯示路由表
netstat -i 顯示所有接口統計資訊
-IIFACE | -I=IFACE 顯示指定接口統計資訊
常用組合
netstat -tan,-uan,-tanp,-tnl,-unl
ss 顯示處于活動狀态的套接字資訊
ss [ OPTIONS ] [ FILTER ]
-t:TCP協定相關
-u:UDP協定相關
-w:裸套接字相關
-x:Unix sock相關
-l:listen狀态的連接配接
-n:資料格式
-p:相關程式及PID
-e:擴充資訊
-m:記憶體資訊
-o:計時器資訊
常用組合
ss -l,-pl 顯示本地打開的所有端口相關資訊
ss -ta,-tan,tnl,-tanl,-tanlp 顯示tcp協定相關資訊
ss -ua,-uan,unl 顯示udp協定相關資訊
ss -o state established '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連接配接
ss -s 顯示目前socket詳細資訊
nmcli 位址配置工具
nmcli 位址配置工具
檢視
nmcli connection show [IFACE] 顯示所有連接配接
nmcli dev status 顯示所有裝置狀态
nmcli connection show --active 顯示所有活動連接配接
啟用或禁用網卡
nmcli connection IFACE up | down
nmcli dev disconnect IFACE 斷開連接配接
nmcli dev connect IFACE 連接配接
建立新連接配接
nmcli connection add con-name aaa type ethernet ifname ens38 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1/24 ipv4.dns 114.114.114.114 autoconnect yes
修改連接配接設定
nmcli connection mod IFACE [+|-]setting.property value
+ipv4.addresses ipv4.gateway
ipv4.dns1 ipv4.method:manual | auto
啟用或禁用連接配接
nmcli connection up IFACE
nmcli connection down IFACE
重新加載配置檔案
nmcli connection reload
網卡别名
在一個網卡上綁定多個IP位址
一、指令臨時綁定
ifconfig IFACEALIAS IP/mask
ifconfig eth0:0 192.168.1.254/24
ip address add IP/mask dev IFACE label IFACE
ip a a 192.168.1.254/24 dev ens33 label ens33:0
nmcli connection mod IFACE +ipv4.address IP IP
删除
ifconfig eth0:0 down
ip a del 192.168.1.254/24 dev ens33:0
nmcli connection mod IFACE -ipv4.address IP
二、寫配置檔案
1、寫多個配置檔案
cat > ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=192.168.1.254
PREFIX=24
cat > ifcfg-eth0:2
service NetworkManager stop
service network restart
注意:寫完配置檔案後需重新開機服務;Centos6上需關閉NetworkManager服務
2、一個配置檔案裡寫多個位址
cat > ifcfg-ens33
DEVICE=ens33
BOOTPROTO=none
IPADDR=192.168.30.7
NETMASK=255.255.255.0
IPADDR1=192.168.30.71
NETMASK1=255.255.255.0
注意:網卡别名必須使用靜态位址,不可使用DHCP
Linux網絡配置工具:字元配置工具
setup
nmtui
多個網卡上綁定一個IP位址
centos6:Bonding
将多塊網卡上綁定一個IP位址對外提供服務,可實作高可用或負載均衡;虛拟一塊網卡對外提供連接配接,實體網卡被修改為相同的MAC位址
Bonding工作模式
Mode 0(balance-rr) 輪轉政策
從頭到尾順序的在每一個slave接口上面發送資料包;提供負載均衡和容錯能力
Mode 1(active-backup) 活動備份(主備)政策
隻有一個slave被激活,當且僅當活動的slave接口失敗時才會激活其它slave;
為了避免交換機發生混亂此時綁定的MAC位址隻有一個外部端口上可見
Mode 3 (broadcast)廣播政策
在所有slave接口上傳送所有封包,提供容錯能力
配置
1、建立bonding配置檔案
把要綁定的網卡設為同一模式
2、建立實體網卡配置檔案
3、重新開機網絡服務
注意:centos6在重新開機網絡服務之前需關閉NetworkManager
檢視bond狀态
cat /proc/net/bonding/bond0
1、禁用bond0接口,解除安裝bond驅動
2、删除配置檔案
nmcli指令配置Bonding
1、添加bonding接口
nmcli connection add type bond con-name mybond0 ifname mybond0 mode active-backup ipv4.method manual ipv4.address 192.168.30.128/24
2、添加從屬接口
nmcli connection add type bond-slave con-name boud0-ens33 ifname mybond0 master mybond0
nmcli connection add type bond-slave con-name boud0-ens37 ifname mybond0 master mybond0
3、啟動從屬接口
nmcli connection up bond0-ens33
nmcli connection up bond0-ens37
4、啟動綁定
nmcli connection up mybond0
centos7:網絡組Networking Teaming
将多個網卡聚合到一起,進而實作冗錯和高吞吐量
實作方法
1、建立team組接口
nmcli connection add type team con-name team0 config '{"runner":{"name":"broadcast"}}' ifname team0 ipv4.method manual ipv4.address 192.168.30.100/24
2、建立port接口
nmcli connection add type team-slave con-name team0-ens33 ifname ens33 master team0
nmcli connection add type team-slave con-name team0-ens37 ifname ens37 master team0
3、啟用接口
nmcli connection up team0
nmcli connection up team0-ens33
nmcli connection up team0-ens37
檢視team狀态
teamdctl team0 state
删除
1、直接删除檔案
2、指令删除
網絡組配置檔案
虛拟網卡:
實體網卡: