• Linux_20 子网划分


    划分子网

    一个大网络(主机多=主机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 命令
    
  • 相关阅读:
    最小生成树Prim算法
    哈夫曼树与哈夫曼编码
    二叉树的非递归遍历
    浅谈C++中指针和引用的区别
    poj2406 Power Strings
    (收藏)KMP算法的前缀next数组最通俗的解释
    HDU 1556 Color the ball
    Floyd算法
    最短路Dijkstra和Flyod
    编程中无穷大常量的设定技巧
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/14855572.html
Copyright © 2020-2023  润新知