zoukankan      html  css  js  c++  java
  • 05、ip划分+网络配置+虚拟化基础+基本路由

    --
    IP
     
    IANA (Internet Assigned Numbers Authority) ,Internet号分配机构。负责对IP地
    址分配规划以及对TCP/UDP公共服务的端口定义。国际互联网代理成员管理局(IANA)是在国际互联
    网中使用的IP 地址、域名和许多其它参数的管理机构。IP地址、自治系统成员以及许多顶级和二级域
    名分配的日常职责由国际互联网注册中心(IR)和地区注册中心承担。
     
    IP地址由国际组织统一分配,逐级管理。顶级的管理者是Internet Corporation for
    Assigned Names and Numbers (ICANN)。现在,ICANN行使IANA(Internet Assigned
    Numbers Authority,IANA)的职能。
     
     
     
    三大区域性IP地址分配机构:
     
    一、ARIN(American Registry for Internet Numbers)
    负责北美、南美、加勒比以及非洲撒哈啦部分的IP地址分配。同时还要给全球NSP(Network
    Service Providers)分配地址。
     
    二、RIPE(Reseaux IP Europeens)
    负责欧洲、中东、北非、西亚部分地区(前苏联)
     
    三、APNIC(Asia Pacific Network Information Center)
    负责亚洲、太平洋地区
     
    www.apnic.net
     
     
     
     
    IPV4     IPV6
     
     
     
     
    IPV4和IPV6
     
    四个点分十进制数表示
     
     
    172.19.1.44   
    转换成二进制应该为:
     
    10101100.00010011.00000001.00101100
     
     
    IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
     
     
    A 0开头
     
    00000001.00000000.00000000.00000000 - 01111111.11111111.11111111.11111111
    1.0.0.0    127.255.255.255
     
    默认mask:  255.0.0.0
     
     
    B 10开头
    10000000.00000000.00000000.00000000 - 10111111.11111111.11111111.11111111
     
    128.0.0.0 191.255.255.255
    默认mask: 255.255.0.0
     
     
    C 110开头
    11000000.00000000.00000000.00000000 - 11011111.11111111.11111111.11111111
    192.0.0.0 223.255.255.255
    默认mask :255.255.255.0
     
     
     
    D 1110开头 组播
    11100000.00000000.00000000.00000000 - 11101111.11111111.11111111.11111111
    224.0.0.0 239.255.255.255
     
     
     
    E 11110开头的 保留    IPV6在此基础上去扩展
    11110000.00000000.00000000.00000000 - 11110111.11111111.11111111.11111111
    240.0.0.0 255.255.255.255
     
     
     
     
    组播,广播:点对多点通信。
    组播:对应一组计算机;如网络会议,集群,协同计算等;
    广播:对应所有计算机,但是路由器是隔离广播的,所以它准确来说是对应同一个网络内的所有计算机
     
     
     
    子网掩码:划分网络号和主机号
     
     
     
     
    172.19.1.44/255.255.255.0
    172.19.1.44/24
     
     
    10101100.00010011.00000001.00101100 IP
    11111111.11111111.11111111.00000000 掩码
     
     
     
    网络号  172.19.1.0
    主机号  44
     
    172.19.2.44/255.255.255.0
    网络号  172.19.2.0
    主机号  44
     
    上面两个IP不能直接通讯,需要经过路由才可以
     
     
     
    172.19.1.44/24
    172.19.1.45/24 能通
     
    172.19.1.44/24 网络号 172.19.1.
    172.19.1.45/16 网络号 172.19
     
     
     
    172.19.1.44/26
     
    10101100.00010011.00000001.00 101100
    11111111.11111111.11111111.11 000000
    网络号 172.19.1.0
    172.19.1.45/28
     
    10101100.00010011.00000001.0010 1101
    11111111.11111111.11111111.1111 0000
    网络号 172.19.1.32 不能通
     
     
     
    172.19.1.44/25
    10101100.00010011.00000001.0 0101100
    11111111.11111111.11111111.1 0000000
    网络号 172.19.1
     
    172.19.1.45/23
    10101100.00010011.0000000 1.00101101
    11111111.11111111.1111111 0.00000000
    网络号 172.19 --能通
     
     
    特殊的IP 0.0.0.0 代表全世界所有的   
    127.0.0.1-127.255.255.255 环回地址,测试本机tcp/ip是否正常
     
     
     
    私网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
     
     
     
     
    ip划分:
    10.1.1.35/255.255.255.0
    广播地址:10.1.1.255 (主机号二进制全1的代表广播地址)
    网络地址:10.1.1.0 (主机号二进制全0的代表网络号)
    网络内可用的主机地址:10.1.1.1-10.1.1.254 254台   2^8-2=254
     
     
     
     
     
     
    子网划分:
    C类:
    192.168.1.0/255.255.255.128 192.168.1.0/25
    有多少个子网?   2^(25-24)=2
    每个子网有多少个有效IP? 2^(32-25)-2=126
    每个子网的网络号?广播地址?有效地址?
    先算一个子网的块号:256-128=128
    由块号得到网络号192.168.1.0和  192.168.1.128
    192.168.1.0的广播地址为192.168.1.127,有效地址为
    192.168.1.1-192.168.1.126
    192.168.1.128的广播地址为192.168.1.255,有效地址为
    192.168.1.129-192.168.1.254
     
     
     
     
     
    B类: 190.1.0.0/19 190.1.0.0/255.255.224.0
     
     
     
    B类默认掩码16位,这里子网划分了19位,表示有除了前面16位外,还有3位也是网络地址。
    前面16位就是190.1,不能再变了。那么后面3位的变化为2^3=8,也就是8个子网
     
    2^(32-19)-2=8190 # echo $[2**13-2]
    也可以使用bc计算器   2^13-2来计算
     
    256-224=32
     
    8个网络号 广播号
    190.1.0.0 190.1.31.255
    190.1.32.0 190.1.63.255
    190.1.64.0 190.1.95.255
    。。。。。。 ........
    190.1.224.0 190.1.255.255
     
     
     
     
    A类:20.0.0.0/10 20.0.0.0/255.192.0.0
     
     
    2^(10-8)=4
     
    2^(32-10)-2=4194302
     
     
    256-192=64
     
     
    网络号 广播号
    20.0.0.0 20.63.255.255
    20.64.0.0 20.127.255.255
    20.128.0.0 20.191.255.255
    20.192.0.0 20.255.255.255
     
     
     
     
     
    比如:公司有下面几个部门
    管理:5人
    技术: 45人
    后勤保障:25人
    销售:15人
    人力资源:10人
    行政:10人
    现在公司搭建内部局域网,要求各个部门之间使用IP划分技术分开成不同的网段。
    开始考虑使用192.168.1.0这个私网网段来进行分配
    请问:是否可行?如果不可行,请设计一下可行方案?
     
     
     
    6个部门 最少借三位   就是27  那么留给主机号只有5位,5位主机号最多只能分配2^5-2=30台电脑 那么技术部门不够用,方案不可行
     
    那么考虑用B类或者A类的私网
    172.16.0.0/19
    10.0.0.0/11
     
     
    或者192.168.1到6.0/24  这六个就可以
     
     
     
    或者把它先分成四个子网,每个子网有62个可用主机
    然后把四个子网其中的两个子网再划分成四个小子网,每个小子网有30个可用主机
     
    192.168.1.0/26
     
    192.168.1.0    192.168.1.63
    192.168.1.64   192.168.1.127
    192.168.1.128  192.168.1.191
    192.168.1.192  192.168.1.255 --这是四个子网
     
    192.168.1.192/27 --再把这两个子网在26的基本上再借一位,分成四个小子网
    两个小子网是:
    192.168.1.192/27
    192.168.1.224/27
     
    192.168.1.128/27
    两个小子网是:
    192.168.1.128/27
    192.168.1.160/27
     
     
    最终的6个子网是:
    192.168.1.0/26
    192.168.1.64/26 --这两个其中一个一定要用到技术部门
     
    192.168.1.192/27
    192.168.1.224/27
    192.168.1.128/27
    192.168.1.160/27
     
     
    --这样划分还是有些勉强,就是前面两个子网可以和后面的子网互相访问。因为网络号包含
     
     
     
     
    =================================
     
     
     
    [root@localhost ~]# mii-tool --在虚拟机下不支持
    eth0: negotiated 100baseTx-FD, link ok --这表示网卡和网线OK
     
    [root@localhost ~]# mii-tool
    eth0: no link --这表示网卡OK,但网线没插好等情况
     
    [root@localhost ~]# mii-tool
    no MII interfaces found --这表示网卡松动,或者是网卡没有被激活,或者模块不支持等情况
     
    # system-config-network & --用此命令尝试在图形界面环境下激活
    --rhel6里现在这个命令和rhel5不一样的,只能去配置IP,DNS等
     
     
     
     
    检查网卡的工作模式和修改
    # ethtool eth0
    # ethtool -s eth0 speed 100 duplex full autoneg on
           速率           全双工     自动协商
     
    实验:修改网卡的速率,使用scp远程拷贝来验证速率
     
    # scp /share/soft/iso/rhel-5.4-server-i386-dvd.iso 2.2.2.110:/root/Desktop/
     
     
     
     
    [root@localhost ~]# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:23:CD:95:DA:0B  
              inet addr:10.1.1.35  Bcast:10.1.1.255  Mask:255.255.255.0
              inet6 addr: fe80::223:cdff:fe95:da0b/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:15768 errors:0 dropped:0 overruns:0 frame:0
              TX packets:1404 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1187943 (1.1 MiB)  TX bytes:577140 (563.6 KiB)
              Interrupt:193 Base address:0x4c00
     
     
    [root@li ~]# ifconfig eth0 10.1.1.35 netmask 255.255.255.0
    --立即生效,重启系统后,是什么IP,就要看配置文件了
     
    [root@li ~]# ifconfig eth0 down
    [root@li ~]# ifconfig eth0 up
    [root@li ~]# ifdown eth0
    [root@li ~]# ifup eth0
     
    [root@li ~]# ip addr --另一种查看IP的方式,在有些集群软件里(keepalived)做的虚拟IP,使用ifconfig是看不到的,使用ip addr就可以看到
     
    # ip link
     
     
     
     
    网络配置
     
     
     
    ifconfig eth0:0 10.1.1.36 netmask 255.255.255.0 --在eth0的基础上虚拟出eth0:0的网卡
     
    [root@localhost ~]# ifconfig eth0:1 10.1.1.37 netmask 255.255.255.0
    [root@localhost ~]# ifconfig eth0:2 10.1.1.38 netmask 255.255.255.0
     
     
     
     
     
    手动修改物理地址的方法:
    先要ifconfig eth0 down --rhel6里不需要先down,再up,可以直接修改
     
    ifconfig eth0 hw ether 00:01:22:AB:EF:CD  
     
    ifconfig eth0 up
     
    [root@li Desktop]# system-config-network --图形修改的程序,不建议用来修改IP等相关信息
     
     
     
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
     
    DEVICE=eth0 --定义设备号
    BOOTPROTO=dhcp --定义获取IP的方式为dhcp
    HWADDR=00:25:86:90:7B:67 --定义物理地址
    ONBOOT=yes --定义此网卡设备是否启动
     
     
    DEVICE=eth0
    BOOTPROTO=static --定义获取IP的方式为static  静态IP
    IPADDR=10.1.1.35 --定义静态IP
    NETMASK=255.255.255.0 --定义子网掩码
    GATEWAY=10.1.1.1 --手动定义你的网关,就是route -n命令看到的默认网关 这一句也可以写到/etc/sysconfig/network这个文件下(是全局生效,就是对所有网卡都生效)
    HWADDR=00:23:CD:95:DA:0B
    ONBOOT=yes
     
     
     
    --rhel6里,可以按下面的方式来改
    # vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    BOOTPROTO="static"
    IPADDR=172.16.2.35
    NETMASK=255.255.255.0
    GATEWAY=172.16.2.1
    NM_CONTROLLED="no" --不受netmanager控制
    ONBOOT="YES" --改为YES,表示启用
    TYPE="Ethernet"
    UUID="7ed192de-5874-4781-a2cf-9f2f5310e37e"
    DNS1=172.16.2.1 --第一个DNS
    DNS2=8.8.8.8 --第二个DNS
     
     
     
     
    # /etc/init.d/network restart  --修改完后重启你的网络服务,使配置生效
    或者 service network restart
     
     
     
     
    ---------------------------------------------
     
    [root@li Desktop]# vim /etc/sysconfig/network
     
    NETWORKING=yes --这里是全局设置,如果这里为no,那么本机的网络将不可用
     
     
    service network restart --重启网络服务
     
    /etc/init.d/network restart --重启网络服务  
     
     
    vim /etc/sysconfig/network-scripts/ifcfg-eth0:0  --此文件不存在,需要手动建立
    DEVICE=eth0:0
    BOOTPROTO=static
    IPADDR=10.1.1.36
    NETMASK=255.255.255.0
    ONBOOT=yes
     
    ==================================================================
     
    [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0-range0
    --一次性虚拟多个IP,此文件不存在,也需要手动创建
     
    IPADDR_START=10.1.1.37 --虚拟的IP起始值
    IPADDR_END=10.1.1.50 --虚拟的IP结束值
    NETMASK=255.255.255.0 --子网掩码
    CLONENUM_START=10 --指的是eth0:后的数字起始值
     
    ===================================================================
     
     
    图形配置工具  setup
     
     
    --下面两个文件是一个硬连接(物理上是同一个文件)
     
    [root@li ~]# ll -i /etc/sysconfig/networking/devices/ifcfg-eth0
    10673958 -rw-r--r-- 5 root root 189 Jun 30 16:42 /etc/sysconfig/networking/devices/ifcfg-eth0
    [root@li ~]# ll -i /etc/sysconfig/network-scripts/ifcfg-eth0
    10673958 -rw-r--r-- 5 root root 189 Jun 30 16:42 /etc/sysconfig/network-scripts/ifcfg-eth0
     
     
     
     
    =========================================================
     
     
    虚拟机的基本使用 (虚拟化基础)
     
     
    vmware workstation (它的商业版本,vmware ESX,也是完全虚拟化产品)
    xen    准虚拟化(需要修改内核)  rhel5
    kvm    完全虚拟化(不需要修改内核,CPU一定要支持虚拟化) rhel6
    openvz
    virtualbox
     
     
     
     
    --安装软件包路径(64位一定得要安装64位版本的vmware-workstation
    # ls /share/soft/VMware-workstation/vmware-workstation-8.0.0/
    sn.txt
    VMware-Workstation-Full-8.0.0-471780.x86_64.bundle
     
     
     
    --安装方法,直接./去执行它
    # ./VMware-Workstation-Full-8.0.0-471780.x86_64.bundle
    Extracting VMware Installer...done.
    Gtk-Message: Failed to load module "pk-gtk-module": libpk-gtk-module.so: cannot open shared object file: No such file or directory
    Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk-module.so: cannot open shared object file: No such file or directory
     
     
    --如果报这两段错误,解决方法,做下面的两个软链接
    # ln -s /usr/lib64/gtk-2.0/modules/libcanberra-gtk-module.so /lib64/libcanberra-gtk-module.so
     
    # ln -s /usr/lib64/gtk-2.0/modules/libpk-gtk-module.so /lib64/libpk-gtk-module.so
     
     
     
     
     
    vmware7.1快照和挂起的恢复都变快了
     
     
     
    虚拟机的挂起状态,保留你的当前状态,并不是关机,保留到第二天来继续使用此状态
     
     
     
    建议的虚拟机使用习惯:
    安装一个新的虚拟机系统,进行基本优化,基本软件的安装和基本服务的配置。
    然后将它做一个快照。每次做完一个项目实验,就把它再做一个快照。要做新项目实验时,就把它恢复快照到刚安装系统的状态,再来做实验.
    有要用到新的虚拟机系统时,就把老虚拟机系统恢复到刚安装的状态,再进行克隆
     
     
    在克隆前,为了防止两台冲突,最好网络为dhcp获取方式,物理地址那一条也不要指定。克隆后的机器,MAC是会自动给你新创建的,不指定的话,会被自动认的
     
     
     
     
    虚拟机有时候在非正常关机情况,或者不是clone,而是物理cp的情况下
     
    有可能用虚拟机软件去打开这个虚拟机,会打不开,解决方法:
    去虚拟机的目录,删除.lck结尾的文件就可以
     
     
     
     
     
     
     
     
    虚拟机的网络配置:
     
     
     
    桥接 连接到你真实机上的网络,和真实机在同一个局域网内,相当于是插在同一个交换机上
    如果桥接网络不通,则看是否有DHCP服务器,没有则配置静态IP;
    如果还不能通,则查看是否开启iptables或selinux之类的;
    如果这两个没有开启,还不能ping通,那么几乎可以肯定是虚拟机的配置问题(vmware-config.pl)
     
    可能是你真实机用的网卡为eth1,但虚拟机桥接到eth0,这就表示物理上不是同一个网络,那么无论你如何配置,都不可能ping通。
     
     
    ========================================================
     
    host-only
     
    只可以和你的真实机通讯的网段,默认配置是你真机上ifconfig查看到的私有网段vmnet1
    并且在这个网段,自动开启了DHCP,默认获取的话默认主机号由128开始获取
     
    vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01  
              inet addr:172.16.86.1  Bcast:172.16.86.255  Mask:255.255.255.0
     
     
     
     
     
    NAT
       hostonly一样,是内网,但是加了一个NAT转换
     
     
     
     
    ==============================================================
     
     
     
    静态路由:
     
     
    真实机A    虚拟机B     虚拟机C   虚拟机D
      eth0      eth1  --> eth0   eth1
    10.1.1.35  2.2.2.2   <-- 2.2.2.3        4.4.4.4
       
     ip_forward  ip_forward
     
      vmnet1     eth0             eth1       eth0
    1.1.1.1 ---->    1.1.1.2    3.3.3.3 <--3.3.3.4
     
     
     
    SIP:1.1.1.1
    DIP:4.4.4.4
     
    ICMP 协议
     
    linux默认是只能用一个网关,你可以设定多个网关,但默认只用上面的那个
    但是linux的策略路由,是可以实现多个网关都能用的
     
    --下面这种情况,就是只有使用172.16.2.1这个网关
    0.0.0.0         172.16.2.1      0.0.0.0         UG    0      0        0 br0
    0.0.0.0         1.1.1.2         0.0.0.0         UG    0      0        0 vmnet1
     
     
     
    --上面的图架构四台机全物理连接在同一个网络(都在虚拟机的vmnet1网络),掩码都为24位
     
     
     
    真实机A虚拟1.1.1.1
    [root@a ~]# ifconfig vmnet1 1.1.1.1 netmask 255.255.255.0
     
     
    虚拟机B两张网卡
    ifconfig eth0 1.1.1.2 netmask 255.255.255.0
    ifconfig eth1 2.2.2.2 netmask 255.255.255.0
     
    真实机A ping 1.1.1.2 能通
    真实机A ping 2.2.2.2 不能通
    A上route -n  查看路由表,没有2.2.2.0网段的路由条目
     
     
    --与2.2.2.2通迅,首先会去查看路由表,如果有对应的网段的条目,就会按照条目所指的网卡路由出去;如果没有对应的网段的条目,则全部从网关出去。如果都没有,则报网络不可达
     
     
     
    解决方法两种:
    1,真实机A上加路由
    # route add -net 2.2.2.0 netmask 255.255.255.0 dev vmnet1  
    --这一句命令表示加一个2.2.2.0/24的路由条目,并指定此网段路由从vmnet1出入
     
    2,真实机A指网关
    # route del -net 2.2.2.0 netmask 255.255.255.0 dev vmnet1
    --先清除上面加的路由
    # route add default gw 1.1.1.2    --把网关指向1.1.1.2,网关不要指多条
     
     
     
    ------------------------
     
    虚拟机C配置IP
    ifconfig eth0 2.2.2.3 netmask 255.255.255.0
    ifconfig eth1 3.3.3.3 netmask 255.255.255.0
     
    在真实机A上
    ping 2.2.2.3  不能通
     
    --因为可以ping过去,但回不来
     
    解决方法1:
    在虚拟机C上加一条1.1.1.0网段的路由
    route add -net 1.1.1.0 netmask 255.255.255.0  dev eth0
     
     
    解决方法2:
    C上先把方法1加的路由删除
    route del -net 1.1.1.0 netmask 255.255.255.0  dev eth0
    C上加一个网关指向2.2.2.2
    route add default gw 2.2.2.2
     
    A上ping 2.2.2.3  还是不通
     
    需要再在虚拟机B上打开IP转发功能
    临时方法
    # echo 1 > /proc/sys/net/ipv4/ip_forward
    永久方法
    # vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1     --把这个值改为1
    # sysctl -p     --保存后使用此命令使之生效
     
    --加了IP转发功能之后,1.1.1.1网关指向1.1.1.2,并且同时2.2.2.3网关要指向2.2.2.2才可以通
     
     
     
  • 相关阅读:
    python之进程和线程2
    Python学习笔记7:yield生成迭代器
    Python学习笔记6:装饰器
    Python学习你急5:文件打开与处理
    Python学习笔记4:集合方法
    Python学习笔记3:字典方法
    Python学习笔记2:列表操作方法详解
    Python学习笔记1:字符串方法
    番外篇:Vim使用方法
    Day12: 正则表达式
  • 原文地址:https://www.cnblogs.com/steven9898/p/11331172.html
Copyright © 2011-2022 走看看