网络基础知识:
局域网:以太网,令牌环网,
Ethernet:CSMA/CD
冲突域
广播域
MAC:Media Access Control,共48bit,前24bit需要机构分配,后24bit自己自由使用
IP:Internet Protocol
Routing Protocol
Routed Protocol
传输层协议:tcp、udp、sctp
网络层协议:ip
ip协议:
IPv4地址分类:
点分十进制:0-255
0000 0000 - 1111 1111
0.0.0.0 - 255.255.255.255
A类:
0 000 0000 - 0 111 1111 : 1-127
网络数:126个,127环回地址;每个网络中的主机数:2^24-2;默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8
B类:
10 00 0000 - 10 11 1111 : 128-191
网络数:2^14个;每个网络中的主机数:2^16-2;默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.0.0/16
C类:
110 0 0000 - 110 1 1111 : 192-223
网络数:2^21个;每个网络中的主机数:2^8-2;默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.0/24
D类:组播用
1110 0000 - 1110 1111 : 224 - 239
E类:
240-255
子网掩码:用来进行网络号计算的
跨网络通信:路由
主机路由:目的是一个主机地址
网络路由:目的是一个网络
默认路由:
按匹配精度优先级,最佳匹配原则:主机路由>网络路由>默认路由
Linux主机接入到网络中:
需要配置:
IP/mask:
路由:默认网关
DNS服务器:主DNS服务器、次DNS服务器、第三DNS服务器
配置方式:
静态指定:分为几个命令家族
ifcfg:ifconfig,route,netstat
ip:object:{link,addr,route},ss,tc
配置文件:直接编辑配置文件,有图形工具如下
(setup) system-config-network-tui
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 显示所有网络接口信息,包括没激活接口,不带-a,只显示活动接口
# ifconfig IFACE [up | down]
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask_length [up]
# ifconfig IFACE IP netmask MASK
注意:立即生效,但不会永久有效;
启用混杂模式:[ - ]promisc
route命令:路由管理命令
查看:route -n
添加: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 eth0
默认路由:
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 [ -net | -host] target [ gw Gw ] [ netmask Nm ] [ [dev] If ]
route del -host 192.168.1.3
route del -net 192.168.0.0 netmask 255.255.255.0
不加-n,会将地址进行反解成名字。
DNS服务器指定:
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
正解:FQDN --> IP, dig -t A FQDN; host -t A FQDN
反解:IP --> FQDN, dig -x IP; host -t PTR IP
FQDN:www.baidu.com
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 ] [ --numeric-hosts ] [ --numeric-ports ] [ --extend | -e[--extend|-e] ] [ --program | -p ]
-t:tcp协议相关
-u:udp协议相关
-r:raw socket相关
-l:处于监听状态
-a:所有状态
-n:以数字显示IP和端口,不反解
-e:扩展格式
-p:显示相关进程及PID
常用组合:-tan, -uan , -tnl , -unl
显示路由表:
netstat {--route | -r } [--extent | -e[--extend|-e] ] [ --verbose | -v ] [ --numeric | -n ]
-r:显示内核路由表
-n:数字格式
显示接口统计数据:
netstat { --interfaces | -I | -i } [ iface ] [--all | -a] [ --extend |-e] [ --program | -p ] [ --numeric | -n ]
# netstat -i 所有接口
# netstat -IIFACE 指定接口,-I和接口名之间无空格
总结:ifcfg家族命令配置
ifconfig/route/netstat
ifup/ifdown
配置Linux网络属性:ip命令
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute | monitor }
link OBJECT:
ip link show [ dev IFACE] [ up ] [ dev IFACE]显示指定接口,[ up ]显示启用的接口
ip link set dev IFACE [up | down]
addr OBJECT
ip addr {add | del } IFADDR dev STRING [label LABEL] [scope {global | link | host }] [broadcast ADDRESS]
add是添加一个地址,原来配置一个ip,则又添加一个IP地址
[label LABEL] :添加地址时指明网卡别名
[scope {global | link | host }] :指明作用域
global:全局可用;link:仅链接可用;host:本机可用
[broadcast ADDRESS] :指明广播地址
ip addr show [dev IFACE] [label PATTERN] [primary and secondary]
显示IP地址
ip addr flush dev IFACE label PATTERN
清空IP地址
route OBJECT:
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:主机路由:IP;网络路由:NETWORK/MASK;默认网关:default
ip route delete
删除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
ss命令:网络查看工具
ss [OPTION]... [FILTER]
OPTIONS:
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字
-x:unix sock相关
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关的程序及PID
-e:扩展的信息
-m:内存用量
-o:计时器信息
FILTER:=[state TCP-STATE ] [ EXPRESSION ]
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
Linux网络属性配置(3):修改配置文件
IP、MASK、GW、DNS相关配置文件: /etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/syscofnig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE="" :此配置文件应用到的设备;
HWADDR:对应设备的MAC地址;
BOOTPRORO:激活此设备时使用的地址配置协议,常用的dhcp,static,none,bootp
NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制,CentOS6建议为"no"
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型,常见有Ethernet,Bridge,
UUID:设备的唯一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY:默认网关
DNS1:第一个DNS服务器指向
DNS2:
USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中。
/etc/sysconfig/network-scripts/route-IFACE
两种风格:
(1)TARGET via GW
(2)每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
给网卡配置多地址:
ifconfig:
ifconfig IFACE_ALIAS
ifconfig eth0:0 192.168.0.22/24
ip
ip addr add
配置文件:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
注意:网卡别名不能使用dhcp协议引导;
Linux网络属性配置的tui(text user interface):
system-config-network-tui
还可以使用setup命令,然后调用Network configuration 项
注意:要重新启动网络服务才能生效。
ifconfig eth0 down;ifconfig eth0 up
service network restart --> /etc/rc.d/init.d/network restart
配置当前主机的主机名:
命令:hostname [HOSTNAME]
配置文件:/etc/sysconfig/network
HOSTNAME=
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
文件中修改NAME=的值,修改后需要卸载和重新装载网卡驱动,才能生效
卸载网络驱动:modprobe -r e1000
装载网卡驱动:modprobe e1000