Linux系统网络管理

Linux系统网络管理

一、基本网络配置:

将Linux主机接入网络,需要配置网络相关设置

一般包括以下内容:

主机名

IP/netmask

路由:默认网关

DNS服务器:

主DNS服务器

次DNS服务器

网络配置文件:

IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/networkscripts/ifcfg-IFACE:

DEVICE=ene33           # 针对网卡名称(必须有)

ONTBOOT=yes            # yes表示开机自动启动网卡,默认yes

BOOTPROTO=dhcp         # 自动获取,生产中一般改为手动配置static|none(必须有)

IPADDR=172.20.0.6      # 设置IP(必须有)

NETMASK=255.255.0.0    # 传统方式配置掩码(必须有)

PREFIX=16              # CIDR法设置掩码(必须有)

GATEWAY=172.20.0.1     # 设置网关

DNS1=114.114.114.114   # 设置DNS1

DNS2=8.8.8.8           # 设置DNS2

TYPE                   # 接口类型,常见有Ethernet,Bridge

UUID                   # 设备唯一表示

路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE

注意:需service network restart生效

两种风格:

(1) TARGET via GW

    如:10.0.0.0/8 via 172.16.0.1

(2) 每三行定义一条路由

         ADDRESS#=TARGET

         NETMASK#=mask

         GATEWAY#=GW

网络配配置方式:
静态指定:

命令:
    ifcfg家族:
        ifconfig:配置IP,NETMASK
        route:路由
        netstat:状态及统计数据查看
    iproute2家族:
        ip OBJECT:
            addr:地址和掩码;
            link:接口
            route:路由
        ss:状态及统计数据查看
    CentOS 7:nm(Network Manager)家族 立即生效,修改配置文件
        nmcli:命令行工具
        nmtui:text window 工具

注意:

(1) DNS服务器指定    
    配置文件:/etc/resolv.conf
(2) 本地主机名配置
    hostname
    配置文件:/etc/sysconfig/network
CentOS 7:hostnamectl                    
配置文件:
    RedHat及相关发行版
        /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME

动态分配(dhcp):依赖于本地网络中有DHCP服务

DHCP:Dynamic Host Configure Procotol

二、主机、网卡名称管理

传统命名:

以太网:ethX, [0,oo),例如eth0, eth1, ...
PPP网络(点到点网络,拨号上网):pppX, [0,...], 例如,ppp0, ppp1, ...

可预测命名方案(CentOS 7):

支持多种不同的命名机制:
基于 Fireware, 拓扑结构命名

