首页 > 代码库 > linux常用网络配置

linux常用网络配置


网卡名称:

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

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

 卸载网卡驱动:

   modprobe  -r e1000

 装载网卡驱动:

   modprobe  e1000

 网卡名定义在 /etc/udev/rules.d/70-persistent-net.rules 文件中,定义了网卡命名的详细方式,

  这个文件是安装系统时自动生成的

技术分享

 可以在这个文件中,修改NAME选项,以更改网卡名,修改以后需要需改相应的配置文件,否则网卡无法启动,

 编辑网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-网卡名

   修改”DEVICE=“项

 修改以后可以使用 service network restart 命令重启网络服务

  如果修改配置文件后,自动生效了,那是因为有 NetworkManager服务在运行,但是这个服务的生效结果完全是靠运气,所以一般情况下,都是把这个服务给关闭。

可是使用 service NetworkManager status 命令查看服务状态

service NetworkManager stop   停止此服务

chkconfig NetworkManager off  下次系统启动时不启动此服务


网卡配置文件"/etc/sysconfig/network-scripts/ifcfg-eth0"各项所代表的意思:

技术分享




网卡别名:

   工作做经常遇到,在多个网络环境中来回切换,如果只有一个IP需要来回改动,所以就需要一个网卡绑定多个IP地址,这样就可以避免来回手动切换网络。

 网卡别名:

    首先,关闭NetworkManager服务

      service NetworkManager stop

    创建一个配置文件 ,文件名为网卡的文件名+“:num”如 :

网卡文件为:ifcfg-eth0 ,创建文件“ifcfg-eth0:1",冒号后跟的数字,可以随意指定。


示例:虚拟网卡实现一个网卡多个地址


#cd /etc/sysconfig/network-scripts
#vim ifcfg-eth0
    DEVICE="eth0"
    BOOTPROTO="dhcp"
    ONBOOT="yes"
    ~
#vim ifcfg-eth0:1
    DEVICE="eth0:1"
    IPADDR=10.1.1.60
    PREFIX=16
    GATEWAY=10.1.1.254
    DNS1=8.8.8.8
    ONPARENT=yes

重启网络服务:

技术分享

查看网卡信息:

技术分享


使用网卡别名需要注意的是:

  对虚拟主机有用

  将多个IP地址绑定到一个NIC上,命名格式:

    eth0:1

    eth0:2

    eth0:3

  为每个设备别名生成独立的接口配置文件

     1、关闭NetworkManager服务

    2、配置文件命名格式ifcfg-ethX:xxx

     3、必须使用静态联网

        DEVICE=eth0:0

        IPADDR=10.10.10.10

        NETMASK=255.0.0.0

        ONPARENT=yes

    注意:重启网络服务service network restart 生效

    参考/usr/share/doc/initscripts-*/sysconfig.txt




网络接口配置-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接口上传送所有的报文。本模式提供容错能力。Bonding配置



创建bonding设备的配置文件

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

DEVICE=bond0
BOOTPROTO=none
BONDING_OPTS=“miimon=100 mode=0”
#vim  /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路

 查看bond0状态:/proc/net/bonding/bond

 关于bonding的详细配置请参照:

    /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt


示例:

创建Mode 1 (active-backup)

首先确保NetworkManager 服务处于停止状态

# service NetworkManager stop

在/etc/sysconfig/network-scripts目录下创建bonding配置文件

# vim ifcfg-bond0

DEVICE=bond0
IPADDR=10.1.252.60
PREFIX=16
GATEWAY=10.1.0.1
DNS1=8.8.8.8
BONDING_OPTS="miimon=100 mode=1"

而后编辑第一块网卡的配置文件

# vim ifcfg-eth0

DEVICE=eth0
SLAVE=yes
MASTER=bond0

编辑第二块网卡的配置文件:

# vim ifcfg-eth1

DEVICE=eth1
SLAVE=yes
MASTER=bond0

重启网络服务:

# service network restart

成功执行ifconfig 命令可以看到两块网卡的MAC地址完全一样,及两个网卡共用一个MAC地址

技术分享

