路由观念与路由器设定-linux鸟哥的私房菜服务器篇08(阅读笔记)

8.1    路由
     8.1.1 路由表产生的类型
1. 依据网络接口产生的IP二存在的路由
2. 手动或预设路由(default route)   
    注意:你所规划的路由必须是你的装置(如eth0)可以直接沟通的情况(反过来说,如果想连接到一个和当前主机直接相连的路由,那么主机的路由表中必须有那个路由的信息)
     # route add -net 192.168.5.0 netmask 255.255.255.0 dev eth0        ----假设与eth0连接的路由的IP为192.168.5.254
3. 动态路由的学习
                注意:需要额外软件的支持,比如zebra、quaggaa
           8.1.2.1 IP Alias几个常见的用途
1. 建立虚拟的网络接口来连接一个虚拟的网络接口
    ifconfig [device] [IP] netmask [netmask IP] [up|down]
    # ifconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up        ----在eth0上启动一个新的接口(不需要更动原来的网络参数)
2. 在一个实体网域中含有多个IP网域
3. 既有设备无法提供更多实体网卡
    8.1.3 如何在开机时启动IP Alias
          注意:如果是DHCP获得IP的方式要使用实体网卡才可以(也不一定)
方式一:. 将ifconfig指令写入/etc/rc.d/rc.local,当然因为没有写入network的配置文件,因此重启网络无法重启IP Alias
    # vim /rc.d/rc.local
        ifconfig eth0:0 192.168.0.100 netmask 255.255.255.0 up
方式二:透过建立虚拟设备的配置文件
    # cd /etc/sysconfig/network-scripts
    # vim ifcfg-eht0:0        ----编写独立的配置文件
DEVICE=eth0:0        ----与文件名对应
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
    # ifup eth0:0    ----启动这个虚拟设备
    # ifdown eth0:0        ----关闭这个虚拟网卡
    # /etc/init.d/network            ----重启整个网络可以启动这个虚拟设备
    8.1.3 重复路由的问题
          注意:多个IP不要设在同一个网域,根据路由规则来自多个接口的封包有可能只会从一个接口给与响应,无法均衡带宽
8.2    路由器架设
    8.2.1 什么是路由器与IP分享器:sysctl.conf
          8.2.1.1 路由功能实现方式
1. 硬件功能:路由器内有嵌入式操作系统
2. 软件功能:例如Linux操作系统的核心就提供封包转递的能力
    # cat /proc/sys/net/ipv4/ip_forward        ----Linux核心转递封包配置文件
1. 启动封包转递方式一
    # echo 1 > /proc/sys/net/ipv4/ip_forward        ----启动档案中的设定,不过重启后会失效
2. 启动封包转递方式二
    # vim /etc/sysctl.conf        ----修改系统配置文件达成封包转递的功能
        net.ipv4.ip_forward=1        ----本来为0
    # sysctl -p        ----立即让该设定生效
          8.2.1.2 路由设备规划路由的两种方式
1. 静态路由:直接以类似route的指令直接设定路由表到核心功能当中,设定值只要与网域环境相符即可。(当网域有变化时,需要手动重新设定)
2. 动态路由:透过类似quagga或zebra软件的功能(动态侦测网域的变化)
          8.2.1.3 IP分享器(NAT服务器,Network Address Translatiuon,网络地址转换)
               注意:NAT本身就是一个路由器,只是多了一个IP转换的功能。只有路由器两端的网域分别是公有IP和私有IP时才需要NAT功能。
1. 如果路由器的两个接口一个是public IP,一个是private IP,因为私有IP不能直接与公共IP沟通其路由信息,此时就需要额外的NAT服务;
2. Linux的NAT服务器透过修改封包的IP表头数据之来源或目标IP,让来自私有IP的封包转成NAT服务器的公有IP,就可以连上Internet
    8.2.2 何时需要路由器
1.  实体线路之布线及效能的考虑
2. 独立部门与保护数据的考虑
    8.2.3 静态路由之路由器实作
          1. 网络结构
                                     Internet
----------------------------|------------------------------------
                               Router A(NAT)
                                          |
workstation——    Hub/Switch—— Linux Router
                                                                    |
                              -------------------------------------------------------
                               client Linux ——   Hub/Switch——winxp
                                                                    |
                                                                win7
                               -------------------------------------------------------
               2. 节点信息
Router A:
IP外(public IP)
IP内(192.168.1.254/24)
Routing(192.168.100.0/24->Linux Router)
Default gateway(外部ISP提供)
-------------------------------------------------
Linux Router:
IP外(192.168.1.100/24)
IP内(192.168.100.254/24)
Default gateway(192.168.1.254)
workstationx:
IP:192.168.1.101
Default gateway:192.168.1.254
option(加入Linux Router)
-------------------------------------------------
client Linux:
IP:192.168.100.10
Default gateway:192.168.100.254
win7:
IP:192.168.100.20
Default gateway:192.168.100.254
winxp:
IP:192.168.100.20
Default gateway:192.168.100.254
-----------------------------------------------------
               3.  设置Linux Router
