本章Blog相关Linux知识点


CSMA/CD(Carrier Sense Multiple Access with Collision Detection)基带冲突检测的载波监听多路访问技术(载波监听多点接入/碰撞检测),是一种争用型的介质访问控制协议,主要应用于总线Ethernet中。它的工作原理是: 发送数据前 ,先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。

    冲突域:在同一个冲突域中的每一个节点都能收到所有被发送的帧。如hub的所有接口处于一个冲突域内
    广播域:网络中能接收任一设备发出的广播帧的所有设备的集合。如交换机的每一个接口为一个冲突域,所有接口处于同一个广播域内;路由器的每一个接口为一个广播域 ,故路由器起隔离广播域的功能。

  ip地址分类 :                                   私有ip地址

A:0.0.0.0-127.255.255.255            10.0.0.0-10.255.255.255

B:128.0.0.0-191.255.255.255        172.16.0.0-172.31.255.255

C:192.0.0.0-223.255.255.255        192.168.0.0-192.168.255.255

配置主机接入TCP/IP网络:配置IP/MASK ;配置路由 ;配置DNS;配置主机名

    1、动态指定 ,ip ,ifconfig ,route

    2、动态分配 ,DHCP服务器

    3、静态指定,配置目录/etc/sysconfig/network-scripts/中的ifcfg-eth0 文件

网络设备如何表示:

    内核识别设备:驱动

    设备:别名

    以太网设备: ethx

    ppp设备:pppX

    本地回环接口:lo


网络配置命令ip link,ip route ,ip addr ,route ,ifconfig


用户空间工具: # ip link ,# ip route , # ip addr , # route  , # ifconfig  ,这些命令配置网络信息可立即生效,但重启后配置将失效

# ifconfig (# ip addr , # ip link )显示所有活动网口的状态信息

    -a 显示所有网络端口信息(包含被禁用掉的端口)

    Interface :仅显示指定接口的相关信息

    Interface  Address/mask  配置接口ip地址 

    Interface Address  netmask MASK

DNS服务器指向 :/etc/resolv.conf

    格式:nameserver DNS_server_ip

    例:# vi /etc/resolv.conf

    nameserver 8.8.8.8

# route 显示路由信息

    -n 使用数字格式显示,不反解析地址到主机名

    add [-host|-net] Address/MASK gw Next_hop dev Device : 添加主机或网络路由,网关地址为Next_hop,从接口Device发出数据

    del [-host|-net]  Address/MASK  :删除主机或网络路由

    add -net default gw Next_hop dev Device   : 添加默认路由

    del  -net 0.0.0.0/0  : 删除默认路由

# ip link 网络设备属性配置

    set  [dev] NAME [up |down] [multicast on | multicast off] :配置网络设备属性

    show  :显示网络设备信息

# ip addr 可以在一个接口上配置多个地址而不使用接口别名,显示这些地址:配置ip地址

    add dev  Interface Address/Mask label ethx:y   :增加接口ethx:y 的ip地址

    del  dev  Interface Address/Mask :   删除接口ethx:y 的ip地址

    show :显示网络接口信息

    flush dev Device:取消接口的ip地址

# ip route 配置网络路由信息

    add Destnation via Next_top dev Device

    del Destnation :删除路由信息

    show :显示路由信息

启用/禁用接口,使用下列命令实现:

    # ip link set Interface [on |off ]

    # ifconfig Interface [on |off ]

    # ifup Interface  ,# ifdown Interface

如何实现在单个接口配置多个ip地址,通过网络接口别名来实现: ethx:y ,如eth0:1 ,eth0:2

    配置1:# ifconfig ethx:y Interface/mask  例: # ifconfig eth0:1 192.168.4.160/24

