IP地址简介
1 IP地址又叫网络地址也称逻辑地址,由32位2进制数组成,分4段每段8位,由10进制数表示,范围0~255,段与段之间用点隔开采用点分十进制的表示法,在一个网络中ip地址是唯一的,IP地址最主要的作用就是标识网络设备在网络中所在的位置,通过IP地址实现各计算机间的通讯。 2 IP地址由两部分组成 3 网络ID: 标识网络,每个网段分配一个网络ID 4 主机 ID: 标识单个主机,由组织分配给各设备
IP地址分类
1 A类: 2 0 000 0000 - 0 111 1111: 1-127 3 网络数:126, 127 4 每个网络中的主机数:2^24-2 5 默认子网掩码:255.0.0.0 6 私网地址:10.0.0.0 7 B类: 8 10 00 0000 - 10 11 1111:128-191 9 网络数:2^14 10 每个网络中的主机数:2^16-2 11 默认子网掩码:255.255.0.0 12 私网地址:172.16.0.0-172.31.0.0 13 C类: 14 110 0 0000 - 110 1 1111: 192-223 15 网络数:2^21 16 每个网络中的主机数:2^8-2 17 默认子网掩码:255.255.255.0 18 私网地址:192.168.0.0-192.168.255.0 19 D类:组播 20 1110 0000 - 1110 1111: 224-239 21 E类:保留未使用 22 240-255
特殊地址
1 0.0.0.0 2 0.0.0.0不是一个真正意义上的IP地址。它表示所有不清楚的主机和目的网络 3 255.255.255.255 4 限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机 5 127.0.0.1~127.255.255.254 6 本机回环地址,主要用于测试。在传输介质上永远不应该出现目的地址为 7 “127.0.0.1”的 数据包 8 224.0.0.0到239.255.255.255 9 组播地址,224.0.0.1特指所有主机,224.0.0.2特指所有路由器。224.0.0.5指OSPF 10 路由器,地址多用于一些特定的程序以及多媒体程序 11 169.254.x.x 12 如果Windows主机使用了DHCP自动分配IP地址,而又无法从DHCP服务器获取地 13 址,系统会为主机分配这样地址
子网掩码的划分
1 子网掩码主要用于区分网络号和主机号,通过划分子网实现对IP的地址有效管控利于管理、节省IP地址资源、同时可以将多个小的子网合成一个大网减少设备中的路由表条目从而减少设备的占用资源,要划分子网要熟悉二进制和十进制之间的转换,下面会列出常用的子网掩码和子网的对应关系
子网划分的推荐思路
1 根据所有子网所需要的主机数总数,确定申请ip的网段 2 根据每个子网所需要的主机数,确定IP地址所有需要的主机位数 3 方法: 4 一个网络中主机最大数=2^主机ID位数(32-网络ID位数)-2=2^(32-网络ID位数)-2 5 网络数=2^可变网络ID 6 CIDR表示法:IP/网络ID位数 7 网络ID值=IP与子网掩码 8 划分子网:一个大网划分成多个小网,网络ID位变多,主机ID位才变少,网络ID向主机ID借位N,分成2^N个小网 9 合并超网:多个小网合并成一个大网,主机ID向网络ID借位
实例:
1 给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么? 2 我们根据以上提到的方法和上面掩码对应的子网号可以很快的根据对应关系知道255.255.255.192的子网号是26 3 IP地址是167.77.88.99掩码是255.255.255.192,这个子网的广播地址、主机地址、及有效IP地址的范围首先通过子网可以看到前3段都是固定的不会变,第4段中有2位是借主机位的那么这样就可以把167.77.88.99 4 的IP地址中的最后一段99用二进制表示出来:
5 99 01110011 6 借了2位就可以写成下面的方式借的2位为子网的位数,剩下的6位就是主机位: 7 99 01 110011 8 那么从上面看可以根据子网的划分方法,主机位全为0表示的是主机地址,主机位全为1就是广播地址, 9 这样就可以计算得出: 10 99 01 000000:主机地址64 11 99 01 111111:广播地址127 12 从上面的计算可以得到的结果是: 13 子网号是:26 14 广播地址是:167.77.88.127 15 主机地址是:167.77.88.64 16 有效IP地址是:167.77.88.65-167.77.88.126
17 我们在举一个例子给定IP地址167.77.78.0和掩码255.255.224.0,子网号是什么?广播地址是什么?有效IP地址范围?有效IP地址的个数?子网的个数?
18 根据表格可以直接写出子网号是19,根据提供的计算方法可以确认有效IP地址的个数是2^13-2=8190,子网的个数是2^3=8
19 IP地址是167.77.78.0掩码是255.255.224.0,这个子网的广播地址、主机地址、及有效IP地址的范围首先通过子网可以看到前2段都是固定的不会变,第3段中有3位是借主机位的那么这样就可以把167.77.78.0
20 的IP地址中的第3段78用二进制表示出来:
21 78 01001110
22 借了3位就可以写成下面的方式借的3位为子网的位数,剩下的13位就是主机位:
23 78 010 01110
24 那么从上面看可以根据子网的划分方法,主机位全为0表示的是主机地址,主机位全为1就是广播地址,
25 这样就可以计算得出:
26 78 010 00000:主机地址的第3位的值是64
27 78 010 11111:广播地址的第3位的值是95
28 从上面的计算可以得到的结果是:
29 子网号是:26
30 广播地址是:167.77.95.255
31 主机地址是:167.77.64.0
32 有效IP地址是:167.77.64.0-167.77.95.255
33 有效地址的个数:8190
34 子网的个数:8
Linux网卡配置介绍
1 centos6网卡名的配置文件:/etc/udev/rules.d/70-persistent-net.rules 2 修改网卡名称之后需要卸载网卡驱动重新安装 3 查看网卡驱动: 4 dmesg | grep -i eth0 5 ethtool -i eth0 6 查看模块:lsmod 7 卸载网卡驱动:只是内存中卸载,虚拟机中叫e1000,物理机不一定 8 modprobe -r e1000 9 rmmod e1000 10 装载网卡驱动: 11 modprobe e1000 12 13 14 将centos7网卡名恢复为传统名称:eth0,eth1 15 编辑/etc/default/grub 16 GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0" 17 为grub2生成配置文件 18 grub2-mkconfig -o /etc/grub2.cfg 19 重启系统:reboot 20 21 linux主机网卡基本配置 22 /etc/sysconfig/network-scripts/ifcfg-eth0 23 DEVICE:此配置文件应用到的设备 24 HWADDR:对应的设备的MAC地址 25 BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp 26 NM_CONTROLLED:NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no” 27 ONBOOT:在系统引导时是否激活此设备 28 TYPE:接口类型;常见有的Ethernet, Bridge 29 UUID:设备的惟一标识 30 IPADDR:指明IP地址 31 NETMASK:子网掩码 32 GATEWAY: 默认网关 33 DNS1: DNS服务器地址 34 DNS2: 冗余DNS服务器 35 /usr/share/doc/initscripts-9.49.30/sysconfig.txt:配置文件的说明参考 36 注意:ip地址只要配置在设备上不论在那个网卡都会做出响应,无论是哪个网卡的ip地址,IP地址 37 并不是真的绑定在网卡上,实际上是工作在内核中的,也就是说我们的地址实际上是在内 38 核中的,也就是不论网卡有多个自身配置了多少个地址,只要数据包能到这就会做出响应 39 静态路由的配置方法,没有则创建该文件: 40 网络配置文件(配置路由时添加文件用来永久保存) 41 /etc/sysconfig/network-scripts/route-IFACE 42 注意:需service network restart生效 43 两种风格: 44 (1) TARGET via GW 45 如:10.0.0.0/8 via 172.16.0.1 46 (2) 每三行定义一条路由 47 ADDRESS#=TARGET 48 NETMASK#=mask 49 GATEWAY#=GW
添加IP地址192.168.2.2/24到eth0网卡上
1 编辑/etc/sysconfig/network-scripts/ifcfg-eth0 2 内容: 3 DEVICE=eth0 4 HWADDR=00:0C:29:3F:06:C7 5 TYPE=Ethernet 6 UUID=4f8f6d23-6f9d-43c9-aac5-aea5d1616fe4 7 ONBOOT=yes 8 BOOTPROTO=static 9 NM_CONTROLLEDl=no 10 NAME=eth0 11 IPADDR=192.168.2.2 12 NETMASK=255.255.255.0 13 GATEWAY=192.168.2.1 14 DNS1=114.114.114.114 15 DNS2=8.8.8.8
Linux管理工具
1 ifconfig 2 ifconfig [interface] :显示所有网卡信息(只能显示启用的) 3 ifconfig -a :禁用启用的网卡都看得见 4 ifconfig IFACE [up|down] :启用或者是禁用网卡(相当与从链路层给down了 5 这种方式彻底一些) 6 ifdown:禁用网卡 7 ifup:启用网卡 8 ifconfig interface [aftype] options | address ... :设置修改网卡信息 9 ifconfig IFACE IP/netmask [up] :配置地址(临时修改,临时测试使用) 10 ifconfig eth0:2 10.0.0.100/8:一个网卡配置多个地址给网卡起一个别名 11 ifconfig IFACE IP netmask NETMASK :临时修改网卡的IP地址信息 12 注意:立即生效 13 14 route :路由 15 路由管理命令 16 查看:route -n 17 添加:route add 18 route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] 19 目标:192.168.1.3 网关:172.16.0.1 20 route add -host 192.168.1.3 gw 172.16.0.1 dev eth0 21 目标:192.168.0.0 网关:172.16.0.1 22 route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0 23 route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0 24 默认路由,网关:172.16.0.1 25 route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1 26 route add default gw 172.16.0.1 27 删除:route del 28 route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If] 29 目标:192.168.1.3 网关:172.16.0.1 30 route del -host 192.168.1.3 31 目标:192.168.0.0 网关:172.16.0.1 32 route del -net 192.168.0.0 netmask 255.255.255.0 33 34 ip :配置Linux网络属性 35 ip [ OPTIONS ] OBJECT { COMMAND | help } 36 网络层: 37 ip address flush - 使用格式同show 38 ip address flush dev eth1:清空网卡上的所有IP地址 39 ip addr add 172.16.100.100/16 dev eth0:设置网卡ip地址 40 ip addr del 172.16.100.100/16 dev eth0:删除网卡ip地址 41 ip addr add 172.16.100.100/16 dev eth0 label eth0:0 :添加标签 42 ip addr del 172.16.100.100/16 dev eth0 label eth0:0 :删除标签 43 ip addr flush dev eth0 label eth0:0 :清空所有的标签 44 ip route add 192.168.0.0/24 via 172.16.0.1 :添加网络路由 45 ip route add 192.168.1.13 via 172.16.0.1 :添加主机路由 46 ip route add default via GW dev IFACE :添加网关 47 ip route add default via 172.16.0.1 48 删除路由:ip route del TARGET 49 显示路由:ip route show|list 50 清空路由表:ip route flush dev eth0 51 链路层: 52 ip link show ens33 查看信息 53 ip link set ens33 down|up 启动或关闭 54 55 ss:命令 56 ss命令 57 格式:ss [OPTION]... [FILTER] 58 netstat通过遍历proc来获取socket信息,ss使用netlink与内核tcp_diag模块通信获取socket信息。 59 选项: 60 -t: tcp协议相关 61 -u: udp协议相关 62 -w: 裸套接字相关 63 -x:unix sock相关 64 -l: listen状态的连接 65 -a: 所有 66 -n: 数字格式 67 -p: 相关的程序及PID 68 -e: 扩展的信息 69 -m:内存用量 70 -o:计时器信息 71 常见用法 72 ss -l 显示本地打开的所有端口 73 ss -pl 显示每个进程具体打开的socket 74 ss -t -a 显示所有tcp socket 75 ss -u -a 显示所有的UDP Socekt 76 ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接 77 ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接 78 ss -s 列出当前socket详细信息