Linux网络配置企业级用法实战
目录:
一、route命令的局限性
二、动态路由的配置
三、专业路由工具
一、route命令的局限
由于route命令中大部分都是直接进行内存的修改,例如添加路由即直接添加进了内存之中,包括更改IP地址的命令,但此类方法并不能被保存住。即使添加路由后生效,在机器重启之后数据都会丢失,其只是临时生效。
故如想达到使其保存住的目的,应将其写入配置文件中。
如:
(1)默认路由,网关:172.16.01
Route add- net0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
Route add default gw 172.16.0.1
(2)删除:route del
Route del [-net|-host] target [gw|Gw] [netmask Nm] [[dev IF]]
(3)目标:192.168.13 网关:172.16.0.1
Route del -host 192.168.1.3
(4)目前:192.168.0.0 网关:172.16.0.1
Route del -net 192.168.0.0 netmask 255.255.255.0
二、动态路由的配置
1.使用背景
手工添加路由,适用于网段不多的情况。由于网络较小,添加的网段数量较少,而若互联网等大型的网络中手动添加每一条工作记录,其在现实情况下不利于维护。添加完后,由于网络top的不确定调整,再更改后网络中的每一条路有记录都需要修改,工作量过于庞大。故在稍复杂的网络幻境中,路由记录一般都并非手工添加完成,而通过路由协议自动生成。
即路由器中可进行一个自动根据当前网络状态生成路由记录的软件,此软件背后依赖于路由协议。
2.通过守护进程获取动态路由(较为著名普遍)
大致区别:
安装quagga包
可通过提供软件包提供类似的路由协议,例如quagga包的安装
(1)对软件包进行查看
[root@centos7 ~] #yum install quagga
(2)安装完后,发现其对应的服务,启动ospfd
[root@centos7 ~]#systemct1 start ospfd
此时程序无任何提示,表明其未正常启动
(3)查看对应端口是否拥有新的打开
[root@centos7 ~]#ss -nt1
[root@centos7 ~]#ss -nt1p
由此可得,其对应的配置文件并未生成,故而服务器未启动。
(4)进入目录
[root@centos7 ~]#ls /etc/quagga
[root@centos7 ~]#ls
目录中放置有希望启动的对应的配置文件,其中范例已经给出,只需将其拷贝而出。再进行改名,即将simple后缀进行删除。
[oot@centos7 ~]#cd/usr/share/doc/quagga-0.99.22.4/ospfd.conf.sample/etc/quagga/ospfd.conf
[oot@centos7 ~]#cp/usr/share/doc/quagga-0.99.22.4/ospfd.conf.sample/etc/quagga/ospfd.conf
(5)查看文件,此命令与Cisco相似近乎相同
[oot@centos7 ~]#cat /quagga/ospfd.conf
(6)重启服务
[root@centos7 ~]#ss -nt1
(7)查看工具vtysh
[root@centos7 ~]#vtysh
命令vtysh的配置
(8)登录完毕后即可进行命令的输入,体现了工具包的方便性。由于其与Cisco命令的相似,故而在学会Cisco命令之后也能够进行此类命令的敲写。但尤其此类情况较少被运用到,及逆行了解即可。
[root@centos7 ~] #vtysh
Hello, this is Quagga (version 0.99.22.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
centos7.magedu.com# conf t
centos7.magedu.om(config)#router ospf
centos7.magedu.com(config-router )# exit
centos7.magedu.com(config)#
centos7. magedu. com(config)#
centos7.magedu.com(config)# exit
centos7.maaedu.com#
centos7.maaedu.com#
centos7.maaedu.com#
支持多种路由协议: RIP、 OSPF和BGP
RIP:简单原则,即根据路由器数量来判断其优先级
假设当前存在一个当众多路由器构成了一个稍微复杂的路径状态,两两主机欲进行通讯时,即需要进行路由器的转发。
现今具有R1,R2,R3等多个路由器,项链之后构成了一个复杂的路径,可以通过多条道路到达远程主机。对于R1而言,当收到数据包并将其发送给目标主机时,必然在其自身生成了路由表,而路由表中记录了 B到达目标主机所处于网段的路径。若手动添加记录时,只能选择其一,而RIP协议会根据路由器数量来判断其优先级的方式,自动根据网络当前状态生成路由记录。即通过路由器越少,越优先的评定方式。当数量相同时,同样会自动决定通过的道路。如若路由器数量不同,解决方式将更为简便。
例如两个路由器和三个路由器路径的区别,对于RIP而言其会认为选择最短的路径、经过两个路由器的路径最好,即前者。
但通过数量的评定方式存在误区,即部分情况下路由器少的带宽速度缓慢。比如R3进行传输的速度为1M,尽管R1>R4>R5>此路径经过的路由器数量最多,但其为100速度,人为判断时显而易见宁愿经过路径多一些使用此条路线,OSPF可以进行此条路的选择,。此时选择可以综合考虑众多因素、更全面的OSPF更为合理,OSPF将带宽作为一个重要的考量,其认为上条带宽过大过慢,则优先选择下面的一条路。
RIP协议一般很少使用到,因其过于简单,在国内一般较为大型的企业,部分跨城市、省份进行分公司例如中国移动,其内部的网络都会选择OSPF较多。
BGP在互联网上使用较多。
额外的路由协议:CISCO常用的路由协议:EIGRP等......
3.将命令存入磁盘中的方法
在centos6上将IP地址改为静态地址,为将地址存入磁盘,需要修改配置文件。
[root@centos6 ~]#11 /etc/sysconfig/network-scripts/ //centos6网卡配置文件存储路径的查看
total 224
-rw-r--r--.3 root root 255 Mar 27 17:32 ifcfg-eth0
//其文件名为:ifcfg-eth0(网卡名称)
-rw-r--r--.1 root root 254 Jan 18 2017 ifcfg-1o
lrwxrwxrwx.1 root root 20 Mar 27 17:03 ifdown ->../../../sbin/i fdown
-rwxr-xr-x.1 root root 627 Jan 18 2017 ifdown-bnep
-rwxr-xr-x.1 root root 5891 Jan 18 2017 ifdown-eth
-rwxr-xr-x.1 root root 6195 Mar 23 2017 ifdown-ib
-rwxr-xr-x.1 root root 781 Jan 18 2017 ifdown-ippp
-rwxr-xr-x.1 root root 4168 Jan 18 2017 ifdown-ipv6
-lrwxrwxrwx.1 root root 11 Mar 27 17:03 ifdown-isdn -> ifdown-i ppp
-rwxr-xr-x.1root root 1617 Jan 18 2017 ifdown-post
-rwxr-xr-x.1root root 1064 Jan 18 2017 ifdown-ppp
-rwxr-xr-x.1root root 835 Jan 18 2017 ifdown-routes
-rwxr-xr-x.1 root root 1465 Jan 18 2017 ifdown-sit
-rwxr-xr-x.1 root root 1434 Jan 18 2017 ifdown-tunne
1rwxrwxrwx.1 root root18 Mar2717:03 ifup -> ../../../sbin/ifup
-rwxr-xr-x.1 root root 13117 Jan 18 2017 ifup-aliases
-rwxr-xr-x.1 root root859 Jan 18 2017 ifup-bnep
-rwxr-xr-x.1 root root 12084Jan 18 2017 ifup-eth
-rwxr-xr-x. 1 root root 11339 Mar 23 2017 ifup-ib
-rwxr-xr-x.1 root root 11971 Jan 18 2017 ifup-ippp
-rwxr-xr-x.1 root root 10490 Jan 18 2017 ifup-ipv6
-rwxrwxrwx.1 root root 9 Mar 27 17:03 ifup-isdn -> ifup-ippp
-rwxr-xr-x.1 root root 727 Jan 18 2017 ifup-plip
-rwxr-xr-x.1 root root 954 Jan 18 2017 ifup-p lusb
-rwxr-xr-x.1 root root 2527 Jan 18 2017 ifup-post
-rwxr-xr-x.1 root root 4154 Jan 18 2017 ifup-ppp
-rwxr-xr-x.1 root root 1925 Jan 18 2017 ifup-routes
-rwxr-xr-x.1 root root 3289 Jan 18 2017 ifup-sit
-rwxr-xr-x.1 root root 2563 Jan 18 2017 ifup -tunne1
-rwxr-xr-x.1 root root 4011 Jan 18 2017 ifup-wireless
-rwxr-xr-x. 1 root root 4623 Jan 18 2017 init.ipv6-global
-rwxr-xr-x.1 root root 1219 Jan 18 2017 net.hotp lug
-rw-r--r--.1 root root 15147 Jan 18 2017 network-functions
-rw-r--r--.1 root root 29857 Jan 18 2017 network-functions-i pv6
eth1 Link encap: Ethernet HWaddr 00:0C:29:E7::B4
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: fe80::20c:29ff:fee1:f7B4/64 Scope:Link
UP BROADCAST RUNNING MULTICASTMTU: 1500 Metric:1
RX packets:81 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen: 1000
RX bytes:18090 (17.6 kiB) TX bytes:1882(1.8kiB)
Link encap: Ethernet HWaddr 00:0c:29:E1:B4
inet addr:172.18.108.3 Bcast:172.18.255.255 Mask:255.255.0.0
inet6 addr: fe80: : 20c: 29ff: feel: f7b4/64 Scope:Li nk
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:81 errors:0 dropped:0 over runs:0 frame :0
TXpackets:18 errors:o dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen: 0
RX bytes:18090 (17 .6 KiB)TX bytes:1882 (1.8 KiB)
查询到当前文件名:ifcfg-eth03
以eth1为例,其地址:172.18.108.3,当前无eth1配置文件,仅有eth0的配置文件,即可参考eth0的格式。eth0的内容即为一个简单脚本,只包含变量赋值的重复。
DEVICE=eth0 表示此后的设置是针对于哪项网卡,此例中即eth0
TYPE=Ethernet 类型默认以太网
UUID=0b4a6ffe-dee7 -495e-903e -fc40505eb914ONBOOT=yes 唯一编号,保证其配置文件是唯一的
ONBOOT=yes 表示开机此网卡的启用与否状态
NM_CONTROLLED=yes
针对此文件,BOOTPROTO=dhcp,其体现网卡为自动获取或手动指定。dhcp表示自动获取,当想要进行手动指定时,则需要更改命令为
[root@centos6 network-scripts~]#static none //两者都可表示IP为手动指定。由于服务器通常情况下都为手动指定,故此项指令一般都会进行更改。
HWADDR=00:0C:29:E1:F7 : AA 此为网卡mac地址,应该与网卡的真是mac相匹配。如若此处网卡地址填写错误,将直接导致此网卡的无法使用。只要系统能够识别出eth0,也可选择省去此行的书写,便杜绝了失误的产生。
4.mac地址的修改
[root@centos6 ~]#cat > ifcfg-eth1 //此网卡配置目前不存在
BOOTPROTO == static //将网卡设置更改为手动指定
IPADDR=172.20.0.6 //指定IP地址格式
PREFIX=16 //IP地址必定配对子外掩码,进行子外掩码的书写
GATEWAY=172.200.1 //网关的添加
DNS1=114.114.114 //DNS的添加
DNS2=1.1.1.1 //DNS的备用
[root@centos6 network-scripts~]#CAT ifcfg-eth1
[oot@centos6 ~]#cat > ifcfg-eth1
BOOTPROTO == static
IPADDR=172.20.0.6
PREFIX=16
GATEWAY=172.200.1
DNS1=114.114.114
DNS2=1.1.1.1
[root@centos6]#ifconfig //查看是否生效
[root@centos6]#service network restart//未生效,重新启动服务
此时出现提示:eth1无法激活,是由于centos6的service NetworkManager服务。由于其对配置文件具有许多负面影响,通常建议关闭此服务。
[root@centos6]#service network restart//再次重启服务,
此时恢复正常。
[root@centos6]#service network restart //重新启动服务
在主机使用克隆方法后,便需要使用到mac地址的更改,使其不发生冲突。同时,有些环境中通过mac地址进行识别,只能采用特定mac地址的主机才能访问互联网,此类情况也可进行mac地址修改从而达到目的。
在实际操作中不会出现为了更改mac地址而更换地址的操作,如若想要修改网卡的mac地址,应将HWADDR进行修改。
MACADDR=00:0C:29:E1:F7:BB
使得主机AB互联互通
1.物理地址:
centos7
ens37: 192.168.1.100/24
centos6
eth1:192.168. 2. 100/24
A--vmnet10--ethO R1 eth1 --vmnet11--eth0 R2 eth1 --vmnet12--B
A:192.168.1.100/24 gateway:192.168.1.1
vim /etc/sysconfig/ network- -scripts/ifcfg-eth0DEVICE=eth0
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192. 168.1.1
R1:
eth0: 192. 168.1.1/24
ethl: 172. 16.0.1/16
echo1 > /proc/sys/net/ipv4/ip_forward
R2:
eth0:172.16.0. 2/16
eth1:10.0.0.1/8
echo 1 > /proc/sys/net/ipv4/ip_ forward
B:10.0.0.100/8 gateway:10.0.0.1
DEVICE=eth0
IPADDR=10.0.0.100
PREFIX=8
GATEWAY=10.0.0.1
eth0与A位于同网段,eth1与eth0为预备同网段,eth1与B位于同网段。以上三个网段需要搭建三个物理网段,再进行网卡与网段的调整。至此,物理结构已基本搭建完成。
2.实际操作
B主机中:
通过更改文件的方式,将网卡配置文件中的DHCT地址更改为static,或进行删除。
PADDR-10.0.0.100
NETMASK-255.0.0.0
GATEWAY-10.0.0.1
ONBOOT -yes
[root@B ~]#service network restart //重新起动服务,使其生效
[root@B ~]#route -n //查看路由
A主机中:
[root@A ~ ] #vie0
bash: vie0:command not found
[root@A ~]#vim/etc/sysconfig/network-scripts/ifcfg-eth //更改配置文件
//进行对IPADDR、GATEWAY的更改
DEVICE=eth0
TYPE= Ethernet
UUID=0b4a6ffe-dee7-495e-903e-fc40505eb914
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.1.100
PREFIX=2
GATEWAY=192.168.1.1.1
DEFROUTE=yes
IPV4 FAILURE FATAL=yes
IPV6INIT=no
NAME= "System eth0"
MACADDR=00:0C:29:El:F7:BB
PEERDNS=yes
PEERROUTES=yes
LAST CONNECT=1522143080
[root@A ~]#service network restart //重新启动服务,使其生效
[root@A network-scripts]#ifconfig
eth0 Link encap: EthernetHWaqdr 00:0C:29:El:F7:BB .
inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80: :20c :29ff:fee1: f7bb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: 1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame: 0
TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueue len: 1000
RX bytes:258 (258.0 b)TX bytes:2714 (2.6 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: : :1/128 Scope : Host
UP LOOPBACK RUNNINGMTU: 65536Metric: 1
RX packets:104 errors:0 dropped:0 overruns:0 frame:0
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen: 0
RX bytes:8196 (8.0 KiB)TX bytes:8196 (8.0 KiB)
当前地址已经生效
[root@A network-scripts]#route -n //查看路由的固定加入
Kernel IP routing table
DestInation Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 eth0
查看得到默认路由已成功添加。至此,A、B构建已完成。
按照同样的步骤,继续更改完善R1、R2的地址。需要进行确认当前主机的确以避免冲突。两主机R1更改主机名后,进入网卡配置文件内将其修改删除。至此,IP地址规划完毕。搭建好构架后,需要确保两两直连的通顺,以确保串联的通顺。根据此前分析,即确保eth0与A、eth1与eth0、eth1与B之间的相通。
[root@centos6 network-scripts]# vim ifcfg-eth0
DEVICE=eth0
TYPE= Ethernet
ONBOOT=yes
NMCONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.0.2
PREFIX=16
//当前为路由器,路由器是通过路由表来添加网关的,故不需要专门添加网关。
DEFROUTE=yes
IPV4 FAILURE FATAL=yes
IPV6INIT=no
NAME= "System eth0"
PEERDNS=yes
PEERROUTES=yes
LAST CONNECT=1522143080
[root@centos6 network-scripts]# vim ifcfg-eth1
DEVICE=eth1
IPADDR=10.0.0.1
PREFIX=8
[root@centos6 network-scripts]#service NetworkManager stop //进行此服务的停止命令
stopping NetworkManager daemon; [ ok ]
[root@centos6 network-scripts]#service network restart
//重新启动
由于克隆虚拟机的操作,使得两台虚拟机的Mac地址造成冲突,则需要进行UUID和Mac地址的删除,以避免此情况的出现。
[root@centos6 network-scripts]#service network restart
//再次进行重新启动
进行两台主机是否冲突的操作实验,确定不造成冲突后即可进行R1主机名的更改。
[root@centos6 Desktop]#cd
[root@centos6 ~]#
[root@centos6 ~]#
[root@centos6 ~]#hostname R1
[root@centos6 ~]#cdnet
bash:cdnet:command not found
[root@centos6 ~]#cd /etc/systemconfig/network-scripts/
[root@centos6 network-scripts]#ls
[root@centos6 network-scripts]# vim ifcfg-eth0
//更改eth0网卡的配置文件
DEVICE=eth0
IPADDR=192.168.1.1
prefix=24
//当前为路由器,路由器是通过路由表来添加网关的,故不需要专门添加网关。
[root@centos6 network-scripts]#service network restart
DEVICE=eth1
IPADDR=172.16.0.1
prefix=16
[root@centos6 network-scripts]#service NetworkManager stop
//进行此服务的停止命令
stopping NetworkManager daemon; [ ok ]
[root@centos6 network-scripts]#service network restart
//重新启动
[root@centos6 network-scripts]#chkconfig NetworkManager off
//可通过此命令将NetworkManager设置为永远开机不启动
[root@A ~]#service network restart
//重新启动服务,使其生效
[root@A network-scripts]#ifconfig
到此,IP地址暂时规划完毕
eth0 Link encap: EthernetHWaqdr 00:0C:
[root@centos6 network-scripts]#service NetworkManager stop //对主机R1进行pin操作,能够正常运行,即相通。对R2重复此操作,说明两两直连得以实现。依靠路由,进行串联的操作。由于拥有默认路由,故R1所相连的两个网段均可进行正常的ping操作。而进行到R1pingR2步骤时,R1拥有可到达的路由表,但数据安装包却未能传输给目的网段,导致出现了错误。此情况是由于R1收到数据包后检查数据包的默认地址,发现目的网段并非自身,故未将其使用。
未达到目的,应启动R1的路由功能,即开启路由转发功能。
[root@R1 ~]#cat /proc/sys/net/1pv4/1p_forward
[root@R1 ~]#echo 1 >/proc/sys/net/ipv4/ip_forward
此时,由于 R1 不存在路由,进入了有去无回的状态。此时在 R1上添加路由,应添加不直接相连的路由。
[root@Rl ~]# route add -net 10.0.0.0/8 gw 172.16.0.2
同理,继续在 R2 主机上添加不直接相连的路由记录。
此命令并不直观
三、专业路由工具
tracerout- 可以查看中间经过多的路由器具体是谁,进行跟踪路由。
mtrtracepath