蘇州培訓(xùn)網(wǎng) > 蘇州思科認(rèn)證培訓(xùn)機(jī)構(gòu) > 三網(wǎng)IT
首頁 培訓(xùn)網(wǎng) 最新資訊 熱門問答

三網(wǎng)IT

13013833891 免費(fèi)試聽

您當(dāng)前的位置: 蘇州IT認(rèn)證培訓(xùn) > 蘇州思科認(rèn)證培訓(xùn) > 張家港思科認(rèn)證考試科目

張家港思科認(rèn)證考試科目_思科認(rèn)證培訓(xùn)

¥詳詢

班制:周末班

蘇州三網(wǎng)IT教育
上課(咨詢)地址:蘇州市干將東路666號和基廣場
報(bào)名咨詢 預(yù)約試聽
課程介紹
張家港思科認(rèn)證考試科目

CCNA  思科認(rèn)證網(wǎng)絡(luò)管理員

張家港思科認(rèn)證考試科目

課程目標(biāo):**培訓(xùn),學(xué)員將可以為小型網(wǎng)絡(luò)安裝、配置和運(yùn)營LAN、WAN和撥號接入業(yè)務(wù)。

課程特點(diǎn):理論講解與動(dòng)手實(shí)踐各占一半,講師以豐富的理論與實(shí)踐經(jīng)驗(yàn)幫助學(xué)員在短期內(nèi)吸收課程精華,并能順利應(yīng)用到實(shí)際當(dāng)中,勝任工作。

學(xué)習(xí)內(nèi)容:思科網(wǎng)絡(luò)基礎(chǔ),包括設(shè)備的裝配、布線、操作、配置和管理;Catalyst交換機(jī)互連,主要講述基本交換操作與VLAN配置;思科路由器互連,包括TCP/IP路由、流量管理以及IPX配置;將網(wǎng)絡(luò)擴(kuò)展成WAN,包括序列對等連接、ISDN  BRI、幀中繼PVC連接。

【教學(xué)師資】

張家港思科認(rèn)證考試科目

楊老師

從業(yè)經(jīng)驗(yàn):

多年從業(yè)經(jīng)驗(yàn),對制造業(yè)企業(yè)網(wǎng)絡(luò)、金融行業(yè)網(wǎng)絡(luò)、IDC機(jī)房、社區(qū)寬帶網(wǎng) 絡(luò)及組播、IPV6、MPLS等前沿技術(shù)有獨(dú)特的見解。先后從事大型跨國企業(yè)及大型跨國銀行網(wǎng)絡(luò)(如松下、久保田、三菱、三井銀行等企業(yè))的規(guī)劃、建 設(shè)、實(shí)施和維護(hù)工作。針對運(yùn)營商大客戶提出的需求,制定合理的組網(wǎng)方案。 擅長把復(fù)雜現(xiàn)網(wǎng)的各種情況融入到課堂的理論講解之中;對組播和IPv6 等前沿技術(shù)有深入的研究。

講師資質(zhì):

深入研究了Cisco和華為兩種認(rèn)證,分別獲得兩種認(rèn)證的頂級認(rèn)證資質(zhì): Cisco方向擁有CCIE R&S認(rèn)證與華為方向擁有HCIE級別認(rèn)證

授課風(fēng)格:

深入淺出,風(fēng)趣幽默,能將多年的實(shí)際管理經(jīng)驗(yàn)和咨詢經(jīng)驗(yàn)融合于課程內(nèi)容 當(dāng)中,將枯燥的理論知識與實(shí)際案例相結(jié)合,使學(xué)員在 活潑的氣氛當(dāng)中得到學(xué)習(xí);授課內(nèi)容切中要害、可操作性強(qiáng)。

---路由交換CCNA介紹(CCNA-RS)

張家港思科認(rèn)證考試科目

1、路由原理復(fù)習(xí)和加深

2、浮動(dòng)靜態(tài)路由的原理和配置

3、遞歸靜態(tài)路由的原理和配置

4、RIP協(xié)議復(fù)習(xí)和假聲

linux 路由子系統(tǒng)的概要和初始化方法



這里使用linux-3.1.3 ipv4 以太網(wǎng)為例,由于路由子系統(tǒng)的cache部分在**新的內(nèi)核已經(jīng)刪掉,不再分析這一部分,相應(yīng)的改動(dòng)以3.12為參考。
概要
路由提供了轉(zhuǎn)發(fā)的功能,使得兩臺(tái)不是直連的機(jī)子也能夠通信,路由表記錄了相關(guān)的路由信息,指定了不同的ip地址如何處理.
linux**大支持256張路由表,一般只使用RT_TABLE_LOCAL以及RT_TABLE_MAIN這兩種(默認(rèn)路由也在main表中的),其他的一般都供策略路由使用
策略路由由編譯選項(xiàng)決定(CONFIG_IP_MULTIPLE_TABLES),使得路由選擇不再完全由目的ip決定,還可以考慮其他參數(shù),如包的接收網(wǎng)口等,即路由規(guī)則
默認(rèn)路由規(guī)則有三條,即一次到RT_TABLE_LOCAL.RT_TABLE_LOCAL,RT_TABLE_LOCAL中尋找匹配的項(xiàng).