(1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1, eno2, ...
(2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1, ens2, ...
(3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2s0, ...
(4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2e10, ...
上述均不可用,则仍使用传统方式命名;

命名格式的组成:

en:ethernet
wl:wlan
ww:wwan     

名称类型:

o<index>:集成设备的设备索引号;
s<slot>:扩展槽的索引号;
x<MAC>:基于MAC地址的命名;
p<bus>s<slot>:基于总线及槽的拓扑结构进行命名;

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

查看网卡

dmesg |grep –i eth

ethtool -i eth0

卸载网卡驱动:

modprobe -r e1000

rmmod e1000

装载网卡驱动

modprobe e1000

修改主机名

hostname [NEWNAME] 临时生效,重启恢复

永久生效:

    CentOS6:

    修改/etc/sysconfig/network

    CentOS7:

    修改/etc/hostname

    或:hostnamectl set-hostname [NEWNAME]

hostname [NEWNAME] 使配置文件生效
修改CentOS7网卡命名为传统命名方式,实现自动化运维

(1) 编辑/etc/default/grub配置文件

GRUB_CMDLINE_LINUX=”rhgb quiet net.ifnames=0″

或:修改/boot/grub2/grub.cfg   linux 16 行尾添加 net.ifnames=0

(2) 为grub2生成其配置文件

grub2-mkconfig -o /etc/grub2.cfg

(3) 重启系统

修改本地解析器

/etc/hosts

本地主机名数据库和IP地址的映像

对小型独立网络有用

通常,在使用DNS前检查

一般建议在127.0.0.1的行尾加上本机的hostname

注:如果hostname发生更改,一定要记得同时更改/etc/hosts里的原添加内容

搭建网站也建议将网站地址与网页名称对应写入到/etc/hosts文件中,避免解析出错

设置DNS

/etc/resolv.conf

nameserver DNS_SERVER_IP1

nameserver DNS_SERVER_IP2

nameserver DNS_SERVER_IP3

三、网卡别名

对虚拟环境有用,可将多个IP地址绑定到一个网卡上

eth0:1、eth0:2、eth0:3

ifconfig命令:

ifconfig eth0:0 192.168.1.100/24 up

ifconfig eth0:0 down

ip命令:

ip addr add 172.16.1.2/16 dev eth0

ip addr add 172.16.1.1/16 dev eth0 label eth0:0

ip addr add 172.16.1.2/16 dev eth0 label eth0:0

ip addr del 172.16.1.1/16 dev eth0 label eth0:0

ip addr flush dev eth0 label eth0:0

为别名设备添加配置文件,永久生效

(1)service NetworkManager stop 关闭图形界面网络管理

(2)ifctg-ethX:xxx

(3)必须使用静态IP配置

DEVICE=eth0:0

IPADDR=10.10.10.10

NETMASK=255.0.0.0

ONPARENT=yes

(4)最后重启网络服务

service network restart

四、网络接口配置bonding

Bonding是将多个网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。
直接给两块网卡设置同一IP地址是不可以的。
通过bonding,虚拟一块网卡对外提供链接,物理网卡被修改为相同的MAC地址

Bonding工作模式:

Mode 0 (balance-rr)

    轮转(Round-robin)策略:从头到尾顺序的在每个slave接口上发送数据包。提供负载均衡和容错的能力   

Mode 1 (active-backup)

    活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。

    为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见    

Mode 3 (broadcast)

    广播策略:在所有的slave接口上传送所有的报文,提供容错能力

查看bond0主备状态:

/proc/net/bonding/bond0

创建bonding设备的配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS= “miimon=100 mode=0”


/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

USERCTL=no

也可使用nmcli实现bonding

添加bonding接口

    nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup

添加从属接口

    nmcli con add type bond-slave ifname ens7 master mybond0

    nmcli con add type bond-slave ifname ens3 master mybond0

注:如无为从属接口提供连接名,则该名称是接口名称加类型构成,要启动绑定,则必须首先启动从属接口

nmcli con up bond-slave-eth0

nmcli con up bond-slave-eth1

启动绑定

nmcli con up mybond0

取消bonding

1.卸载驱动模块

    lsmod                        显示所有已加载的驱动模块

    lsmod | grep bond

    ifconfig bond0 down      禁用网卡

    modproble -r bonding



2.删除和修改文件

    rm -r ifcfg-bond0

    vim ifcfg-eth{0,1}

    service     network restart       重启网络服务

五、实现网络组

代替bonding的一种技术

网络组:将多个网卡聚合在一起的方法,从而实现冗错和提高吞吐量

多种方式运行:

broadcast                 广播模式

roundrobin               轮播模式

activebackup           主备模式

loadbalance              负载均衡模式

lacp (implements the 802.3ad Link Aggregation Control Protocol)

创建网络组Network Teaming(RHCE)

nmcli con add type team con-name team0 ifname team0 config

‘{“runner”: {“name”: “loadbalance”}}’

nmcli con mod team0 ipv4.addresses 192.168.1.100/24

nmcli con mod team0 ipv4.method manual

nmcli connection show

nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0

nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0

nmcli con up team0

nmcli con up team0-eth1

nmcli con up team0-eth2

nmcli connection show

teamdctl team0 state

删除网络组:

第一种方法:删除network-scripts下配置文件

第二种方法:nmcli connection delete team0 team0-eth1 team0-eth2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值