<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 英創嵌入式Linux主板多網口多路由方案

     2018-6-29     作者:Emtronix         
    文章標簽:以太網

      主流的英創嵌入式主板均支持雙網絡接口,其中支持ISA擴展總線的主板型號,如:EM335x、ESM335x、ESM6802、ESM6800V等,還可以通過ISA總線外接ETA728模塊,再擴展兩路獨立的10M/100M網絡,從而可構成4網口系統。多網絡口的英創主板在工業應用中的典型應用是作為通訊管理機,通過網絡將應用數據上傳至數據中心。在實際應用中,有些需求是將應用數據上傳至不同的數據中心,這就需要多網口多路由的支持,也就是說每個網口有自己獨立的路由表,在英創Linux主板上通過相關的配置,即可實現上述功能,本文以ESM335x主板為例重點介紹該配置方案。


    1、Linux內核配置


      為了支持多路由表功能,內核配置中必須設置:

      CONFIG_IP_ADVANCED_ROUTER=y

      CONFIG_IP_MULTIPLE_TABLES=y


      具體menuconfig位置如下:

      Networking support  ---> 

           Networking options  

              [*]   IP: advanced router 

              [*]   IP: policy routing   


    2、利用ip route配置生成多路由表


      對于多個路由表,是通過/etc/iproute2/rt_tables進行管理的,Linux系統最多可以支持255張路由表,其中3張是內置的:

      255  local

      254  main

      253  default


      分別表示了路由表table的序號和名稱。在英創主板上對于各個網口的路由表定義序號從1開始,名稱就采用網口名稱。如:

      1eth0

      2eth1

      3eth2

      4eth3


      生成路由表的步驟如下:

      1、在rt_tables文件中增加一個路由表的序號和名稱:

      #>echo “1 eth0” >> /etc/iproute2/rt_tables

      #>echo “2 eth1” >> /etc/iproute2/rt_tables

      配置好后,可以用cat命令查看rt_tables文件:


    英創嵌入式Linux主板多網口多路由方案.png


      2、定義路由表規則

      利用2個Linux工具ip route、ip rule來定義路由表規則,可以用來指定IP地址的數據選擇指定的路由表。

      #>ip route add 192.168.202.0/24 dev eth1 src 192.168.202.175 table eth1

      #>ip route add default via 192.168.202.1 dev eth1 table eth1

      #>ip rule add from 192.168.202.175/32 table eth1

      #>ip rule add to 192.168.202.175/32 table eth1

      #>route add default gw 192.168.202.1


      增加后,可以用ip route show table eth1來查看:


    英創嵌入式Linux主板多網口多路由方案.png


      按照此定義的路由表規則,即所有來自“192.168.202.175”的IP數據包訪問外網時選擇eth1路由表,并使用該網段的網關路由。


    3、自動生成多網絡路由表


      在多網絡的情況下,為了方便客戶使用,我們采用網絡配置文件(ifcfg-eth*)和加載腳本文件(route-cfg.sh)來完成多個路由表的自動配置,免除了逐一配置的繁瑣過程。


      其中 ifcfg-eth*用于配置各個網絡的參數,一個文件對應于一個網口,例如對eth0的配置文件名為ifcfg-eth0,其文件內容如下:

           DEVICE=eth0                                                // 網絡名稱
                 TABLENUM=1                                              // table 序號
                 NETWORK=192.168.201.0                            // 網段IP
                 NETMASK=255.255.255.0                                   // 子網掩碼
                 ROUTER=192.168.201.1                                // 本網口的路由網關IP
                 IPADDR=192.168.201.175                                  
    // 本網口IP地址


    按上述方法生成好需要的若干配置文件ifcfg-eth*后,將ifcfg-eth*和route-cfg.sh均復制到/mnt/nandflash/目錄下。然后直接執行腳本文件route-cfg.sh即可自動完成路由表配置,該文件會根據ifcfg-eth*文件中的參數,自動生成所需的多網口多路由表

    #/mnt/nandflash/>./route-cfg.sh

    route-cfg.sh文件內容如下:

    #!/bin/sh


      for interface_file in $(ls /mnt/nandflash/ifcfg-eth*) ;do

        . ${interface_file}

        prefix=$(ipcalc -p ${IPADDR} ${NETMASK} | awk -F= '{print $2}')

        tablenum=${TABLENUM}

        if ! grep "^${tablenum} ${DEVICE}$" /etc/iproute2/rt_tables >/dev/null ;then

          echo "${tablenum} ${DEVICE}" >>/etc/iproute2/rt_tables

        fi

        echo ${DEVICE}: IPADDR=${IPADDR} gw=${ROUTER}

        ifconfig ${DEVICE} ${IPADDR} 

        # flush table

        ip route flush table ${DEVICE}

        # add table

        ip route add ${NETWORK}/${prefix} dev ${DEVICE} src ${IPADDR} table ${DEVICE}

        ip route add default via ${ROUTER} dev ${DEVICE} table ${DEVICE}

        ip rule add from ${IPADDR}/32 table ${DEVICE}

        ip rule add to ${IPADDR}/32 table ${DEVICE}

        # add default gw

        route add default gw ${ROUTER}  

      done


    4、測試網絡


      以ESM335x為核心,搭建雙網口雙網關的多路由系統,作為測試環境。下圖為雙網口網絡拓撲圖:


    335x.png


      最簡單的方法就是利用ping命令進行測試,ping命令可以指定網口。如:

      #> ping  -I eth0  202.98.96.68          (指定通過eth0 訪問外網 -> internet網站)

           #> ping  -I eth1  192.168.203.70        (指定通過eth1 訪問外網 -> 企業數據中心)


      如果利用系統的多路由表,也可以不用指定網口進行ping測試,但是系統有個自動選路的處理,會存在一定的延時。

      #> ping  202.98.96.68         

           #> ping  192.168.203.70


    英創嵌入式Linux主板多網口多路由方案.png


    英創嵌入式Linux主板多網口多路由方案.png

    文章標簽:以太網
    精品久久久久久久| 国产精品第一区第27页| 亚洲国产精品无码AAA片| 国产精品久久二区二区| 国产精品自拍一区| 人人妻人人澡人人爽精品日本| 国产精品白嫩美女在线观看| 久久午夜无码鲁丝片直播午夜精品 | 亚洲精品色婷婷在线影院| 亚洲日韩精品无码AV海量| 久久精品国产亚洲77777| 国产成人精品手机在线观看| 国产精品第一页在线| 四虎永久在线精品视频| 久久se精品一区二区国产| 国产精品人人做人人爽人人添| 国产精品毛多多水多| 精品久久久久久无码人妻中文字幕| 在线精品动漫一区二区无广告| 无码欧精品亚洲日韩一区夜夜嗨| 亚洲国产精品嫩草影院| 国产成人精品视频播放| 亚洲精品网站在线观看你懂的| 国产精品一区三区| 亚洲A∨午夜成人片精品网站| 亚洲精品福利在线观看| 无码国内精品人妻少妇| 国产免费久久精品99久久| 亚洲国产精品专区在线观看| 国产精品亚洲专区一区| 国产福利专区精品视频| 欧乱色国产精品兔费视频| 麻豆文化传媒精品一区二区| 精品人伦一区二区三区潘金莲| 奇米精品视频一区二区三区| 亚洲嫩草影院久久精品| 99精品热女视频专线| 国产成人无码精品久久久性色| 精品久久久久久99人妻 | 精品久久久久久久久午夜福利| 久久精品国产亚洲av日韩|