• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

lệnh dialer map

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • lệnh dialer map

    Xin các anh, chị cho em hỏi

    keyword: "name" trong lệnh dialer map được sử dụng trong trường hợp nào?

    Em có cấu hình sau:

    int bri0
    encapsulation ppp
    ppp authentication chap
    ip address 192.168.16.1 255.255.255.0
    no shut
    dialer-group 1
    dialer map ip 192.168.16.3 name RouterB 5555555

    Theo em hiểu, mặc định khi dùng chap thì router sẽ gởi username là hostname khi được challenge. Còn khi local router authenticate remote router nó sẽ check username .... password..... được cấu hình ở global mode. Em không thấy router sử dụng name RouterB ở lệnh dialer map để authenticate khi nào cả.

    Xin cám ơn

  • #2
    R1--------R2

    Ở trạng thái mặc định, R1 và R2 sẽ dùng host name để thực hiện authentication.
    Nghĩa là khi đó, trên R1 sẽ có khai báo
    R1#username R2 pass cisco

    R2#username R1 pass cisco

    Khi R2 muốn dùng một tên khác với hostname, ví dụ "***" để authencate với R1, lúc đó cấu hình trên R1 như sau:

    R1# username *** pass cisco
    R1#int br0
    (R1-if)# dialer map ip 192.168.1.1 name *** broadcast 8995401
    (R1-if)#dialer map ip 192.168.1.1 name *** broad 8995402

    và trên R2

    R2#int br0
    (R2-if)# ppp authentication chap hostname ***
    (R2-if)#ppp authentication chap pass cisco

    Tuaninbox vui lòng làm lab thử và báo kết quả cho mọi người ở đây nhé.

    Mến,
    Minh
    Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/

    Comment


    • #3
      Em đã làm lab thử, cấu hình đúng như ở trên, nhưng trong lệnh dialer map thì không có name ***, thì vẫn có thể kết nối và ping được bình thường

      Comment


      • #4
        Tuấninbox,

        Tuấn có thể post cấu hình của cả R2 và R1 ở đây không?

        Trong R1, nhớ bỏ dòng username R2 pass cisco. Cách thử tốt nhất sẽ là dùng uni-authentication chap. Trong scenario của Tuâninbox, chỉ R2 gọi R1 và chỉ có R1 authenticate R2.

        Dưới đây là một đoạn trích từ địa chỉ:

        PPP negotiation involves several steps such as Link Control Protocol (LCP) negotiation, Authentication, and Network Control Protocol (NCP) negotiation. If the two sides cannot agree on the correct parameters, then the connection is terminated. Once the link is established, the two sides authenticate each other using the authentication protocol decided on during LCP negotiation. Authentication must be successful prior to starting NCP negotiation.


        Theo đoạn trích này, bạn có thể dùng cấu hình sau:

        "Configuring a Username Different from the Router's Name

        When a remote Cisco router connects to either a Cisco or a non-Cisco central router of a different administrative control, an Internet Service Provider (ISP), or a rotary of central routers, it is necessary to configure an authentication username that is different from the hostname. In this situation, the hostname of the router is not provided or is different at different times (rotary). Also, the username and password that is allocated by the ISP may not be the remote router's hostname. In such a situation, the ppp chap hostname command is used to specify an alternate username that will be used for authentication.

        For example, consider a situation where multiple remote devices are dialing into a central site. Using normal CHAP authentication, the username (which would be the hostname) of each remote device and a shared secret must be configured on the central router. In this scenario, the configuration of the central router can get lengthy and cumbersome to manage; however, if the remote devices use a username that is different from their hostname this can be avoided. The central site can be configured with a single username and shared secret that can be used to authenticate multiple dialin clients.

        Network Diagram

        If Router 1 initiates a call to Router 2, Router 2 would challenge Router 1, but Router 1 would not challenge Router 2. This occurs because the ppp authentication chap callin command is configured on Router 1. This is an example of a unidirectional authentication.

        In this setup, the ppp chap hostname alias-r1 command is configured on Router 1. Router 1 uses "alias-r1" as its hostname for CHAP authentication instead of "r1." The Router 2 dialer map name should match Router 1's ppp chap hostname; otherwise, two B channels are established, one for each direction.

        Configurations

        Router 1

        !
        isdn switch-type basic-5ess
        !
        hostname r1
        !
        username r2 password 0 cisco

        ! -- hostname of other router and shared secret

        !
        interface BRI0/0
        ip address 20.1.1.1 255.255.255.0
        no ip directed-broadcast
        encapsulation ppp
        dialer map ip 20.1.1.2 name r2 broadcast 5772222
        dialer-group 1
        isdn switch-type basic-5ess
        ppp authentication chap callin

        ! -- authentication on incoming calls only

        ppp chap hostname alias-r1

        ! -- alternate CHAP hostname

        !
        access-list 101 permit ip any any
        dialer-list 1 protocol ip list 101
        !


        Router 2

        !
        isdn switch-type basic-5ess
        !
        hostname r2
        !
        username alias-r1 password 0 cisco

        ! -- alternate CHAP hostname and shared secret
        ! -- The username must match the one in the ppp chap hostname command
        ! -- on the remote router

        !
        interface BRI0/0
        ip address 20.1.1.2 255.255.255.0
        no ip directed-broadcast
        encapsulation ppp
        dialer map ip 20.1.1.1 name
        alias-r1 broadcast 5771111

        ! -- dialer map name matches alternate hostname "alias-r1"

        dialer-group 1
        isdn switch-type basic-5ess
        ppp authentication chap
        !
        access-list 101 permit ip any any
        dialer-list 1 protocol ip list 101
        !


        In this example, Router 1 initiates the call. Since Router 1 is configured with the ppp authentication chap callin command, it does not challenge the calling party, which is Router 2.

        When Router 2 receives the call, it challenges Router 1 for authentication. By default for this authentication, the hostname of the router is used to identify itself. If the ppp chap hostname name command is configured, a router uses the name in place of the hostname to identify itself. In this example, the challenge is labeled as it is coming from "r2."

        Router 1 receives Router 2's challenge and looks in its local database for username "r2."

        Router 1 finds the "r2" password, which is "cisco." Router 1 uses this password and the challenge from Router 2 as input parameters of the MD5 hash function. The hash value is generated.

        Router 1 sends the hash output value to Router 2. Here, since the ppp chap hostname command is configured as "alias-r1," the reply is labeled as coming from "alias-r1."

        Router 2 receives the reply and looks for the "alias-r1" username in its local database for the password.

        Router 2 finds that the password for "alias-r1" is "cisco." Router 2 uses the password and the challenge sent out earlier to Router 1 as input parameters for the MD5 hash function. The hash function generates a hash value.

        Router 2 compares the hash value it generated and the one it receives from Router 1.

        Since the input parameters (challenge and password) are identical, the hash value is same resulting in a successful authentication.""
        Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

        Email : dangquangminh@vnpro.org
        https://www.facebook.com/groups/vietprofessional/

        Comment


        • #5
          Theo em thấy thì nếu mình dùng callin trong lệnh ppp authentication chap thì router sẽ gởi username và password được configured bởi lệnh ppp chap hostname và ppp chap password đến remote router. Và local router sẽ không authenticate remote router. Cũng không cần phải cấu hình name trong lệnh dialer map.

          Đây là cấu hình bài lab em đã làm (2-way authentication). Router B là calling router.

          B# sh run
          ===================================omitted
          hostname B
          !
          username routera password 0 cisco
          !
          ip subnet-zero
          no ip domain-lookup
          !
          isdn switch-type basic-ni
          !
          interface Ethernet0
          ip address 192.168.216.1 255.255.255.0
          !
          interface BRI0
          ip address 192.168.16.3 255.255.255.0
          encapsulation ppp
          dialer map ip 192.168.16.1 8995201
          dialer-group 1
          isdn switch-type basic-ni
          isdn spid1 5401 8995401
          ppp authentication chap
          ppp chap hostname routerb
          !
          ip classless
          ip route 0.0.0.0 0.0.0.0 192.168.16.1
          ip http server
          !
          dialer-list 1 protocol ip permit
          !
          ================================omitted



          A# sh run
          ====================================omitted
          hostname A
          !
          username routerb password 0 cisco
          !
          ip subnet-zero
          no ip domain-lookup
          !
          isdn switch-type basic-ni
          !
          interface Ethernet0
          ip address 192.168.0.1 255.255.255.0
          !
          interface BRI0
          ip address 192.168.16.1 255.255.255.0
          encapsulation ppp
          dialer map ip 192.168.16.3 8995401
          dialer-group 1
          isdn switch-type basic-ni
          isdn spid1 5201 8995201
          ppp authentication chap
          ppp chap hostname routera
          !
          ip classless
          ip route 192.168.216.0 255.255.255.0 192.168.16.3
          ip http server
          !
          dialer-list 1 protocol ip permit
          !
          ==================================omitted

          ===========================================DEBUG OUTPUT
          A#
          00:46:21: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
          A#
          00:46:21: BR0:1 PPP: Treating connection as a callin
          00:46:21: BR0:1 CHAP: Using alternate hostname routera
          00:46:21: BR0:1 CHAP: O CHALLENGE id 14 len 28 from "routera"
          00:46:21: BR0:1 CHAP: I CHALLENGE id 15 len 28 from "routerb"
          00:46:21: BR0:1 CHAP: Waiting for peer to authenticate first
          00:46:21: BR0:1 CHAP: I RESPONSE id 14 len 28 from "routerb"
          00:46:21: BR0:1 CHAP: O SUCCESS id 14 len 4
          00:46:21: BR0:1 CHAP: Processing saved Challenge, id 15
          00:46:21: BR0:1 CHAP: Using alternate hostname routera
          00:46:21: BR0:1 CHAP: O RESPONSE id 15 len 28 from "routera"
          00:46:21: BR0:1 CHAP: I SUCCESS id 15 len 4
          A#
          00:46:22: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up
          A#
          00:46:27: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 8995401 routerb


          B#
          00:59:51: BR0 DDR: Dialing cause ip (s=192.168.216.2, d=192.168.0.1)
          00:59:51: BR0 DDR: Attempting to dial 8995201
          00:59:51: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
          B#
          00:59:51: BR0:1 PPP: Treating connection as a callout
          00:59:51: BR0:1 CHAP: Using alternate hostname routerb
          00:59:51: BR0:1 CHAP: O CHALLENGE id 15 len 28 from "routerb"
          00:59:51: BR0:1 CHAP: I CHALLENGE id 14 len 28 from "routera"
          00:59:51: BR0:1 CHAP: Using alternate hostname routerb
          00:59:51: BR0:1 CHAP: O RESPONSE id 14 len 28 from "routerb"
          00:59:51: BR0:1 CHAP: I SUCCESS id 14 len 4
          00:59:51: BR0:1 CHAP: I RESPONSE id 15 len 28 from "routera"
          00:59:51: BR0:1 CHAP: O SUCCESS id 15 len 4
          00:59:51: BR0:1 DDR: Authenticated host routera with no matching dialer map
          00:59:51: BR0:1 DDR: dialer protocol up
          B#
          00:59:52: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up
          B#
          00:59:57: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 8995201 routera

          =================================SHOW ISDN ACTIVE OUTPUT
          B#sh isdn active
          --------------------------------------------------------------------------------
          ISDN ACTIVE CALLS
          --------------------------------------------------------------------------------
          Call Calling Called Remote Seconds Seconds Seconds Charges
          Type Number Number Name Used Left Idle Units/Currency
          --------------------------------------------------------------------------------
          Out 8995201 routera 14 108 11 0
          --------------------------------------------------------------------------------
          B#

          A#sh isdn active
          --------------------------------------------------------------------------------
          ISDN ACTIVE CALLS
          --------------------------------------------------------------------------------
          Call Calling Called Remote Seconds Seconds Seconds Charges
          Type Number Number Name Used Left Idle Units/Currency
          --------------------------------------------------------------------------------
          In 8995401 ---N/A--- routerb 26 96 23
          --------------------------------------------------------------------------------

          ===========================================PING OUTPUT
          B#ping 192.168.0.2

          Type escape sequence to abort.
          Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
          !!!!!
          Success rate is 100 percent (5/5), round-trip min/avg/max = 32/36/44 ms
          B#

          A#ping 192.168.216.2

          Type escape sequence to abort.
          Sending 5, 100-byte ICMP Echos to 192.168.216.2, timeout is 2 seconds:
          !!!!!
          Success rate is 100 percent (5/5), round-trip min/avg/max = 32/34/36 ms
          A#

          Comment


          • #6
            Theo em thấy thì nếu mình dùng callin trong lệnh ppp authentication chap thì router sẽ gởi username và password được configured bởi lệnh ppp chap hostname và ppp chap password đến remote router. Và local router sẽ không authenticate remote router. Cũng không cần phải cấu hình name trong lệnh dialer map.

            Đây là cấu hình bài lab em đã làm (2-way authentication). Router B là calling router.

            B# sh run
            ===================================omitted
            hostname B
            !
            username routera password 0 cisco
            !
            ip subnet-zero
            no ip domain-lookup
            !
            isdn switch-type basic-ni
            !
            interface Ethernet0
            ip address 192.168.216.1 255.255.255.0
            !
            interface BRI0
            ip address 192.168.16.3 255.255.255.0
            encapsulation ppp
            dialer map ip 192.168.16.1 8995201
            dialer-group 1
            isdn switch-type basic-ni
            isdn spid1 5401 8995401
            ppp authentication chap
            ppp chap hostname routerb
            !
            ip classless
            ip route 0.0.0.0 0.0.0.0 192.168.16.1
            ip http server
            !
            dialer-list 1 protocol ip permit
            !
            ================================omitted



            A# sh run
            ====================================omitted
            hostname A
            !
            username routerb password 0 cisco
            !
            ip subnet-zero
            no ip domain-lookup
            !
            isdn switch-type basic-ni
            !
            interface Ethernet0
            ip address 192.168.0.1 255.255.255.0
            !
            interface BRI0
            ip address 192.168.16.1 255.255.255.0
            encapsulation ppp
            dialer map ip 192.168.16.3 8995401
            dialer-group 1
            isdn switch-type basic-ni
            isdn spid1 5201 8995201
            ppp authentication chap
            ppp chap hostname routera
            !
            ip classless
            ip route 192.168.216.0 255.255.255.0 192.168.16.3
            ip http server
            !
            dialer-list 1 protocol ip permit
            !
            ==================================omitted

            ===========================================DEBUG OUTPUT
            A#
            00:46:21: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
            A#
            00:46:21: BR0:1 PPP: Treating connection as a callin
            00:46:21: BR0:1 CHAP: Using alternate hostname routera
            00:46:21: BR0:1 CHAP: O CHALLENGE id 14 len 28 from "routera"
            00:46:21: BR0:1 CHAP: I CHALLENGE id 15 len 28 from "routerb"
            00:46:21: BR0:1 CHAP: Waiting for peer to authenticate first
            00:46:21: BR0:1 CHAP: I RESPONSE id 14 len 28 from "routerb"
            00:46:21: BR0:1 CHAP: O SUCCESS id 14 len 4
            00:46:21: BR0:1 CHAP: Processing saved Challenge, id 15
            00:46:21: BR0:1 CHAP: Using alternate hostname routera
            00:46:21: BR0:1 CHAP: O RESPONSE id 15 len 28 from "routera"
            00:46:21: BR0:1 CHAP: I SUCCESS id 15 len 4
            A#
            00:46:22: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up
            A#
            00:46:27: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 8995401 routerb


            B#
            00:59:51: BR0 DDR: Dialing cause ip (s=192.168.216.2, d=192.168.0.1)
            00:59:51: BR0 DDR: Attempting to dial 8995201
            00:59:51: %LINK-3-UPDOWN: Interface BRI0:1, changed state to up
            B#
            00:59:51: BR0:1 PPP: Treating connection as a callout
            00:59:51: BR0:1 CHAP: Using alternate hostname routerb
            00:59:51: BR0:1 CHAP: O CHALLENGE id 15 len 28 from "routerb"
            00:59:51: BR0:1 CHAP: I CHALLENGE id 14 len 28 from "routera"
            00:59:51: BR0:1 CHAP: Using alternate hostname routerb
            00:59:51: BR0:1 CHAP: O RESPONSE id 14 len 28 from "routerb"
            00:59:51: BR0:1 CHAP: I SUCCESS id 14 len 4
            00:59:51: BR0:1 CHAP: I RESPONSE id 15 len 28 from "routera"
            00:59:51: BR0:1 CHAP: O SUCCESS id 15 len 4
            00:59:51: BR0:1 DDR: Authenticated host routera with no matching dialer map
            00:59:51: BR0:1 DDR: dialer protocol up
            B#
            00:59:52: %LINEPROTO-5-UPDOWN: Line protocol on Interface BRI0:1, changed state to up
            B#
            00:59:57: %ISDN-6-CONNECT: Interface BRI0:1 is now connected to 8995201 routera

            =================================SHOW ISDN ACTIVE OUTPUT
            B#sh isdn active
            --------------------------------------------------------------------------------
            ISDN ACTIVE CALLS
            --------------------------------------------------------------------------------
            Call Calling Called Remote Seconds Seconds Seconds Charges
            Type Number Number Name Used Left Idle Units/Currency
            --------------------------------------------------------------------------------
            Out 8995201 routera 14 108 11 0
            --------------------------------------------------------------------------------
            B#

            A#sh isdn active
            --------------------------------------------------------------------------------
            ISDN ACTIVE CALLS
            --------------------------------------------------------------------------------
            Call Calling Called Remote Seconds Seconds Seconds Charges
            Type Number Number Name Used Left Idle Units/Currency
            --------------------------------------------------------------------------------
            In 8995401 ---N/A--- routerb 26 96 23
            --------------------------------------------------------------------------------

            ===========================================PING OUTPUT
            B#ping 192.168.0.2

            Type escape sequence to abort.
            Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
            !!!!!
            Success rate is 100 percent (5/5), round-trip min/avg/max = 32/36/44 ms
            B#

            A#ping 192.168.216.2

            Type escape sequence to abort.
            Sending 5, 100-byte ICMP Echos to 192.168.216.2, timeout is 2 seconds:
            !!!!!
            Success rate is 100 percent (5/5), round-trip min/avg/max = 32/34/36 ms
            A#

            Comment


            • #7
              ok,

              thật ra, option name trong dialer map có vẻ chẳng để làm gì cả.

              rất nhiều người đã có phát hiện giống tuaninbox. họ kết luận "option name in dialer map command has nothing to do with PPP authentication".

              ý kiến chủ quan của mình là "option name này có thể dùng trong những task khác, đòi hỏi dùng hostname. ví dụ như telnet...

              best wishes,
              Minh
              Đặng Quang Minh, CCIEx2#11897 (Enterprise Infrastructure, Wireless), DEVNET, CCSI#31417

              Email : dangquangminh@vnpro.org
              https://www.facebook.com/groups/vietprofessional/

              Comment


              • #8
                Re: lệnh dialer map

                Hi all,
                thật ra mình không nghĩ như các bạn.
                name trong dialer map có công dụng đấy.

                Các ví dụ của các bạn chỉ cho 2 site và vô tình nó match.
                Trong trường hợp nhiều site thì có 2 trường hợp:
                1/ Dùng legacy dialer: phải dùng name trong dialer map để phân biệt cho từng peer.
                2/ Dùng Virtual Dialer: do có các interface dialer riêng cho từng peer nên không cần dialer map và remote username (hostname) có thể khai báo trong ppp chap hostname.

                Ý kiến các bạn thế nào?
                phuchvt

                Comment


                • #9
                  vậy là option name sẽ được dùng trong dialer profile, để phân biệt profile này với profile khác.

                  đối với dial, theo em hiểu có hai cách:

                  -legacy dialer: kiểu cũ. trong cách này mình sẽ cấu hình trên các legacy interface. Nói cách khác mình cấu hình các thông số trong interface br0/0 hoặc interface async.

                  - dùng dialer profile: mình sẽ tạo các virtual-profile cho các destination khác nhau. Khi đó một lgacy interface sẽ có thể dùng nhiều profile để gọi đi.

                  theo ý kiến anh phuchvt thì name chỉ dùng trong trường hợp 2 thôi, có phải vậy không anh?

                  cám ơn các anh,

                  Comment


                  • #10
                    Hi,
                    Đúng rồi, họ thiết kế lệnh đó là để dùng cho dialer profile (mình dùng sai từ - thông cảm nha, không nhớ hết được) mặc dù cũng có thể dùng cho legacy dialer trong trường hợp đặt biệt như trên. Nhưng tổng quát là không được vì như bạn thấy đấy mổi dialer map phải có một name riêng.
                    Mặc dù trường hợp trên dùng được nhưng mình nghĩ chúng ta không nên dùng như vậy vì nó không chuẩn.

                    Cheers,

                    Comment


                    • #11
                      Hi again
                      Còn nếu chỉ có một remote peer mà dùng với legacy thì bỏ luôn dialer map mà chỉ dùng dialer string.
                      Nói tóm lại,
                      + nếu cấu hình cho chỉ một remote peer thì dùng các lệnh đơn, dialer string, ppp chap hostname,...
                      + Còn nếu cấu hình cho nhiều remote peer thì ứng với mổi peer, dùng một lệnh kép dialer map trên đó khai báo nhiều thông số ứng với peer đó.
                      Như vậy sẽ rất trong sáng.

                      Comment


                      • #12
                        em đọc cấu hình trong CCO và nhận thấy:

                        1. Đối với chỉ một remote-peer: cisco luôn dùng name.
                        2. đối với dialer-profile: cco chỉ dùng dialer-string và dialer remote-name. Trường hợp này seẽ tương ứng với trường hợp 2 của anh (nhiều remote-peer).

                        vậy, em có thể kết luận là (theo trí nhớ của em), dialer-profile chỉ dùng dialer-string và dialer remote-hostname mà không cần (và không thể) dùng dialer map.

                        Mong các anh hiệu chỉnh giúp em,
                        cám ơn

                        Comment


                        • #13
                          Đúng rồi đó bạn. Mặc dù một số lệnh có thể dùng lẫn lộn. Tuy nhiên, dùng chính xác lệnh vẫn hay hơn và thể hiện tính "PRO" hơn. Không dư không thiếu một lệnh nào. Phải không bạn?

                          Comment


                          • #14
                            hi anh Phúc,

                            dưới đây là một đoạn tríchh từ dĩa cdrom về cách cấu hình dialer-profile:

                            "Step 4
                            Router(config-if)# dialer
                            string dial-string class class-name

                            Specifies the remote destination to call and the map class that defines characteristics for calls to this destination
                            "

                            trong cấu hình map class:
                            Router(config)# map-class dialer
                            classname
                            Specifies a map class and begins map-class configuration mode.
                            "
                            vậy trong dialer profile không dùng lệnh dialer map. và vì vậy option name dĩ nhiên cũng không được dùng.

                            Anh Phúc và anh Minh có thể cho em biết option name được dùng trong trường hợp nào hay không? bởi vì khi ta bỏ hẳn option name trongg dialer map thì kết nối vẫn tạo ra.

                            cám ơn,

                            Comment


                            • #15
                              Hi,
                              bạn thử xem trong trường hợp có nhiều hơn dailer map (nhiềuu remote site) xem, kế nối có tạo ra không? Tôi tin chắc là không.

                              Comment

                              Working...
                              X