增加流程如下:在中間增加一條路由規(guī)則,指明什么情況下選擇哪張路由表,然后在對應(yīng)的路由表中增加路由項(xiàng).
enum rt_class_t {
    RT_TABLE_UNSPEC=0,
/* User defined values */
    RT_TABLE_COMPAT=252,
    RT_TABLE_LOCAL=253,
    RT_TABLE_LOCAL=254,
    RT_TABLE_LOCAL=255,
    RT_TABLE_MAX=0xFFFFFFFF
}
默認(rèn)的路由規(guī)則以及路由表:



root@:~# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

root@:~# ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 128.5.210.0 dev eth0 proto kernel scope link src 128.5.210.2
local 128.5.210.2 dev eth0 proto kernel scope host src 128.5.210.2
broadcast 128.5.210.255 dev eth0 proto kernel scope link src 128.5.210.2
broadcast 192.168.1.0 dev wlan0 proto kernel scope link src 192.168.1.107
local 192.168.1.107 dev wlan0 proto kernel scope host src 192.168.1.107
broadcast 192.168.1.255 dev wlan0 proto kernel scope link src 192.168.1.107

root@:~# ip route list table main
default via 192.168.1.1 dev wlan0 proto static
128.5.210.0/24 dev eth0 proto kernel scope link src 128.5.210.2
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.107 metric 9


root@:~# ip route list table default
初始化
fib_net_init--->ip_fib_net_init----------------->fib4_rules_init-------------->fib_default_rules_init
                    nl_fib_lookup_init



ip_fib_net_init函數(shù)中分配路由表屬需hash表的空間:net->ipv4.fib_table_hash = kzalloc(size, GFP_KERNEL);size_t size = sizeof(struct hlist_head) * FIB_TABLE_HASHSZ; //256
注冊fib_rules_ops處理函數(shù),在函數(shù)fib_default_rules_init中增加默認(rèn)的三條路由規(guī)則

static int fib_default_rules_init(struct fib_rules_ops *ops)
{
    int err;



    err = fib_default_rule_add(ops, 0, RT_TABLE_LOCAL, 0);
    if (err < 0)
        return err;
    err = fib_default_rule_add(ops, 0x7FFE, RT_TABLE_MAIN, 0);
    if (err < 0)
        return err;
    err = fib_default_rule_add(ops, 0x7FFF, RT_TABLE_DEFAULT, 0);
    if (err < 0)
        return err;
    return 0;
}
路由規(guī)則初始化后相應(yīng)的數(shù)據(jù)結(jié)構(gòu)如下:

在策略路由打開的情況下,路由表的創(chuàng)建**函數(shù):

struct fib_table *fib_new_table(struct net *net, u32 id)
{
    struct fib_table *tb;
    unsigned int h;


    if (id == 0)
        id = RT_TABLE_MAIN;
    tb = fib_get_table(net, id);
    if (tb)
        return tb;

    tb = fib_trie_table(id);
    if (!tb)
        return NULL;
    h = id & (FIB_TABLE_HASHSZ - 1);
    hlist_add_head_rcu(&tb->tb_hlist, &net->ipv4.fib_table_hash[h]);
    return tb;
}



新的內(nèi)核代碼中路由表中的路由使用trie進(jìn)行組織,每個(gè)fib_table數(shù)據(jù)結(jié)構(gòu)的**后都掛有一個(gè)trie的結(jié)構(gòu)//t = (struct trie *) tb->tb_data; http://www.luyouqiwang.com/16486/ 
下面以插入一項(xiàng)路由為例說明相應(yīng)的數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系,如果執(zhí)行ifconfig  eth0.1 10.20.30.40/24,則會(huì)在MAIN的路由表中插入如下的表項(xiàng):
10.20.30.0/24 dev eth0 proto kernel scope link src 10.20.30.40

插入函數(shù)如下:



int fib_table_insert(struct fib_table *tb, struct fib_config *cfg)
{
    struct trie *t = (struct trie *) tb->tb_data;
    struct fib_alias *fa, *new_fa;
    struct list_head *fa_head = NULL;
    struct fib_info *fi;
    int plen = cfg->fc_dst_len;  //掩碼長度
    u8 tos = cfg->fc_tos;
    u32 key, mask;
    int err;
    struct leaf *l;

    if (plen > 32)
        return -EINVAL;



    key = ntohl(cfg->fc_dst);   //目的地址

    pr_debug("Insert table=%u x/%d\n", tb->tb_id, key, plen);


    mask = ntohl(inet_make_mask(plen));



    if (key & ~mask)
        return -EINVAL;

    key = key & mask;



    fi = fib_create_info(cfg);
    if (IS_ERR(fi)) {
        err = PTR_ERR(fi);
        goto err;
    }

    l = fib_find_node(t, key);
    fa = NULL;


    if (l) {
        fa_head = get_fa_head(l, plen);
        fa = fib_find_alias(fa_head, tos, fi->fib_priority);
    }


    /* Now fa, if non-NULL, points to the first fib alias
     * with the same keys [prefix,tos,priority], if such key already
     * exists or to the node before which we will insert new one.
     *
     * If fa is NULL, we will need to allocate a new one and
     * insert to the head of f.
     *
     * If f is NULL, no fib node matched the destination key
     * and we need to allocate a new one of those as well.
     */

    if (fa && fa->fa_tos == tos &&
     fa->fa_info->fib_priority == fi->fib_priority) {
        struct fib_alias *fa_first, *fa_match;

        err = -EEXIST;
        if (cfg->fc_nlflags & NLM_F_EXCL)
            goto out;


        /* We have 2 goals:
         * 1. Find exact match for type, scope, fib_info to avoid
         * duplicate routes
         * 2. Find next fa (or head), NLM_F_APPEND inserts before it
         */
        fa_match = NULL;
        fa_first = fa;
        fa = list_entry(fa->fa_list.prev, struct fib_alias, fa_list);
        list_for_each_entry_continue(fa, fa_head, fa_list) {
            if (fa->fa_tos != tos)
                break;
            if (fa->fa_info->fib_priority != fi->fib_priority)



                break;
            if (fa->fa_type == cfg->fc_type &&
             fa->fa_info == fi) {
                fa_match = fa;
                break;
            }
        }



        if (cfg->fc_nlflags & NLM_F_REPLACE) {
            struct fib_info *fi_drop;
            u8 state;


            fa = fa_first;
            if (fa_match) {
                if (fa == fa_match)
                    err = 0;
                goto out;
            }
            err = -EBUFS;
            new_fa = kmem_cache_alloc(fn_alias_kmem, GFP_KERNEL);
            if (new_fa == NULL)
                goto out;


            fi_drop = fa->fa_info;
            new_fa->fa_tos = fa->fa_tos;
            new_fa->fa_info = fi;
            new_fa->fa_type = cfg->fc_type;
            state = fa->fa_state;
            new_fa->fa_state = state & ~FA_S_ACCESSED;


            list_replace_rcu(&fa->fa_list, &new_fa->fa_list);
            alias_free_mem_rcu(fa);


            fib_release_info(fi_drop);
            if (state & FA_S_ACCESSED)
                rt_cache_flush(cfg->fc_nlinfo.nl_net, -1);
            rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen,
                tb->tb_id, &cfg->fc_nlinfo, NLM_F_REPLACE);



            goto succeeded;
        }
        /* Error if we find a perfect match which
         * uses the same scope, type, and nexthop
         * information.
         */
        if (fa_match)
            goto out;

        if (!(cfg->fc_nlflags & NLM_F_APPEND))
            fa = fa_first;
    }
    err = -EENT;
    if (!(cfg->fc_nlflags & NLM_F_CREATE))
        goto out;


    err = -EBUFS;
    new_fa = kmem_cache_alloc(fn_alias_kmem, GFP_KERNEL);
    if (new_fa == NULL)
        goto out;

    new_fa->fa_info = fi;
    new_fa->fa_tos = tos;
    new_fa->fa_type = cfg->fc_type;
    new_fa->fa_state = 0;
    /*
     * Insert new entry to the list.
     */



    if (!fa_head) {
        fa_head = fib_insert_node(t, key, plen);
        if (unlikely(!fa_head)) {
            err = -EMEM;
            goto out_free_new_fa;
        }
    }


    if (!plen)
        tb->tb_num_default ;

    list_add_tail_rcu(&new_fa->fa_list,
             (fa ? &fa->fa_list : fa_head));



    rt_cache_flush(cfg->fc_nlinfo.nl_net, -1);
    rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, tb->tb_id,
         &cfg->fc_nlinfo, 0);
succeeded:
    return 0;

out_free_new_fa:
    kmem_cache_free(fn_alias_kmem, new_fa);
out:
    fib_release_info(fi);
err:
    return err;
}


相關(guān)推薦:


蘇州思科認(rèn)證培訓(xùn)   蘇州思科認(rèn)證培訓(xùn)班   蘇州思科認(rèn)證培訓(xùn)學(xué)校

體驗(yàn)課預(yù)約試聽

倒計(jì)時(shí)

12:00:00

課程熱線:

13013833891
在線咨詢

客服在線時(shí)間:早上9點(diǎn)~下午6點(diǎn),其他時(shí)間請?jiān)诰€預(yù)約報(bào)名或留言,謝謝!

蘇州思科認(rèn)證

免費(fèi)體驗(yàn)課開班倒計(jì)時(shí)

11: 41: 09

稍后會(huì)有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:13013833891
推薦機(jī)構(gòu) 全國分站 更多課程

本周僅剩 個(gè)試聽名額

請鍵入信息,稍后系統(tǒng)將會(huì)把領(lǐng)獎(jiǎng)短信發(fā)至您的手機(jī)

申請?jiān)嚶犆~

QQ:1413838287
加盟合作:0755-83654572