查看/proc/net/bonding/bond0文件可以看到当前工作的网卡

技术分享

测试:使用另一台机器,ping这个服务器,ping时手工切断eth0,由于设置的时间是100ms检测一次,所以100ms后eth1顶替eth0工作,中间交接时间丢失一个是数据包

技术分享

再次查看/proc/net/bonding/bond0文件可以发现eth1处于活跃状态。

技术分享




跨网络通信:

跨网络通信:路由

路由分类:

    主机路由

    网络路由

    默认路由


路由管理命令:

查看:route -n

添加:route add

route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If]

例:

 目标:192.168.1.3 网关:172.16.0.1

# route add -host 192.168.1.3 gw172.16.0.1 dev eth0

 目标:192.168.0.0 网关:172.16.0.1

# route add -net 192.168.0.0 netmask 255.255.255.0 gw172.16.0.1 dev eth0
# route add -net 192.168.0.0/24 gw172.16.0.1 dev eth0

 默认路由,网关:172.16.0.1

# route add -net 0.0.0.0 netmask 0.0.0.0 gw172.16.0.1
# route add default gw172.16.0.1

删除:route del

route del [-net|-host] target [gwGw] [netmask Nm] [[dev] If]

例:

目标:192.168.1.3 网关:172.16.0.1

# route del -host 192.168.1.3

目标:192.168.0.0 网关:172.16.0.1

# route del -net 192.168.0.0 netmask 255.255.255.0



示例:

在VMware中,使用两台主机当作路由设备,分别为R1,R2。另外需要两台客户机,实现跨网段访问。

R1:两个端口,分别为:

    eth0:192.168.60.1/24

    eth1:10.10.0.1/8

R2:两个端口,分别为:

    eth0:172.30.0.1/24

    eth1:10.10.0.2/8

客户机1:

    192.168.60.60/24

客户机2:

    172.30.0.60/16

 如图所示,就可以实现客户机1与客户机二的相互访问,由于R1与R2需要互联,所以他们的某个端口需要在同一个网段中。

技术分享

具体步骤如下:

设置R1:

首先关闭,NetworkManager服务

# service NetworkManager stop

打开路由转换:

 将文件/proc/sys/net/ipv4/ip_forword文件改为1,处于开启状态

#   echo  1 > /proc/sys/net/ipv4/ip_forword

设置R1端口eth0:

#  vim  /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    IPADDR=192.168.60.1
    PREFIX=24

保存退出


设置R1端口eth1:

 # vim  /etc/sysconfig/network-scripts/ifcfg-eth1
    DEVICE=eth1
    IPADDR=10.10.0.1
    PREFIX=8

保存退出


重启网络服务:

# service network restart

添加路由表:

  路由表相邻网段自动生成,只需要添加不相邻的网段,而设置网关需要设置为下一个路由器的临近接口。

#  route add -net 172.30.0.0/16  gw 10.10.0.2 dev eth1

清空防火墙列表:

# iptables -F

R1详细信息:

技术分享

技术分享


设置R2:

步骤和设置R1移至,只是一些参数不同,

 首先关闭,NetworkManager服务:

    # service NetworkManager stop

打开路由转换:

  将文件/proc/sys/net/ipv4/ip_forword文件改为1,处于开启状态

        # echo  1 > /proc/sys/net/ipv4/ip_forword

设置R2端口eth0:

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

DEVICE=eth0
IPADDR=172.30.0.1
PREFIX=16

保存退出

设置R2端口eth1:

# vim  /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
IPADDR=10.10.0.2
PREFIX=8

保存退出

重启网络服务:

# service network restart

添加路由表:

# route add -net 192.168.60.0/24  gw 10.10.0.1 dev eth1

清空防火墙列表:

# iptables -F

R2详细信息:

技术分享

技术分享


客户机1:

技术分享

客户机2:

技术分享

现在即可实现客户机1与客户机2之间的相互访问

技术分享

由于,跨越了两个路由,所以ttl为64-2,为62。



本文出自 “I'm Groot” 博客,请务必保留此出处http://groot.blog.51cto.com/11448219/1846522

linux常用网络配置