[root@bogon ~]# ifconfig eth0:0 192.168.4.160/24
[root@bogon ~]# ifconfig eth0:1 192.168.4.170 netmask 255.255.255.0
[root@bogon ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:5E:85:58  
          inet addr:192.168.23.110  Bcast:192.168.23.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe5e:8558/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:99 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:11790 (11.5 KiB)  TX bytes:10767 (10.5 KiB)

eth0:0    Link encap:Ethernet  HWaddr 08:00:27:5E:85:58  
          inet addr:192.168.4.160  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 08:00:27:5E:85:58  
          inet addr:192.168.4.170  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

[root@bogon ~]# vi /etc/resolv.conf 

; generated by /sbin/dhclient-script
search itwish.cn
nameserver 10.50.0.10
nameserver 10.99.10.2
~                       
[root@bogon ~]# ip link show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
[root@bogon ~]# ip link set dev eth0 multicast off
[root@bogon ~]# ip link show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.23.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.23.254  0.0.0.0         UG    0      0        0 eth0
[root@bogon ~]# route add -host 192.168.3.150 gw 192.168.4.1 dev eth0
[root@bogon ~]# route add -net 192.168.2.0/23 gw 192.168.4.1 dev eth0
[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.150   192.168.4.1     255.255.255.255 UGH   0      0        0 eth0
192.168.23.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.4.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     192.168.4.1     255.255.254.0   UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.23.254  0.0.0.0         UG    0      0        0 eth0
[root@bogon ~]# route del -host 192.168.3.150 gw 192.168.4.1 dev eth0
[root@bogon ~]# route del -net 192.168.2.0/23 gw 192.168.4.1 dev eth0
[root@bogon ~]# route del -net default  gw 192.168.23.254 dev eth0
[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.23.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
[root@bogon ~]# route add -net default  gw 192.168.23.254 dev eth0
[root@bogon ~]# ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.110/24 brd 192.168.23.255 scope global eth0
    inet6 fe80::a00:27ff:fe5e:8558/64 scope link 
       valid_lft forever preferred_lft forever
[root@bogon ~]# ip addr add dev eth0 192.168.4.190/24 label eth0:3
[root@bogon ~]# ip addr show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.110/24 brd 192.168.23.255 scope global eth0
    inet 192.168.4.190/24 scope global eth0:3
    inet6 fe80::a00:27ff:fe5e:8558/64 scope link 
       valid_lft forever preferred_lft forever
[root@bogon ~]# ip addr del dev eth0 192.168.4.190/24
[root@bogon ~]# ip route add 192.168.2.0/24 via 192.168.4.1 dev eth0
RTNETLINK answers: No such process
[root@bogon ~]# ip route add 192.168.2.0/24 via 192.168.23.254 dev eth0
[root@bogon ~]# ip route show
192.168.23.0/24 dev eth0  proto kernel  scope link  src 192.168.23.110 
192.168.2.0/24 via 192.168.23.254 dev eth0 
169.254.0.0/16 dev eth0  scope link  metric 1002 
default via 192.168.23.254 dev eth0 
[root@bogon ~]# ip route del 192.168.2.0/24
[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.23.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.23.254  0.0.0.0         UG    0      0        0 eth0


网络服务配置服务脚本


Centos 6脚本目录: /etc/rc.d/ini.td/  或者 /etc/init.d/

服务脚本: SysV ,style ,LSB

    控制运行在后台守护进程,接受参数 {start|stop|restart|status}

    脚本位置: /etc/rc.d/init.d/  或者 /etc/init.d/

    配置某服务开机自动启动:# chkconfig Src_script_name on

    禁止开机自动启动:# chkconfig Src_script_name off

    查看开机启动的进程: # chkconfig --list

调用机制:

    1、/etc/init.d/Script_name   {start|stop|restart|status}

    2、service Script_name  {start|stop|restart|status}

与网络设备相关的服务控制脚本

    它们通常能够读取为网络配置的配置文件,以之实现其配置生效或失效等管理功能

配置文件有两类(/etc/sysconfig/network-scripts/)

    配置ip、掩码、网关: ifcfg-ethx ;ifcfg-pppx

    配置路由:route-ethx;route-pppx

配置ip:/etc/sysconfig/network-scripts/ifcfg-ethx

配置ip、掩码、网关:ifcfg-ethx
[root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0      # 指定设备,此配置关联至设备 ,设备名要与文件名ifcfg-后的内容一致
    HWADDR=00:0C:29:64:48:F5  # MAC地址,要与真实MAC地址保持一致,可省略
    TYPE=Ethernet   # 设备类型:Ethernet ,Bridge ,PPP
    UUID=126fc358-718b-4364-84dc-50506fc6dd82 #唯一标示,可省略
    ONBOOT=yes  # 是否开机自动启用 {yes|no}
    NM_CONTROLLED=yes   # 是否接受NetworkManager 脚本控制 {yes|no}
    BOOTPROTO=static    # 配置引导协议 ,{none|static} 手动配置 ,dhcp 动态获取协议 ,bootp 引导协议,如无盘工作站
    IPADDR=192.168.4.150   # ip地址
    GATEWAY=192.168.4.1   # 网关
    DNS1=221.130.33.60   # dns服务器地址
    DNS2=221.130.33.52
    NETMASK=255.255.255.0  # 子网掩码
    IPV6INIT=no # 是否自动初始化IPv6协议地址
    USERCTL=no  # 是否允许普通用户启用或禁用此网络设备
    PEERDNS={yes|no} #  是否允许dhcp服务分配地址时直接更新/etc/resolv.conf中的dns服务器地址

配置路由:/etc/sysconfig/network-scripts/route-ethx

    配置文件的格式1,每行一个要配置的路由条目:Dest  via Next_hop

    配置文件格式2,每一组一个路由条目:

        ADDRESS#=Dest

        NETMASK#=Netmask

        GATEWAY#=Gateway

[root@bogon ~]# vi /etc/sysconfig/network-scripts/route-eth0

192.168.2.0/24 via 192.168.4.1
192.168.10.0/24 via 192.168.4.1
[root@bogon ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.23.110 is already in use for device eth0...
                                                           [  OK  ]
[root@bogon ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.23.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     192.168.23.254  255.255.255.0   UG    0      0        0 eth0
192.168.10.0    192.168.23.254  255.255.255.0   UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.23.254  0.0.0.0         UG    0      0        0 eth0

如何实现在单接口上配置多个ip

    配置2:通过配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0:1

    DEVICE=ethx:y

    BOOTPRO={none|static|dchp}

    IPADDR=

    ONBOOT=yes|no

    GATEWAY=

    USERCRL=yes|no

[root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:2

DEVICE=eth0:2
BOOTPRO=static
ONBOOT=yes
IPADDR=192.168.23.160
NETMASK=255.255.255.0
GATEWAY=192.168.23.254
DNS1=10.50.0.10
USERCRL=no
PEERDNS=yes
~ 
[root@bogon ~]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Determining if ip address 192.168.23.110 is already in use for device eth0...
Determining if ip address 192.168.23.160 is already in use for device eth0...
                                                           [  OK  ]
[root@bogon ~]# ip link show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
[root@bogon ~]# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5e:85:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.23.110/24 brd 192.168.23.255 scope global eth0
    inet 192.168.23.160/24 brd 192.168.23.255 scope global secondary eth0:2
    inet6 fe80::a00:27ff:fe5e:8558/64 scope link 
       valid_lft forever preferred_lft forever

配置主机名:# hostname

    配置文件: /etc/sysconfig/network 或者 /etc/hostname

[root@bogon ~]# hostname 
bogon

[root@bogon ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=bogon


网络管理或检测等相关的工具:


# yum install net-tools  traceroute mtr  安装网络工具包

# ping [option] ip  :测试网络连通性,ICMP协议

    -c n :次数 ,例# ping -c 3 192.168.4.1

    -t n : 测试的执行时长,等待n秒未响应就退出

# traceroute HOST (首先安装traceroute rpm包)检测路由路径

# mtr HOST  (首先安装mtr rpm包) 网络诊断工具

# netstat 显示网络连接

    -t :显示tcp连接

    -u:显示udp连接

    -n:数字格式显示

    -l:显示listening监听状态网络

    -a:显示所有

    -p:显示连接进程

    -r:显示路由表

  常用组合:

    -tan

    -tunl

    -rn 

# ss命令选项与netstat选项类似

    -t :显示tcp连接

    -u:显示udp连接

    -n:数字格式显示

    -l:显示listening监听状态网络

    -a:显示所有

    -p:显示连接进程

    -e:显示扩展信息

    -o state {established}

# ethtool   查询或控制网络硬件

    Interface  :显示设备接口属性   例: # ethtool eth0

    -S Interface  : 显示设备接口的统计数据  例; # ethtool -S eth0


本章blog知识点汇总


网络配置命令:

# ifconfig  (#ip addr ,#ip link)显示所有活动网口的状态信息

# ifconfig interface address netmask 为某些接口配置多个ip地址

# route -n 以数字形式显示路由条目

# route add  [-host|-net] IP/Mask gw Next_hop dev Device 配置主机或网络路由

# route add  [-host|-net] IP/Mask  删除主机或路由条目

# ip link set  [dev] NAME [up |down] [multicast on | multicast off]  设置网络接口状态

# ip addr add dev Interface Address label ethx:y    某接口配置多个ip地址

# ip addr del  dev Interface Address  删除某接口ip地址

# ip addr flush Interface   清除接口ip地址信息

# ip route add DESTNATION  [via  Next_hop]   [dev DEVICE]  配置路由

# ip route del  DESTNATION 删除路由条目

# ip [route | addr | link ] show   显示路由或网络接口信息

启用接口命令:# ifconfig eth0 up  ;# ip link set eth0 up  ; # ifup eth0 

禁用接口命令:# ifconfig eth0 down  ;# ip link set eth0 down  ;# ifdown eth0 

DNS配置文件: /etc/resolv.conf 

hostname 配置文件: /etc/hostname 或者 /etc/sysconfig/network

服务脚本目录: /etc/init.d/  或者 /etc/rc.d/init.d/

    控制运行在后台守护进程,接受参数 {start|stop|restart|status}

    脚本位置: /etc/rc.d/init.d/  或者 /etc/init.d/

    配置某服务开机自动启动:# chkconfig Src_script_name on

    禁止开机自动启动:# chkconfig Src_script_name off

    查看开机启动的进程: # chkconfig --list

网络配置文件有两类(目录:/etc/sysconfig/network-scripts/)

    配置网络地址文件: /etc/sysconfig/network-scripts/ifcfg-ethx ;/etc/sysconfig/network-scripts/ifcfg-pppx

    配置路由文件:/etc/sysconfig/network-scripts/route-ethx;/etc/sysconfig/network-scripts/route-pppx

# yum install net-tools  traceroute mtr  安装网络工具包

# ping [option] ip  :测试网络连通性,ICMP协议

    -c n :次数 ,例# ping -c 3 192.168.4.1

    -t n : 测试的执行时长,等待n秒未响应就退出

# traceroute HOST (首先安装traceroute rpm包)检测路由路径

# mtr HOST  (首先安装mtr rpm包) 网络诊断工具

# netstat 显示网络连接

    常用选项: -tunl ,-tan,-rn

# ethtool   查询或控制网络硬件

    Interface  :显示设备接口属性   例: # ethtool eth0

    -S Interface  : 显示设备接口的统计数据  例; # ethtool -S eth0