第一步:设置对外的eth0接口
    # vim /etc/sysconfig/network-scrips/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:71:85:BD"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=none
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.254        ----透过Router A连接出去
第二步:再处理eth1这张之前你一直没有驱动的网络卡(内网),对内不需要网关
    # vim /etc/sysconfig/network-scrips/ifcfg-eth1
DEVICE="eth1"
HWADDR="08:00:27:2A:30:14"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=none
IPADDR=192.168.100.254
NETMASK=255.255.255.0
第三步:启动IP转递
    # vim /etc/sysctl.conf
        net.ipv4.ip_forword=1         ----启动转递封包功能
    # sysctl -p    ----立即启动封包转递功能
    # cat /proc/sys/net/ipv4/ip_forword
                                     ----是1就对了
                        第四步:重新启动网络,并且观察路由与ping Router A
                             # /etc/init.d/network restart          ----重启网络
                             # route -n           ----查看路由表,看看默认网关设置是否正确
                             # ping -c 2 192.168.1.254          ----ping一下网关(Router A)
                        第五步:暂时关闭防火墙!这一步也很重要
                             # /etc/init.d/iptables stop   
                   4. 设置受保护的网域内的主机(以clientlinux为例)
                        # vim /etc/sysconfig/network-scripts/ifcfg-eth0          ----eht0是仅有的一张网卡
DEVICE="eth0"
HWADDR="08:00:27:2A:30:14"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=none
IPADDR=192.168.100.10
NETMASK=255.255.255.0
                         GATEWAY=192.168.100.254          ----Linux Router  
                        DNS1=168.95.1.1          ----有这个就不需要修改/etc/resolv.conf
                        # /etc/init.d/network restart          ----重启网络
                        # route -n          ----查看下路由表信息
                        # ping -c 2 192.168.100.254          ----ping Linux  Router试试
                        # ping -c 2 192.168.1.254          ----ping Router A 会失败,发起联机的封包发到Router A,Router A知道封包的来源IP,但路由表中没有下层网域的记录,因此就走默认网关,发到外网去了,回不来了
                        # route add -net 192.168.100.0 netmask 255.255.255.0 gw 192.168.1.100                 ----这样那个ICMP封包就能找回去了,但下次重启后设个设定就无效了
                        # vim /etc/sysconfig/network-scripts/route-eth0          ----建立路由配置文件
                              192.168.100.0/24 via 192.168.1.100 dev eth0     ----【目标网域 via 透过的网关 dev 装置】
                   5. 设置让workstation与clientlinux不透过Router A的沟通方式
                        # vim /etc/sysconfig/network-scripts/route-eth0          ----workstation的eth0网卡
                             192.168.100.0/24 via 192.168.1.100 dev eth0          ----这个路由器和workstation连在同一个集线器上       
