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