六、配置網絡
跨網絡通信:路由
路由分類:
主機路由
網絡路由
默認路由
優先級:精度越高,優先級越高
動態主機配置協議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,…]
fconfig命令
ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即生效;
啟用混雜模式: [-]promisc
route命令
路由管理命令
查看: route -n
添加: 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 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
默認路由,網關: 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
刪除: route del
route del [-net|-host] target [gw Gw] [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
配置動態路由
通過守護進程獲取動態路由
安裝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
#ifconfig -s eno16777736
ip命令
配置Linux網絡屬性: ip命令
ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link – 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]:指明廣播地址
ip address show – look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush – 使用格式同show
ip addr add 172.16.100.13/16 dev eth0 label eth0:0
ip addr del 172.16.100.13/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
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 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加網關:
ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
刪除路由:
ip route delete
ip route del TARGET
顯示路由: ip route show|list
清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
ss命令
格式: ss [OPTION]… [FILTER]
netstat通過遍歷proc來獲取socket信息, ss使用netlink與內核tcp_diag模塊通信獲取socket信息。
選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x: unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀態:
tcp finite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’ ( dport = :ssh or 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-scripts/ifcfg-IFACE
路由相關的配置文件:/etc/sysconfig/network-scripts/route-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”
ONBOOT:在系統引導時是否激活此設備
TYPE:接口類型;常見有的Ethernet, Bridge
UUID:設備的惟一標識
IPADDR:指明IP地址
NETMASK:子網掩碼
GATEWAY: 默認網關
DNS1:第一個DNS服務器指向
DNS2:第二個DNS服務器指向
USERCTL:普通用戶是否可控制此設備
PEERDNS:如果BOOTPROTO的值為“ dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
本地解析器
解析器執行正向和逆向查詢
/etc/hosts
本地主機名數據庫和IP地址的映像
對小型獨立網絡有用
通常,在使用DNS前檢查
getent hosts 查看/etc/hosts 內容
dns名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/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
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定義一條路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
網卡別名
對虛擬主機有用
將多個IP地址綁定到一個NIC上
eth0:1
eth0:2
eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifcofig rth0:0 down
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
查看網卡:
dmesg |grep -i eth
ethtool -i eth0
卸載網卡驅動:
modprobe -r e1000
rmmod e1000
裝載網卡驅動:
modprobe e1000
原創文章,作者:DYW,如若轉載,請注明出處:http://www.www58058.com/44993