@wyjgd
2019-09-18T03:06:07.000000Z
字数 4482
阅读 665
可以唯一标识IP网络中的每台设备
每台主机(计算机、网络设备、服务器)必须具有唯一的地址
IP地址有两部分组成:网络ID(标识网络,每个网段分配一个网络ID)以及主机ID(标识单个主机)
是一个32位二进制数,可以将32二进制数分为4组,每组8位二进制数(均可转换成十进制)
A类地址
网络ID位为高8位(最左边8位),其中高8位中0xxxxxxx,0不可变,主机ID位为24位(32-网络ID位)
0 0000000-0 1111111 (1-127)
一个网络中主机最大数=2^主机ID位数(32-网络ID位数)-2
网络数=2^可变网络ID位,
默认子网掩码:255.0.0.0
私网地址:10.0.0.0
B类地址
网络ID位为高16位,主机ID位为16位
10xxxxxx.xxxxxxxx(128-191)
默认子网掩码:255.255.0.0
私网地址:172.16.0.0-172.31.0.0
C类地址
110 0 0000 - 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0-192.168.255.0
D类地址
组播地址(224-239)
0.0.0.0
0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络
255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机
127.0.0.1~127.255.255.254
本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包
224.0.0.0到239.255.255.255
组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF路由器,地址多用于一些特定的程序以及多媒体程序
169.254.x.x
如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地址,系统会为主机分配这样地址
无类域间路由CIDR:网络ID位数不确定,通过子网掩码确定网络ID位
netmask:高位对应于网络ID位为1,对应于主机ID位为0
CIDR表示法:IP/网络ID位数
划分子网:网络ID位变多,主机ID位变少,网络ID向主机ID借位N,分成2^N个小网
EXAMPLE
给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么
子网号:8+8+8+2=26
主机数:2^(32-26)-2=62
有效IP地址为167.77.88.65-167.77.88.126
广播地址:167.77.88.127
IP、MASK、GW、DNS相关配置文件:
/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”
路由相关的配置文件:
/etc/sysconfig/network-scripts/route-IFACE
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-ipoib.rules
centos6虚拟机克隆后,如果未出现新建网卡,修改此文件内容,注释第一个网卡,修改新网卡name=eth0,并复制新网卡MAC地址,覆盖原网卡MAC地址(/etc/sysconfig/network-script/ifcfg-eth0),并换成新IP地址,然后重启即可
查看网卡
dmesg | grep -i 网卡名
ethtool -i 网卡名
ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
[add <address>[/<prefixlen>]]
[del <address>[/<prefixlen>]]
[[-]broadcast [<address>]] [[-]pointopoint [<address>]]
[netmask <address>] [dstaddr <address>] [tunnel <address>]
[outfill <NN>] [keepalive <NN>]
[hw <HW> <address>] [mtu <NN>]
[[-]trailers] [[-]arp] [[-]allmulti]
[multicast] [[-]promisc]
[mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
[txqueuelen <NN>]
[[-]dynamic]
[up|down] ...
-a 显示全部接口信息。
-s 显示摘要信息(类似于 netstat -i)。
<interface> address 为网卡设置IPv4地址。
ifconfig eth0 192.168.2.2/24
<interface> add <address> 给指定网卡配置IPv6地址。
ifconfig eth0 add 33ffe:3240:800:1005::2/ 64
<interface> del <address> 删除指定网卡的IPv6地址。
ifconfig eth0 del 33ffe:3240:800:1005::2/ 64
<interface> netmask <address> 设置网卡的子网掩码。
<interface> dstaddr <address> 设定一个远端地址,建立点对点通信。
<interface> tunnel <address> 建立隧道。
<interface> hw <address> 设置硬件地址。
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
<interface> mtu <NN> 设置最大传输单元。
<interface> up 启动指定网卡。
ifconfig eth0 up
<interface> down 关闭指定网卡。
ifconfig eth0 down
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link |address|addrlabel|route|rule|neigh|ntable |tunnel|tuntap|maddress|mroute|mrule|monitor|xfrm|netns|l2tp|fou|macsec|tcp_metrics|token|netconf|ila|vrf }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |-h[uman-readable] | -iec |-f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |-4 | -6 | -I | -D | -B | -0 |-l[oops] { maximum-addr-flush-attempts } | -br[ief] |-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |-rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}
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.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/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 del TARGET
显示路由:ip route show|list
清空路由表:ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
查看路由:route -n
添加路由:route add [-net|-host] 目的网段/IP [netmask Nm] [gw Gw] 网关 [dev If]
route add -host 192.168.2.2 gw 172.0.0.1 dev eth0
route add -net 192.168.2.0/24 gw 172.0.0.1 dev eth0
默认路由添加:
route add -net 0.0.0.0 gw 172.0.0.1
route add default gw 172.0.0.1
删除路由:route del
-t:显示tcp协议相关
-u:显示udp协议相关
-w:raw socket相关
-l:处于监听状态
-n:以数字显示IP和端口
-p:显示相关进程和PID
-a:所有状态
-rn:数字格式显示路由
-i:显示接口统计数据
-I=接口:显示该接口统计数据
格式: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:计时器信息