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才可以通