划分子网
一个大网络(主机多=主机ID位数多,网络ID位数少)划分成多个小网络(主机少=主机ID位数少,网络ID位数多),网络ID向主机ID位借位,划分成2^N个小网
公式:
1.网络(网段)数量=2^可变网络ID位数
2.一个网络的主机数量=2^主机ID位数-2=2^(32-网络ID位数)-2
3.网络ID=IP与子网掩码netmask
4.划分子网数=网络ID位向主机ID位借N位,划分成2^N个小网
# 网络位向主机位借1位
10.0.0.0/8 分成2个小网:10.0.0.0/9 10.128.0.0/9
10.0 0000000.0.0
10.0 0000000.0.1
10.0.0.0/9
10.0 0000000.0.1 10.0.0.1 # 划分的子网中最小IP
10.0 111111.255.254 10.127.255.254 # 划分的子网中最大IP
10.1 1111111.255.254
10.128.0.0/9
10.1 0000000.0.1 10.128.0.1 # 划分的子网中最小IP
10.1 1111111.255.254 10.255.255.254 # 划分的子网中最大IP
主机位不能全为0或者全为1,所以10.0.0.0/9 一共9位子网掩码,剩下32-9=23位,不能全为0或者1,即10.127.255.255和10.128.0.0和10.255.255.255不能用。大网划分成小网,会导致小网的边界的主机位不可用。
2^1=2 网络
# 网络为向主机位借两位
10.00 000000.0.0
可以划分成4个子网
10.00 000000.0.0 10.0.0.0/10
10.01 000000.0.0 10.64.0.0/10
10.10 000000.0.0 10.128.0.0/10
10.11 111111.0.0 10.192.0.0/10
10.0.0.0/8 划分成32个子网
1).新的子网netmask
网络位向主机位借5位,2^5=32,子网掩码位数:8+5=13 netmask:10.248.0.0
2).新的子网:min netid,max netid
10.00000 000.0.0 10.0.0.0/13 min netid
10.11111 000.0.0 10.248.0.0/13 min netid
3).新的子网存放最多的主机数是多少?
32-13=19
2^19-2
4).max netid IP:min ip,max ip?
10.11111 000.0.00000001 => minip:10.248.0.1
10.11111 111.255.254 =>maxip:10.255.255.254
河南省10.248.0.0/13,划分17个子网给17个地市使用
1)新的子网netmask:255.255.11000000.11000000.0 255.255.192.0
新子网网数位数:
2^N>=17,N=5
2) 新的子网:min netid,max netid
10.11111 000.00 000000.0 10.248.0.0/18 # 第1个子网
10.11111 100.00 000000.0 10.252.0.0/18 # 第17个子网
10.11111 111.11 000000.0 10.255.192.0/18 # 第32个子网
3)新的子网存放最多的主机数是多少?
主机ID位=32-18=14
2^14-2
4) max netid IP:min ip,max ip?
10.252.0.0/18
10.11111 100.00 000000.1 => 10.252.0.1
10.11111 100.00 111111.11111110 => 10.252.64.254
如果按照A,B,C,总共多少个网段?
A:
0xxxxxxx.X.X.X
2^7=128 0和127不能用
1-126
B:
10xxxxxx.xxxxxxxx.X.X
2^14
C:110xxxxx.xxxxxxx.xxxxxxxx.X
2^21
合并超网
多个小网和并成一个大王,主机ID位向网络ID位借位
私有IP地址:互联网上不会分配,也没有路由,在局域网用
A 10.0.0.0到10.255.255.255
B 172.16.0.0到172.31.255.255
C 192.168.0.0到192.168.255.255
特殊地址
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服务器获取地址,系统会为主机分配这样的地址。
跨网路通信
跨网络通信:路由
路由分类:
主机路由
网络路由
默认路由
优先级:精度越高,优先级越高
对于一个路由器来说,当它接收到一个数据包之后,他只关心它如何将数据包发出去,即只关心数据包目标地址,靠路由表的路由记录决定发往何处,而不关心数据包的来源,因为是被动接收的,即不关心数据包的源地址。
# 路由表的构成
1.destination:数据包发送的目标路径 192.168.0.0
2.netmask:24 16
3.interface:路由器的出口
4.gateway
1.直连:不需要配置
2.非直连:下一个路由器邻近本路由器的接口地址
A---1 R1 2 ---3 R2 4--- 5 R3 6 --- B
firefox http://B
1 A 判断B和A是否在一个网段
2 A gateway:R1 IP1
ARP IP1--> MAC1
APR cache:IP1--MAC1
frame:dest mac:mac1 src mac:macA
ip:dest ip:IPB src ip:IPA
tcp:dest port:80 src port:xxxxx
3 R1查路由表
net B 2 IP3
ARP IP3 ---> mac3
frame:dest mac:mac3 src mac:mac2
ip:dest ip:IPB src ip:IPA
tcp:dest port:80 src port:xxxxx,syn
4 R2 查路由表
net B 4 IP5
ARP IP5 ---> mac5
frame:dest mac:mac5 src mac:mac4
ip:dest ip:IPB src ip:IPA
tcp:dest port:80 src port:xxxxx,syn
5 R3 查路由表
net B 6
ARP IPB ---> macB
frame:dest mac:macB src mac:mac6
ip:dest ip:IPB src ip:IPA
tcp:dest port:80 src port:xxxxx,syn
DHCP
基本网络配置
将Linux主机接入到网络,需要配置网络相关设置。
一般包括如下下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器:
主DNS服务器
次DNS服务器
第三DNS服务器
Centos6网卡名称
接口命名方式:CentOS6
以太网:eth[0,1,2...]
ppp:ppp[0,1,2,...]
网络几口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg|grep -i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
网络配置方式
静态指定:
ifconfig,route,netstat
ip:object{link,addr,route},ss,tc
system-config-network-tui,setup
配置文件
动态分配:
DHCP:Dynamic Host Configuration Protocol
tcpdump:抓包工具 yum install -y tcpdump
tcpdump -i eth0 icmp # 抓取icmp包(ping 包)
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 eth0
删除: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
route del default gw 172.20.0.1
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
ip命令
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 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
A--vmnet10--eth0 R1 eth1 --vmnet11--eth0 R2 eth1 --vmnet12--B
A:192.168.1.100/24 gateway:192.168.1.1
R1:
eth0:192.168.1.1/24
eth1:172.16.0.1/16
R2:
eth0:172.16.0.2/16
eth1:10.0.0.1/8
B:
10.0.0.100/8 gateway:10.0.0.1
B机器配置:
hostname B
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=10.0.0.100
NETMASK=255.0.0.0
GATEWAY=10.0.0.1
ONBOOT=yes
systemctl restart network
ifconfig # 地址已经生效
route -n # 网关已经加入 10.0.0.1
A机器配置:
hostname A
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=24 # NETMASK=255.255.255.0
DEFROUTE=yes
GATEWAY=192.168.1.1
NAME="System eth0"
MACADDR=00:0c:29:E1:F7:BB
PEERDNS=yes
PEERROUTES=yes
ONBOOT=yes
systemctl restart network
ifconfig # 地址已经生效
route -n # 网关已经加入 10.0.0.1
R2机器(路由器)配置:
hostname R2
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
NM_CONTROLLED=yes
IPADDR=192.168.1.1
PREFIX=24 # NETMASK=255.255.0.0
DEFROUTE=yes
# GATEWAY=192.168.1.1 路由器没有网关,通过路由表添加网关
NAME="System eth0"
PEERDNS=yes
PEERROUTES=yes
ONBOOT=yes
LAST_CONNECT=1522143080
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
IPADDR=172.16.0.1
PREFIX=16
systemctl stop NetworkManager # chkconfig NetworkManager off 禁止开机自启动
systemctl restart network
ifconfig # 地址已经生效
R2机器(路由器)配置:
hostname R2
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
NM_CONTROLLED=yes
IPADDR=172.16.0.2
PREFIX=16 # NETMASK=255.255.0.0
DEFROUTE=yes
# GATEWAY=192.168.1.1 路由器没有网关,通过路由表添加网关
NAME="System eth0"
PEERDNS=yes
PEERROUTES=yes
ONBOOT=yes
LAST_CONNECT=1522143080
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
IPADDR=10.0.0.1
PREFIX=8
systemctl stop NetworkManager
systemctl restart network
ifconfig # 地址已经生效
R1:
echo 1 > /proc/sys/net/ipv4/ip_forward
route add -net 10.0.0.0/8 gw 172.16.0.2
R2:
echo 1 > /proc/sys/net/ipv4/ip_forward
route add -net 192.168.1.0/24 gw 172.16.0.1
在A机器 ping B 机器:
ping 10.0.0.100
traceroute 10.0.0.100 # 可以跟踪路由,查看经过了哪些路由器
mtr 10.0.0.100 # 可以动态跟踪路由
tracepath 10.0.0.100 # 和tracepath类似
watch 命令
watch:周期性地执行指定命令,并以全屏方式显示结果
-n # : 指定周期长度,单位为秒,默认为2
格式:watch -n # 'COMMAND'
watch -n 2 'ls /etc' # 每隔2s执行一次 ls /etc 命令