8.3    动态路由架设:quagga(zebra+ripd)
        8.3.1  准备工作
              1. 常见的动态路由协议
                   RIPv1, RIPv2, OSPF, BGP等
              2. zebra与RIP
                   zebra:     这个daemon负责更新核心的路由规则。
                   RIP:     这个daemon则是想附近的其它Router沟通协调路由规则的传送与否。
              3. 安装quagga
                   注意:各个路由服务的配置文件都必须以/etc/quagga/*.conf的档名来存储
              # yum install quagga          ----zebra的延伸,这个软件提供的动态路由协议放置在/etc/quagga/
         8.3.2 练习quagga
             -----------------------------------------------------------------------
                                   Router Z1——     Switch     ——Router Z2
                                       |                                                                     |
             PC Z1——  Switch  ——PC Z2           PC Z3—— Switch——PC Z4
            -----------------------------------------------------------------------
         
         节点信息:
          ----------------------------------
              Router Z1:
              IP1:      192.168.1.200/24
              IP2:      192.168.200.254/24
              Default getway:      192.168.1.254
            Router Z2:
              IP1:     192.168.1.100/24
              IP2:     192.168.100.254/24
         ----------------------------------------
            PC Z1:
              IP:     192.168.200.10
            PC Z1:
              IP:     192.168.200.10
         -----------------------------------------
          1. 将所有主机的IP设定妥当
                    注意:路由器即 Router Z1和 Router Z2除了网络参数设定妥当外还需要加上ip_forword参数的设定   
         2. 在两部Router上面设定zebra    
              第一步:先设定会影响动态路由服务的zebra并启动zebra
                   # vim /etc/quagga/zebra.conf          ----编辑quagga的配置文件
                        hostname www.centos.vbird        ----给与这个路由器一个主机名,随便去
                    password linuxz1        ----给与一个密码
                    enable passwd linuz1        ----将这个密码生效
                    logfile /var/log/quagga/zebra.log        ----将所有的zebra产生的信息存到登录文件中
                   # /etc/init.d/zebra start          ----启动zebra服务     
                   #  chkconfig zebra on          ----设定开机自动启动
                   # netstat -tunlp | grep zebra          ----看看这个服务是否启动顺便看看开启了那个端口(2601)
                   # telnet localhost 2601          ----登陆zebra服务         
                     >show ip  route
                        -------------------------------------------------------------------
                        |     K:     代表以类似route指令加入核心的路由规则,包括route-ethN所产生的规则
                        |     C:     代表由你的网络接口所设定的IP而产生的路由规则
                        |     S:     以zebra功能所设定的静态路由信息
                        |     R:     就是透过RIP协议所增加的路由规则
                        -------------------------------------------------------------------
                   # vim /etc/quagga/zebra.conf          
                        ip route 10.0.0.0/24 eth0          ----新增这一行(添加一条新的路由信息)  
         3. 在两部Router上面设定ripd
              # vim /etc/quagga/ripd.conf          ----设定Router Z1
                   hostname www.centos.vbird         ----设定Router的主机名
                password linuxz1        ----设定好自己的密码
                debug rip events        ----可以记录较多的错误信息
                debug rip packet        
                router rip        ----启动Router的rip功能
                version 2        ----启动的是RIPv2的服务(默认)
                network 192.168.1.0/24        ----这就是我们管理的接口
                network 192.168.100.0/24    
                interface eth0        ----针对外部的那个接口,略过身份验证
                no ip rip authentication mode        ----略过身份验证
                log file /var/log/quagga/zebra.log        ----登录档设定与zebra相同即可
              # /etc/init.d/ripd start          ----重启ripd
              # chkconfig ripd on          ----设置开机启动
              # netstat -tulnp | grep ripd          ----查看启动状况
         4. 检查RIP协议的沟通结果
8.4    特殊状况:路由器两边界面是同一个IP网段:ARP Proxy
    1. 网络结构
                                     Internet
          ----------------------------|-----------------------------------------
                               Router A(NAT)
                                          |
               PC 1——    Hub/Switch—— Linux Router
                                                                    |
                              -------------------------------------------------------
                                          PC 2  ——   Hub/Switch—— PC 4
                                                                    |
                                                                 PC 3
                               -------------------------------------------------------
    2. 节点信息
         Router A:
              IP(外):public IP
              IP(内):192.168.1.254
         ---------------------------------
         Linux Router:
              IP(eht0 外):192.168.1.100/24
              IP(eth1 内):     192.168.1.200/24
         PC 1:
             IP:    192.168.1.101
         ---------------------------------
         PC 2:
              IP:     192.168.1.10
         PC 3:
              IP:     192.168.1.20
         PC 4:
              IP:     192.168.1.30
         ---------------------------------
    3. 设定Linux Router(以下命令可以制作成一个脚本设定每次开机自动执行)
         第一步:先设定外部eth0的ARP Proxy,让三个IP对应到自己的MAC,让外部接口拥有三个IP的操控权
              # arp -i eth0 -s 192.168.1.10 08:00:27:71:85:BD pub          ----设定PC 2的IP对应Linux Route rMAC
               # arp -i eth0 -s 192.168.1.10 08:00:27:71:85:BD pub          ---- 设定PC 3的IP对应Linux Router MAC
               # arp -i eth0 -s 192.168.1.10 08:00:27:71:85:BD pub          ---- 设定PC 4的IP对应Linux Router MAC
              # arp -n           ----查看一下ARP对应
         第二步:开始处理路由,增加PC2-PC4的单记录有经过内部的eth1来传递
              # route add -host 192.168.1.10 eth1          ----路由到PC2(如果路由到一个路由器,会是一个网域,而且经由一个网关,网关是路由器的IP)
              # route add  -host 192.168.1.20 eth1
              # route add -host 192.168.1.20 eth1
              # route add -host 192.168.1.30 eth1
         第三步:设定一下内部的ARP Proxy工作(绑在eth1上头),这样PC2-PC4传递到PC1或Router A的封包就能够透过Linux Router传递出去
              # arp -i eth1 -s 192.168.1.101 08:00:27:2A:30:14 pub          ----PC1
              # arp -i eth1 -s 192.168.1.254 08:00:27:2A:30:14 pub          ----Router A
         第四步:清除掉eth1的192.168.1.0/24(因为上面我们已经建立了新的路由规则了)
              # route del -net 192.16.1.0 netmask 255.255.255.0 eth1
8.5    重点回顾
8.6    本章习题6
8.1.2 一个网卡绑定多个IP:IP Alias的测试功能

转载于:https://www.cnblogs.com/eli01/p/3559627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值