Saturday, January 25, 2020

การคอนฟิก NOKIA BNG เพื่อให้บริการ Internet ด้วย PPPoE/IPoE โปรโตคอลและการคอนฟิก MPLS l2VPN


การให้บริการ Internet ในปัจจุบันของผู้ให้บริการในบ้านเราปกติก็จะมี Broadband Internet หรือ เน็ตตามบ้าน  และ WiFi Internet ที่ให้บริการตามจุดต่างๆ เช่นในห้าง หน้าเซเว่น หรือตามที่ท่องเที่ยว เป็นต้น 

จากบทความที่แล้วที่แล้วเราพูดถึง Broadband Internet และการคอนฟิก BNG คราวนี้เราจะเพิ่ม IPoE เข้าไปด้วย การให้บริการ WiFi Internet  จะใช้โปรโตคอล IPoE ในการขอสิทธิเข้าใช้งานเครือข่ายระหว่าง Client เช่น มือถือ โน๊ตบุ๊ค กับ BNG ( Broadband Network Gateway )

ในแล็บนี้ประกอบไปด้วย
  • PC Client เพื่อใช้ในการขออนุญาตเข้าใช้งานเครือข่ายทั้งแบบ PPPoE และ IPoE 
  • ISP Transmission เพื่อรับส่งข้อมูลระหว่าง Client กับ BNG. โดย Implement เป็น MPLS L2VPN ประกอบไปด้วย Router หลายๆ ยี่ห้อเช่น Cisco, Huawei, Juniper และ Nokia เป็นต้น
  • NOKIA BNG เพื่อให้บริการ Internet ด้วย PPPoE และ IPoE โปรโตคอล. ในแล็บนี้ BNG จะทำเป็น MPLS L2VPN ด้วย
  • RADIUS. ในแล็บนี้ใช้ PC แล้ว Run Program Tek RADIUS LT เพื่อทำเป็น External RADIUS เก็บ User/Pass และ Profile( package internet ) ของ User
  • Juniper SRX ทำหน้าที่เป็น Firewall คั่นระหว่าง BNG, Radius และ Internet
  • NAT-PC ทำหน้าที่ NAT Subscriber เพื่อให้ออก Internet ได้จริง


Network Diagram




ผมจะขออธิบายทีละส่วนตามนี้นะครับ

1. IPoE Call Flow
2. EVE-NG Lab Diagram
3. การคอนฟิก NOKIA ฺBNG เพื่อให้บริการ PPPoE และ IPoE
4. การคอนฟิก Firewall Juniper SRX 
5. การสร้าง RADIUS ด้วย Tek RADIUS Lite
6. การคอนฟิก NAT-PC เพื่อให้ Subscriber ออก Internet ได้
7. ISP Transmission Network Diagram
8. NOKIA BNG คอนฟิก OSPF MPLS-LDP 
9.  Cisco คอนฟิก OSPF MPLS-LDP 
10.  Juniper vMX คอนฟิก OSPF MPLS-LDP 
11.  Huawei คอนฟิก OSPF MPLS-LDP 
12.  Juniper Olive คอนฟิก OSPF MPLS-LDP 
13. การคอนฟิก MPLS L2VPN VLL ที่ NOKIA, Cisco และ Huawei.
14. แสดงสถานะ OSPF neighbor , LDP session ของแต่ละ Router
15. IPoE Client Authentication และทดสอบออก Internet
16. PPPoE Client Authentication และทดสอบออก Internet
17. NOKIA BNG แสดงสถานะ IPoE/PPPoE session และสถานะการแจก IP ของ DHCP.
18. ผล Capture  Traffic IPoE
19. ผล Capture  Traffic PPPoE
20. ข้อมูล Version


1. IPoE Protocol

  IPoE Authentication ด้วย DHCP Protocol. ระบุตัวตนด้วย MAC Address. ปกติการให้บริการ WiFi Internet ของผู้ให้บริการจะเป็น Open Security คือสามารถขออนุญาตเข้าได้เลย แต่จะบังคับให้ User Redirect เข้าหน้า Portal เพื่อล๊อกอินอีกที แต่ในแล็บนี้จะให้ User ใช้ Internet ได้เลย (ใจดี ^^).
 Flow ของ IPoE ไม่ขอพูดถึงรายละเอียดนะครับ ดูจาก IPoE Call Flow ตามรูปด้านล่าง

IPoE Call Flow



2. EVE-NG Lab Diagram

หน้าตา LAB EVE-NG ส่วนการ Virtual Router ดูรายละเอียดตามลิ้งค์นี้เลยครับ https://www.eve-ng.net/index.php/documentation/howtos/



3. การคอนฟิก NOKIA ฺBNG เพื่อให้บริการ PPPoE และ IPoE

  ในแล็บนี้จะใช้ Nokia 7750SR โดยแยก CPM (การ์ด control ) กับ IOM ( ไลน์การ์ด) ออกจากกัน และเนื่องจาก BNG ทำต้องทำ L2VPN (Epipe) ด้วย แต่ใน Group-Interface ต้องผูกกับ Physical Interface จึงต้องทำ Physical Loop (1/1/6 - 1/1/5) มาช่วยในการรับส่งข้อมูลจาก Epipe (1/1/6) มาเข้า Group-Interface ( 1/1/5). ใช้ Bridge Cloud ของ EVE-NG ช่วยในการทำ Loop.

3.1  NOKIA BNG การคอนฟิก Radius Server Policy
  Configure Loopback interface เพื่อเป็น Source Address ในการติดต่อกับ RADIUS. Radius Server Policy สามารถมีได้มากกว่า 1 Radius เพื่อทำ Redundant. ในแล็บนี้ใช้  Radius ตัวเดียว.

A:BNG#/configure service vprn 100 
A:BNG>config>service>vprn# info 
----------------------------------------------
            interface "loopback_radius" create
                address 10.5.4.1/32
                loopback
            exit
            radius-server
                server "radius1" address 10.5.5.10 secret abc123 create
                    description "Radius1"
                exit
            exit
----------------------------------------------

A:BNG#/configure aaa 
A:BNG>config>aaa# info 
----------------------------------------------
        radius-server-policy "RADIUS_SERVER_1" create
            servers
                router 100
                source-address 10.5.4.1
                server 1 name "radius1"
            exit
        exit
----------------------------------------------

3.2 NOKIA BNG การคอนฟิก Authentication and Accounting Policy
  Authentication Policy เพื่อกำหนด Parameters ที่ใช้ในการ Authentication กับ Radius. ในแล็บนี้จะแยกกันระหว่าง IPoE กับ PPPoE.
  Accounting Policy เพื่อส่งข้อมูลของ User Update ให้ Radius เป็นระยะๆ ( Interim )

A:BNG#/configure subscriber-mgmt 
A:BNG>config>subscr-mgmt# info 
----------------------------------------------
        authentication-policy "AUTHEN-IPOE" create
            radius-server-policy "RADIUS_SERVER_1"
        exit
        authentication-policy "AUTHEN-PPPOE" create
            pppoe-access-method pap-chap
            radius-server-policy "RADIUS_SERVER_1"
        exit
        radius-accounting-policy "RADIUS-ACCOUTING" create
            include-radius-attribute
                calling-station-id mac
                subscriber-id
                user-name
                std-acct-attributes
            exit
            session-id-format number
            radius-server-policy "RADIUS_SERVER_1"
        exit


3.3 NOKIA BNG การคอนฟิก  sla-profile, sub-profile และ sub-indent-policy
  sla-profile ปกติจะมีคอนฟิก QoS เพื่อควบคุม Bandwidth ( Speed ) ของลูกค้า และ IP-Filter เพื่อ Redirect หน้าเว็บของ User แต่ในแล็บนี้สร้างไว้เฉยๆ ไม่ได้ควบคุมอะไรเลย
  sub-profile ก็จะมีคอนฟิกส่วนของ Accounting เพื่ออัพเดทของมูลของ subscriber ให้ Radius
  sub-ident-policy เอาไว้ map ค่า sla-profile ,sub-profile ที่ส่งมาจาก Radius กับ คอนฟิกใน BNG  ( ค่าที่ส่งมาจาก radius กับ ที่สร้างไว้ไม่ตรงกันก็ได้ แต่แนะนำว่าคอนฟิกให้ตรงกันจะดีกว่า เพื่อความสะดวกในการจัดการและการทำความเข้าใจ )

A:BNG# configure subscriber-mgmt 
A:BNG>config>subscr-mgmt# info 
----------------------------------------------
        sla-profile "DEFAULT-SLA-IPOE" create
        exit
        sla-profile "DEFAULT-SLA-PPPOE" create
        exit
        sub-profile "DEFAULT-SUB-IPOE" create
        exit
        sub-profile "DEFAULT-SUB-PPPOE" create
        exit
        sla-profile "SLA-IPOE-PKG-1" create
        exit
        sla-profile "SLA-PPPOE-10M" create
        exit
        sub-profile "SUB-IPOE-PKG-1" create
            radius-accounting
                policy "RADIUS-ACCOUTING"
            exit
        exit
        sub-profile "SUB-PPPOE-10M" create
            radius-accounting
                policy "RADIUS-ACCOUTING"
            exit
        exit
        sub-ident-policy "SUB-INDENT" create
            sub-profile-map
                use-direct-map-as-default
            exit
            sla-profile-map
                use-direct-map-as-default
            exit
        exit
----------------------------------------------


3.4 NOKIA BNG การคอนฟิก Local DHCP Server
 DHCP Server สามารถเป็น External หรือ Internal ก็ได้ ในแล็บนี้ใช้เป็น Internal DHCP Server และสร้างแยกกันระหว่าง IPoE กับ PPPoE โดย
 IPoE แจก IP วง 172.16.1.0/24 ให้กับ subscriber
 PPPoE แจก IP วง 172.16.2.0/24 ให้กับ subscriber

A:BNG# configure service vprn 100 
A:BNG>config>service>vprn# info 
----------------------------------------------
            dhcp
                local-dhcp-server "DHCP-SERVER-IPOE" create
                    use-gi-address scope pool
                    pool "POOL-IPOE-1" create
                        options
                            dns-server 8.8.8.8
                        exit
                        subnet 172.16.1.0/24 create
                            options
                                default-router 172.16.1.1
                            exit
                            address-range 172.16.1.2 172.16.1.254
                        exit
                    exit
                    no shutdown
                exit
                local-dhcp-server "DHCP-SERVER-PPPOE" create
                    use-gi-address scope pool
                    pool "POOL-PPPOE-1" create
                        options
                            dns-server 8.8.4.4
                        exit
                        subnet 172.16.2.0/24 create
                            options
                                default-router 172.16.2.1
                            exit
                            address-range 172.16.2.2 172.16.2.254
                        exit
                    exit
                    no shutdown
                exit
            exit
            interface "loopback_DHCP-IPOE" create
                address 100.100.100.1/32
                local-dhcp-server "DHCP-SERVER-IPOE"
                loopback
            exit
            interface "loopback_DHCP-PPPOE" create
                address 100.100.100.2/32
                local-dhcp-server "DHCP-SERVER-PPPOE"
                loopback
            exit
----------------------------------------------

3.5 NOKIA BNG  คอนฟิก Subcriber-Interface และ Group-Interface
Subscriber-Interface เป็น Interface ที่เอาไว้คุยกับ Subscriber Host มีคอนฟิก address เพื่อเป็น ip-gateway ของ subscriber
Group-interface จะเป็น interface ที่ผูกกับ physical interface (1/1/5) และเป็นตัวกำหนด parameter ต่างๆ ของ subscriber ที่จะเข้ามาทาง interface นี้เช่น Authentication และ DHCP

A:BNG#configure service vprn 100 
A:BNG>config>service>vprn# info 
----------------------------------------------
            subscriber-interface "SUB-IPOE" create
                address 172.16.1.1/24
                group-interface "GRP-IPOE-1" create
                    dhcp
                        server 100.100.100.1
                        trusted
                        lease-populate 131071
                        gi-address 172.16.1.1
                        no shutdown
                    exit
                    authentication-policy "AUTHEN-IPOE"
                    sap 1/1/5:10 create
                        sub-sla-mgmt
                            def-sub-id use-auto-id
                            def-sub-profile "DEFAULT-SUB-IPOE"
                            def-sla-profile "DEFAULT-SLA-IPOE"
                            sub-ident-policy "SUB-INDENT"
                            multi-sub-sap 131071
                            no shutdown
                        exit
                    exit
                exit
            exit
            subscriber-interface "SUB-PPPOE" create
                address 172.16.2.1/24
                group-interface "GRP-PPPOE-1" create
                    dhcp
                        server 100.100.100.2
                        trusted
                        lease-populate 131071
                        client-applications ppp
                        gi-address 172.16.2.1
                        no shutdown
                    exit
                    authentication-policy "AUTHEN-PPPOE"
                    sap 1/1/5:20 create
                        sub-sla-mgmt  
                            def-sub-id use-auto-id
                            def-sub-profile "DEFAULT-SUB-PPPOE"
                            def-sla-profile "DEFAULT-SLA-PPPOE"
                            sub-ident-policy "SUB-INDENT"
                            multi-sub-sap 131071
                            no shutdown
                        exit
                    exit
                    pppoe
                        session-limit 131071
                        sap-session-limit 131071
                        no shutdown
                    exit
                exit
            exit
----------------------------------------------


3.6 NOKIA BNG  คอนฟิกให้ BNG ต่อกับ Internet และ Radius
เพื่อที่จะให้ Subcriber ออก Internet ได้ BNG ต้องมีทางออก Internet. ในแล็บนี้ BNG คอนฟิก  OSPF กับ Juniper SRX.   โดย Juniper SRX จะประกาศ Default Route และ RADIUS Route มาให้ BNG. ส่วน BNG จะประกาศ Subscriber IP Address และ loopback_radius ออกไป.

A:BNG# configure service vprn 100 
A:BNG>config>service>vprn# info 
----------------------------------------------
            interface "to_vSRX" create
                address 192.168.12.1/24
                ip-mtu 1500
                sap 1/1/1 create
                exit
            exit
            ospf 10.5.4.1
                area 0.0.0.0
                    interface "loopback_radius"
                        passive
                        no shutdown
                    exit
                    interface "to_vSRX"
                        interface-type point-to-point
                        no shutdown
                    exit
                    interface "SUB-IPOE"
                        passive
                        no shutdown
                    exit
                    interface "SUB-PPPOE"
                        passive
                        no shutdown
                    exit
                exit
                no shutdown
            exit
----------------------------------------------


4. การคอนฟิก Firewall Juniper SRX 

 Juniper SRX เป็น firewall ที่คั่นระหว่าง BNG , RADIUS  และ Internet. โดยแบ่งแต่ละส่วนออกเป็น Zone และ Run OSPF กับ BNG. รายละเอียดดูจาก Diagram ด้านล่าง



Juniper SRX คอนฟิก interface

[edit interfaces]
set interfaces ge-0/0/0 unit 0 family inet address 192.168.253.1/24
set interfaces ge-0/0/1 unit 0 family inet address 10.5.5.1/24
set interfaces ge-0/0/2 unit 0 family inet address 192.168.12.2/24

Juniper SRX  คอนฟิก security zone , map port เข้า zone และ allow ping เพื่อเอาไว้ปิงเทส

[edit security zones]    
set security zones security-zone trust interfaces ge-0/0/1.0 host-inbound-traffic system-services ping
set security zones security-zone untrust interfaces ge-0/0/0.0 host-inbound-traffic system-services ping
set security zones security-zone SUBSCIBER_ZONE interfaces ge-0/0/2.0 host-inbound-traffic protocols ping
set security zones security-zone SUBSCIBER_ZONE interfaces ge-0/0/2.0 host-inbound-traffic protocols ospf

Juniper SRX คอนฟิก Routing Protocol
 คอนฟิก static default route ออกไปทาง NAT-PC เพื่อออก Internet และ Redistribute เข้า OSPF
 คอนฟิก OSPF และ enable interface ที่ต่อไป BNG Radius และ NAT PC

[edit routing-options]
set routing-options static route 0.0.0.0/0 next-hop 192.168.253.2

[edit protocols ospf]
set protocols ospf export OSPF-EXPORT
set protocols ospf area 0.0.0.0 interface ge-0/0/2.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 passive

[edit policy-options]
set policy-options policy-statement OSPF-EXPORT term term1 from protocol static
set policy-options policy-statement OSPF-EXPORT term term1 then accept

Juniper SRX คอนฟิก Security policy
 เพื่ออนุญาตให้ BNG คุยกับ Radius และ อนุญาตให้ Subscriber ออก Internet ได้. ในแล็บนี้ SRX จะอนุญาตทั้งหมด ไม่มีบล๊อกอะไรเลย (แล้วจะมีทำไม อิอิ เอาไว้แล๊บหน้าๆๆๆค่อยมาบล๊อกละกันครับ)

[edit security policies]
set security policies from-zone SUBSCIBER_ZONE to-zone untrust policy To-Internet match source-address any
set security policies from-zone SUBSCIBER_ZONE to-zone untrust policy To-Internet match destination-address any
set security policies from-zone SUBSCIBER_ZONE to-zone untrust policy To-Internet match application any
set security policies from-zone SUBSCIBER_ZONE to-zone untrust policy To-Internet then permit
set security policies from-zone SUBSCIBER_ZONE to-zone trust policy Policy-1 match source-address any
set security policies from-zone SUBSCIBER_ZONE to-zone trust policy Policy-1 match destination-address any
set security policies from-zone SUBSCIBER_ZONE to-zone trust policy Policy-1 match application any
set security policies from-zone SUBSCIBER_ZONE to-zone trust policy Policy-1 then permit


5. การสร้าง RADIUS ด้วย Tek RADIUS LT

  ในแล็บนี้ใช้ Tek RADIUS LT เพื่อทำเป็น RADIUS Server.  ดาวน์โหลดได้จากลิ้งค์นี้  https://www.kaplansoft.com/download.html (version 5.5.4 ยิง CoA ได้ด้วยนะ แล็บนี้ใช้ version 5.5.3 )

  5.1 Tek Radius คอนฟิก IP และเพิ่ม NAS 
เพื่ออนุญาตให้ BNG (10.5.4.1 ) คุยกับ RADIUS ได้ โดยใช้ password เป็น abc123 ตามรูป

  5.2 Tek RADIUS เพิ่ม Radius Attribute
 RADIUS กับ BNG ต้องคุยกันด้วย Attribute เดียวกัน ( ถ้า RADIUS Attribute ไม่ตรงกันก็ต้องแปลงด้วย python script แล็บหน้าๆนะครับ) โดย Tek RADIUS LT ที่ดาวน์โหลดมา จะไม่มี Nokia Radius Attribute ( Nokia รวมบริษัทกับ Alcatel แล้วแต่ชื่อ Radius Attribute ยังเป็น Alcatel อยู่) ต้องเพิ่ม Attribute เข้าไป โดยไปที่ Tab Dictionary Editor



 5.3 NOKIA RADIUS ATTRIBUTE REF
 สำหรับ Nokia Radius Attribute ที่จะใช้ในแล็บมี 2 อย่างคือ  Alc-Subsc-Prof-Str กับ Alc-SLA-Prof-Str ส่วน attribute อื่นๆ สามารถศึกษาเพิ่มเติมได้จาก ลิ้งค์นี้ https://documentation.nokia.com/cgi-bin/dbaccessfilename.cgi/3HE11975AAAATQZZA01_V1_7750%20SR%20RADIUS%20Attributes%20Reference%20Guide%20R15.0.R1.pdf

5.4 Tek RADIUS กำหนด Username/Password สำหรับ Authentication
 IPoE authentication ด้วย MAC. User name ก็จะเป็น MAC ของ IPoE Client. เมื่อ Authentication ผ่าน Radius จะส่งค่า sla-profile: SLA-IPOE-PKG-1, sub-profile: SUB-IPOE-PKG-1 ไปให้ BNG
 PPPoE authentication ด้วย Username/Password โดยตั้งเป็น bnet1@abc.com/abc1234 เมื่อ Authentication ผ่านแล้ว ก็จะส่งค่า sla-profile: SLA-PPPOE-10M, sub-profile: SUB-PPPOE-10M ไปให้ BNG
 จะเห็นว่า sla-profile กับ sub-profile มีคอนฟิกอยู่แล้วที่ BNG


6 การคอนฟิก NAT-PC เพื่อให้ Subscriber ออก Internet ได้

 Local Area Connection จะต่อกับ Management Clond ของ EVE-NG. Port นี้จะได้รับจากแจก IP จาก Router จริงที่บ้านและ Share Internet ให้กับ Local Area Connection 2
 Local Area Connection 2 ต่อกับ Juniper SRX
 ต้องทำ Routing เพิ่มเพื่อให้ NAT-PC ส่งข้อมูลกลับไปหา Subscriber ได้ถูกทาง โดยใช้ Cmd run as Adminstrator จากนั้นคอนฟิกเพิ่ม Route ด้วย command line ตามรูปด้านล่าง จากนั้นก็แสดง Route table ด้วย command: route print -4


  จบไปแล้วสำหรับฝั่ง Internet และ Radius คราวนี้มาทางฝั่ง  Transmission และ Subscriber กันบ้าง

7 ISP Transmission Network Diagram

 ในแล็บนี้ ISP Transmission ทำเป็น MPLS L2VPN แบบ Virtual Lease Line ( VLL ) มี Router Cisco กับ Huawei เป็น Provider Edge (PE) ของฝั่ง Subscriber. ส่วน  NOKIA  BNG ก็เป็นส่วนหนึ่งของ MPLS โดเมนโดยเป็น PE เหมือนกัน. ส่วน Juniper จะเป็น transit router
 ใช้ LDP เพื่อเป็น Signalling protocol ทั้ง Transport Label และ VPN label
 ใช้ OSPF เพื่อทำ Routing Protocol ภายในโดนเมนนี้

 ISP Transmission Network Diagram

ISP Transmission Topology


 Huawei eNSP
 Router Huawei ไม่สามารถ run ได้นอกตัวโปรแกรม eNSP. ในแล็บนี้จึงใช้ Window แล้วลงโปรแกรม eNSP แล้วใช้เทคนิคการทำ Port Binding เพื่อ Connect กับ Router ตัวอื่นๆ รวมถีง IPoE Client.

โปรแกรม eNSP และ ตัวอย่าง Port Binding ดูได้จากรูปด้านล่างนี้
Huawei eNSP Port binding


8. NOKIA BNG คอนฟิก OSPF MPLS-LDP 

A:BNG#admin display-config 
#--------------------------------------------------
echo "Port Configuration"
#--------------------------------------------------
    port 1/1/2
        description "to_vMX_em2"          
        ethernet
            mtu 9212
        exit
        no shutdown
    exit
    port 1/1/3
        description "To_Juniper_Olive_em2"
        ethernet
            mtu 9212
        exit
        no shutdown
    exit
    port 1/1/5
        description "PhyLoop_Grp-int"
        ethernet                      
            mode access
            encap-type dot1q
            mtu 9212
        exit
        no shutdown
    exit
    port 1/1/6
        description "PhyLoop_EPIPE"
        ethernet
            mode access
            encap-type dot1q
            mtu 9212
        exit
        no shutdown
    exit
exit

A:BNG# /configure router              
A:BNG>config>router# info 
#--------------------------------------------------
echo "IP Configuration"
#--------------------------------------------------
        interface "system"
            address 10.10.10.1/32
            no shutdown
        exit
        interface "to_Olive"
            address 192.168.16.1/24
            port 1/1/3
            ip-mtu 1500
            no shutdown
        exit
        interface "to_vMX"
            address 192.168.14.1/24
            port 1/1/2
            ip-mtu 1500
            no shutdown
        exit
#--------------------------------------------------
echo "OSPFv2 Configuration"
#--------------------------------------------------
        ospf 0
            area 0.0.0.0
                interface "system"
                    no shutdown
                exit
                interface "to_Olive"
                    interface-type point-to-point
                    no shutdown
                exit
                interface "to_vMX"
                    interface-type point-to-point
                    no shutdown
                exit
            exit
            no shutdown
        exit
#--------------------------------------------------
echo "LDP Configuration"
#--------------------------------------------------
        ldp
            interface-parameters
                interface "to_Olive" dual-stack
                    ipv4              
                        no shutdown
                    exit
                    no shutdown
                exit
                interface "to_vMX" dual-stack
                    ipv4
                        no shutdown
                    exit
                    no shutdown
                exit
            exit
            targeted-session
                peer 10.10.10.3
                    no shutdown
                exit
                peer 10.10.10.5
                    no shutdown
                exit
            exit
            no shutdown
        exit
----------------------------------------------

9.  Cisco คอนฟิก OSPF MPLS-LDP 

Router#show running-config 
Building configuration...
!
mpls label protocol ldp
mpls ldp neighbor 10.10.10.1 targeted ldp
!
interface Loopback0
 ip address 10.10.10.3 255.255.255.255
 ip ospf 1 area 0
!         
interface FastEthernet0/1
 description "To_vMX_em3"
 ip address 192.168.34.3 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 duplex auto
 speed auto
 mpls ldp discovery transport-address 10.10.10.3
 mpls label protocol ldp
 mpls ip
!
interface FastEthernet2/0
 description "To_Huawei_e1(GE0/0/1)"
 no switchport
 ip address 192.168.35.3 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 mpls ldp discovery transport-address 10.10.10.3
 mpls label protocol ldp
 mpls ip
!
router ospf 1
 router-id 10.10.10.3
 log-adjacency-changes
!
mpls ldp router-id Loopback0 force
!
Router#

10.  Juniper vMX คอนฟิก OSPF MPLS-LDP 

lab@vMX-1# 
[edit interfaces]
set interfaces em2 unit 0 family inet address 192.168.14.4/24
set interfaces em2 unit 0 family mpls
set interfaces em3 unit 0 family inet address 192.168.34.4/24
set interfaces em3 unit 0 family mpls
set interfaces em4 unit 0 family inet address 192.168.46.4/24
set interfaces em4 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 10.10.10.4/32
set interfaces lo0 unit 0 family mpls

[edit protocols]
set protocols mpls interface all
set protocols ospf area 0.0.0.0 interface em2.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface em3.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface em4.0 interface-type p2p
set protocols ldp interface em2.0
set protocols ldp interface em3.0
set protocols ldp interface em4.0
set protocols ldp interface lo0.0

11.  Huawei คอนฟิก OSPF MPLS-LDP 

[Huawei]display current-configuration 
#
mpls lsr-id 10.10.10.5
mpls
 label advertise non-null
#
mpls l2vpn
#
mpls ldp
#
mpls ldp remote-peer to_bng
 remote-ip 10.10.10.1
#
interface GigabitEthernet0/0/1
 description "To_Cisco3725_fa2/0"
 ip address 192.168.35.5 255.255.255.0
 ospf network-type p2p
 ospf enable 1 area 0.0.0.0
 mpls
 mpls ldp
#
interface GigabitEthernet0/0/2
 description "To_Juniper_Olive_em0"
 ip address 192.168.56.5 255.255.255.0
 ospf network-type p2p
 ospf enable 1 area 0.0.0.0
 mpls
 mpls ldp
#
interface LoopBack0
 ip address 10.10.10.5 255.255.255.255
 ospf enable 1 area 0.0.0.0
#
ospf 1 router-id 10.10.10.5
 area 0.0.0.0
#

12.  Juniper Olive คอนฟิก OSPF MPLS-LDP 

[edit interfaces]
set interfaces em0 unit 0 family inet address 192.168.56.6/24
set interfaces em0 unit 0 family mpls
set interfaces em1 unit 0 family inet address 192.168.46.6/24
set interfaces em1 unit 0 family mpls
set interfaces em2 unit 0 family inet address 192.168.16.6/24
set interfaces em2 unit 0 family mpls
set interfaces lo0 unit 0 family inet address 10.10.10.6/32
set interfaces lo0 unit 0 family mpls

[edit protocols] 
set protocols mpls interface all
set protocols ospf area 0.0.0.0 interface em0.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface em1.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface em2.0 interface-type p2p
set protocols ldp interface em0.0
set protocols ldp interface em1.0
set protocols ldp interface em2.0
set protocols ldp interface lo0.0


13. การคอนฟิก MPLS L2VPN VLL ที่ NOKIA, Cisco และ Huawei.

  13.1 MPLS L2VPN Topology
  Cisco กับ NOKIA BNG จะใช้ virtual circuit id = 103 เพื่อทำ vll สำหรับ PPPoE Client
  Huawei กับ NOKIA BNG  จะใช้ virtual circuit id = 105 เพื่อทำ vll สำหรับ IPoE Client
 NOKIA BNG ใช้ Physical Loop 1/1/6 - 1/1/5 เพื่อรับส่งข้อมูลระหว่าง Epipe กับ Group-Interface และ แยก service โดยใช้ vlan.





13.2  คอนฟิก NOKIA BNG VLL ( Epipe )

/configure
    service
        sdp 103 mpls create
            description "To_Cisco"
            far-end 10.10.10.3
            ldp
            path-mtu 9194
            keep-alive
                shutdown
            exit
            no shutdown
        exit
        sdp 105 mpls create
            description "To_Huawei"
            far-end 10.10.10.5
            ldp
            path-mtu 9194
            keep-alive
                shutdown
            exit
            no shutdown
        exit
    exit
exit

A:BNG# configure service epipe 103    
A:BNG>config>service>epipe# info 
----------------------------------------------
            description "To_Cisco_PPPoE_service"
            sap 1/1/6:20 create
                no shutdown
            exit
            spoke-sdp 103:103 create
                no shutdown
            exit
            no shutdown
----------------------------------------------

A:BNG# configure service epipe 105 
A:BNG>config>service>epipe# info 
----------------------------------------------
            description "To_Huawei_IPoE_Service"
            sap 1/1/6:10 create
                no shutdown
            exit
            spoke-sdp 105:105 create
                no shutdown
            exit
            no shutdown
----------------------------------------------

13.2  คอนฟิก Cisco  VLL ( xconnect )

Router#show running-config 
Building configuration...
!
pseudowire-class BNG-PW
 encapsulation mpls
!
interface FastEthernet1/0
 no ip address
 duplex auto
 speed auto
 xconnect 10.10.10.1 103 encapsulation mpls pw-class BNG-PW
!

13.2  คอนฟิก Huawei  VLL ( l2vc หรือบางทีเรียกว่า Pseudowire )

[Huawei]#
interface GigabitEthernet0/0/3
 description "To_UE"
 mpls l2vc 10.10.10.1 105
#

จบแล้วสำหรับการคอนฟิก MPLS L2VPN จากนั้นก็แสดงสถานะที่คอนฟิกไป


14. แสดงสถานะ OSPF neighbor , LDP session ของแต่ละ Router

 14.1 NOKIA BNG แสดงสถานะ OSPFneighbor , LDP session และ Epipe


A:BNG# show router ospf neighbor 

===============================================================================
Rtr Base OSPFv2 Instance 0 Neighbors
===============================================================================
Interface-Name                   Rtr Id          State      Pri  RetxQ   TTL
   Area-Id
-------------------------------------------------------------------------------
to_Olive                         10.10.10.6      Full       128  0       38
   0.0.0.0
to_vMX                           10.10.10.4      Full       128  0       38
   0.0.0.0
-------------------------------------------------------------------------------
No. of Neighbors: 2
===============================================================================
A:BNG# 
A:BNG# show router ldp session 

==============================================================================
LDP IPv4 Sessions
==============================================================================
Peer LDP Id         Adj Type  State         Msg Sent  Msg Recv  Up Time
------------------------------------------------------------------------------
10.10.10.3:0        Targeted  Established   828       1397      0d 01:13:42
10.10.10.4:0        Link      Established   1669      1474      0d 01:14:01
10.10.10.5:0        Targeted  Established   828       647       0d 01:13:53
10.10.10.6:0        Both      Established   2000      1802      0d 01:14:01
------------------------------------------------------------------------------
No. of IPv4 Sessions: 4
==============================================================================
A:BNG# show service sdp-using 
===============================================================================
SDP Using
===============================================================================
SvcId      SdpId              Type   Far End              Opr   I.Label E.Label
                                                          State         
-------------------------------------------------------------------------------
103        103:103            Spok   10.10.10.3           Up    524278  26
105        105:105            Spok   10.10.10.5           Up    524279  1034
-------------------------------------------------------------------------------
Number of SDPs : 2
-------------------------------------------------------------------------------
===============================================================================
A:BNG# 

14.2 Cisco แสดงสถานะ OSPF neighbor และ LDP session 


Router#show ip ospf neighbor 

Neighbor ID     Pri   State           Dead Time   Address         Interface
10.10.10.5        0   FULL/  -        00:00:35    192.168.35.5    FastEthernet2/0
10.10.10.4        0   FULL/  -        00:00:39    192.168.34.4    FastEthernet0/1
Router#
Router#show mpls ldp  neighbor 
    Peer LDP Ident: 10.10.10.4:0; Local LDP Ident 10.10.10.3:0
        TCP connection: 10.10.10.4.50744 - 10.10.10.3.646
        State: Oper; Msgs sent/rcvd: 28007/24471; Downstream
        Up time: 2d20h
        LDP discovery sources:
          FastEthernet0/1, Src IP addr: 192.168.34.4
        Addresses bound to peer LDP Ident:
          10.10.10.4      192.168.14.4    192.168.34.4    192.168.46.4    
    Peer LDP Ident: 10.10.10.5:0; Local LDP Ident 10.10.10.3:0
        TCP connection: 10.10.10.5.50257 - 10.10.10.3.646
        State: Oper; Msgs sent/rcvd: 1020/890; Downstream
        Up time: 03:40:15
        LDP discovery sources:
          FastEthernet2/0, Src IP addr: 192.168.35.5
        Addresses bound to peer LDP Ident:
          192.168.35.5    10.10.10.5      192.168.56.5    
    Peer LDP Ident: 10.10.10.1:0; Local LDP Ident 10.10.10.3:0
        TCP connection: 10.10.10.1.646 - 10.10.10.3.18738
        State: Oper; Msgs sent/rcvd: 427/542; Downstream
        Up time: 01:20:41
        LDP discovery sources:
          Targeted Hello 10.10.10.3 -> 10.10.10.1, active, passive
        Addresses bound to peer LDP Ident:
          10.10.10.1      192.168.14.1    192.168.16.1    
Router#
Router#show mpls l2transport vc 

Local intf     Local circuit              Dest address    VC ID      Status    
-------------  -------------------------- --------------- ---------- ----------
Fa1/0          Ethernet                   10.10.10.1      103        UP        
Router#

14.2 Juniper vMX แสดงสถานะ OSPF neighbor และ LDP session

lab@vMX-1# run show ospf neighbor 
Address          Interface              State     ID               Pri  Dead
192.168.14.1     em2.0                  Full      10.10.10.1         1    34
192.168.34.3     em3.0                  Full      10.10.10.3         1    32
192.168.46.6     em4.0                  Full      10.10.10.6       128    39

[edit]
lab@vMX-1# 
lab@vMX-1# run show ldp session 
  Address           State        Connection     Hold time  Adv. Mode
10.10.10.1          Operational  Open             24         DU
10.10.10.3          Operational  Open             27         DU
10.10.10.6          Operational  Open             27         DU

[edit]
lab@vMX-1# 

14.3 Huawei แสดงสถานะ OSPF neighbor LDP session และ PW (Pseudowire)


[R1]display ospf peer brief 

  OSPF Process 1 with Router ID 10.10.10.5
    Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/1             10.10.10.3       Full        

 0.0.0.0          GigabitEthernet0/0/2             10.10.10.6       Full        

 ----------------------------------------------------------------------------
[R1]
[R1]display mpls ldp session

 LDP Session(s) in Public Network
 Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDD:HH:MM)
 A '*' before a session means the session is being deleted.
 ------------------------------------------------------------------------------
 PeerID             Status      LAM  SsnRole  SsnAge      KASent/Rcv
 ------------------------------------------------------------------------------
 10.10.10.1:0       Operational DU   Active   0000:00:01  9/13
 10.10.10.3:0       Operational DU   Active   0000:00:01  8/9
 10.10.10.6:0       Operational DU   Passive  0000:00:02  12/12
 ------------------------------------------------------------------------------
 TOTAL: 3 session(s) Found.

[R1]
[R1]display mpls l2vc brief 
 Total LDP VC : 1     1 up       0 down 

 *Client Interface     : GigabitEthernet0/0/3
  Administrator PW     : no
  AC status            : up
  VC State             : up
  Label state          : 0
  Token state          : 0
  VC ID                : 105
  VC Type              : Ethernet
  session state        : up
  Destination          : 10.10.10.1
  link state           : up
  
[R1]

14.4 Juniper Olive แสดงสถานะ OSPF neighbor และ LDP session

root# run show ospf neighbor 
Address          Interface              State     ID               Pri  Dead
192.168.56.5     em0.0                  Full      10.10.10.5         1    38
192.168.46.4     em1.0                  Full      10.10.10.4       128    37
192.168.16.1     em2.0                  Full      10.10.10.1         1    37

[edit]
root# run show ldp session 
  Address           State        Connection     Hold time
10.10.10.1          Operational  Open             25
10.10.10.4          Operational  Open             27
10.10.10.5          Operational  Open             20

[edit]
root# 


จบไปแล้วสำหรับ ISP Transmission กับการคอนฟิก MPLS L2VPN
ต่อไปจะเป็นการให้ Client Authentication และทดสอบเล่น Internet

15. IPoE Client Authentication และทดสอบออก Internet


   IPoE Client Authencation ไม่ต้องทำอะไรเป็นพิเศษแค่ Enable พอร์ท Local Area Connection ที่เซ็ตไว้เป็น DHCP enable ก็จะ Authen ได้เลย

   IPoE Client  ทดสอบออก Internet


16. PPPoE Client Authentication และทดสอบออก Internet

 PPPoE ในการ Authentication จะไม่เหมือน IPoE ต้องมีการเซ็ต Interface เพิ่มเติม โดยเข้าไปที่ Internet and Sharing Center แล้วคลิก Set up a new connection or netowrk เลือก Connect to the Internet ตามรูปภาพ


เลือก Create New Connection -> Broadband (PPPoE) -> ใส่ Username/Password ที่สร้างไว้ใน Tek Radius (bnet1@abc.com/abc1234) กด Connect

PPPoE เมื่อ Connect สำเร็จแล้ว มาเช็ค Status ตามรูป

  PPPoE Client ทดสอบออก Internet


17. NOKIA BNG แสดงสถานะ IPoE/PPPoE session และสถานะการแจก IP ของ DHCP.

 สถานะ IPoE/PPPoE session จะมี sla-profile กับ sub-profile ที่ได้มาจาก Radius ด้วย
* IP ที่ Client ได้กับ ที่แสดงผล หรือ Capture อาจเป็นคนละ  IP เนื่องจากผมเทสและเก็บผลหลายครั้งจึงทำให้ผลแตกต่างกัน

A:BNG# show service active-subscribers 

===============================================================================
Active Subscribers
===============================================================================
-------------------------------------------------------------------------------
Subscriber 50:01:00:0a:00:00|1/1/5:20|1 (SUB-PPPOE-10M)
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
(1) SLA Profile Instance sap:1/1/5:20 - sla:SLA-PPPOE-10M
-------------------------------------------------------------------------------
IP Address                                                                  
                MAC Address          Session        Origin       Svc        Fwd
-------------------------------------------------------------------------------
172.16.2.2
                50:01:00:0a:00:00    PPP 1          IPCP         100        Y
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Subscriber 50:01:00:0b:00:00|1/1/5:10 (SUB-IPOE-PKG-1)
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
(1) SLA Profile Instance sap:1/1/5:10 - sla:SLA-IPOE-PKG-1
-------------------------------------------------------------------------------
IP Address                                                                  
                MAC Address          Session        Origin       Svc        Fwd
-------------------------------------------------------------------------------
172.16.1.2
                50:01:00:0b:00:00    N/A            DHCP         100        Y
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Number of active subscribers : 2
===============================================================================
A:BNG# 
A:BNG# show router 100 dhcp local-dhcp-server "DHCP-SERVER-IPOE" leases 

===============================================================================
Leases for DHCP server DHCP-SERVER-IPOE router 100
===============================================================================
IP Address      Lease State       Mac Address       Remaining   Clnt  Fail
  PPP user name/Opt82 Circuit Id                    LifeTime    Type  Ctrl
  User-db/Sticky-lease Hostname
-------------------------------------------------------------------------------
172.16.1.2      stable            50:01:00:0b:00:00 9d23h56m    dhcp  local

-------------------------------------------------------------------------------
1 leases found
===============================================================================
A:BNG# show router 100 dhcp local-dhcp-server "DHCP-SERVER-PPPOE" leases 

===============================================================================
Leases for DHCP server DHCP-SERVER-PPPOE router 100
===============================================================================
IP Address      Lease State       Mac Address       Remaining   Clnt  Fail
  PPP user name/Opt82 Circuit Id                    LifeTime    Type  Ctrl
  User-db/Sticky-lease Hostname
-------------------------------------------------------------------------------
172.16.2.2      stable            50:01:00:0a:00:00 0h49m59s    ppp   local
  bnet1@abc.com
-------------------------------------------------------------------------------
1 leases found
===============================================================================
A:BNG# 

18. ผล Capture  Traffic IPoE

IPoE Client Capture file: https://1drv.ms/u/s!AtVkTJ4icW0Xl25bqVZhGEbxCG9w?e=7ZMMce

IPoE Radius Capture file: https://1drv.ms/u/s!AtVkTJ4icW0Xl201KbyjI6h5FRDA?e=hVQKWF



19. ผล Capture  Traffic PPPoE

PPPoE Client Capture file: https://1drv.ms/u/s!AtVkTJ4icW0Xl2m9BoG4hDZd7qQK?e=qnvmt2



PPPoE Radius Capture file: https://1drv.ms/u/s!AtVkTJ4icW0Xl2qLHQsHDbY32hRr?e=uXgDTT


20 Version

Nokia 7750SR version TiMOS-C-16.0.R5
Cisco3725 Version 12.4(15)T14
Juniper vSRX firefly-perimeter version 12.1X47-D15.4
Juniper vMX version 14.1R1.10
Juniper Olive version 12.1R1.9
eNSP version 1.2.00.510 V100R002C00
TekRADIUS LT version 5.5.3.0

แล็บนี้ก็มีเพียงเท่านี้ครับ

แล็บนี้ยังสามารถปรับปรุงได้อีกเยอะเช่น BNG Redundancy และฟังก์ชั่นอื่นๆ,  ใช้ Linux FreeRadius แทน TekRADIUS. ทำ Radius Redundancy, Optimize Firewall Policy, ใช้ Router ทำ NAT แทน NAT-PC, ส่วน ISP Transmission จะเห็นว่าในนี้เป็น MPLS ผืนเดียวแต่ถ้า Router เป็นหลักร้อยหลักพันตัว จำเป็นทำเป็นหลายผืน เพื่อ Optimize Network รวมถึงการปรับปรุง L2VPN ให้เป็น Hierarchy เช่น H-VPLS หรือทำ Multi-Segment VLL. รวมไปถึง Pseudowire Redundancy และ LSP path protection. ไว้เจอกันแล็บหน้าครับ

Saturday, January 18, 2020

การคอนฟิก NOKIA BNG กับการให้บริการ Broadband Internet ด้วยโปรโตคอล PPPoE

ก่อนที่เราจะเริ่มคอนฟิก BNG ผมขออธิบายเกี่ยวกับ Broadband Internet สักนิดก่อนนะครับ เพื่อได้เข้าใจว่า BNG ที่เราจะคอนฟิกนี้ อยู่ตรงส่วนใหนของเครือข่ายและมีการใช้งานยังไง

ในเนื้อหาที่เราจะพูดถึงนี้ประกอบไปด้วย 4 ส่วน  ดังนี้
1. Broadband Internet
2. PPPoE Call Flow
3. คอนฟิก BNG และอุปกรณ์อื่นๆ
4. ผลลัพธ์


Broadband Internet หรือ อินเตอร์เน็ตที่ให้บริการตามบ้าน

Broadband Internet แบ่งตามเทคโนลียีที่ใช้ในปัจจุบันจะมีอยู่ 2 แบบคือ xDSL กับ FTTx
  • xDSL  ใช้ชุมสายที่เรียกว่า IPSLAM ทำหน้าที่กระจายสัญญาณ ติดตั้งทั้งตามเสาไฟหรือภายในอาคารบางทีก็เรียกว่าโหนด สายนำสัญญาณที่ใช้ก็จะเป็นสายทองแดงคู่(Twist pair)บางทีเรียกว่าดรอปวายร์ ( dropwire ) เราเตอร์ที่ติดตั้งในบ้านเรียกว่า DSL Router. 
  • FTTx   ใช้ชุมสายที่เรียกว่า OLT ที่เป็นตัวกระจายสัญญาณด้วยแสง สายนำสัญญาณจะเป็น Fiber Optic หรือเรียกว่า  dropwire เช่นกัน เร้าเตอร์ที่ติดตั้งตามบ้านจะเรียกว่า ONT หรือ ONU ก็ได้


โครงสร้างเครือข่าย Broadband Internet 
Broadband Internet Architecture


ในเครือข่าย Broadband Internet ก็จะประกอบไปด้วย

  • ONT/DSL Router คือ Router ที่เจ้าหน้าที่มาติดตั้งที่บ้าน ต่อไปจะเรียกว่า Subscriber Host นะครับ
  • OLT/IPDSLAM คือ ชุมสายที่ทำหน้าที่กระจายสัญญาณ
  • Fiber Optic/Copper  หรือที่เรียกว่า dropwire คือสายสายนำสัญญาณที่เจ้าหน้าลากสายมาจากชุมสายเข้ามาต่อกับ Router ที่บ้าน
  • ISP(Internet Service Provider) Transmission เป็นเครือข่ายขนาดใหญ่ของผู้ให้บริการ ประกอบไปได้วย Router เป็นร้อยเป็นพันตัวทำหน้าที่รับส่ง Traffic สำหรับ Broadband Service ปกติจะ Implement เป็น MPLS L2VPN . 
  • Access Router คือ อุปกรณ์ที่ทำหน้าที่รวบรวมข้อมูล (Traffic) จากหลายๆ OLT, DLSAM เพื่อรับส่งกับ Aggregate Router
  • Aggregate Router คือ อุปกรณ์ที่ทำหน้าที่รวบรวมข้อมูลกับหลายๆ Access Router เพื่อรับส่งกับ BNG
  • BNG คืออุปกรณ์ที่คอยให้บริการ Broadband Internet โดยการสร้าง PPPoE session กับอุปกรณ์ที่ร้องขอการใช้เครือข่ายด้วย PPPoE โปรโตคอล ในที่นี้คือ ONT/DSL Router และเป็นทางออกสู่ Internet
  • Radius Server คือ อุปกรณ์ที่เก็บ Username/Password ของผู้ใช้ ในระหว่างการสร้าง PPPoE Session Username/Password ที่คอนฟิกใน DSL Router จะต้องถูกส่งไปที่ Radius จากนั้น Radius ก็จะตอบกลับมาว่าใช้งาน Internet หรือไม่ ใช้ได้ด้วย Profile อะไร ( Speed เท่าไหร่ )
  • DHCP Server คือ จะมีหน้าที่แจก IP Address ให้กับ  ONT/DSL Router ที่บ้าน
  • Internet คือ เครือข่าย Internet ของ ISP 

PPPoE Call Flow


การสร้าง PPPoE Session  จะประกอบไปด้วยหลายขั้นตอน  ดังนี้
1. PPPoE Active Discovery
2. LCP Link Estrablish
3. (PAP/CHAP) Authentication
4. IPCP Address Assignment

ผมขอข้ามรายละเอียดแต่ละ Packet ไปนะครับเดี๋ยวมันจะยาวเกินไป
PPPoE Call Flow


การคอนฟิก BNG และอุปกรณ์อื่นๆ

คราวนี้เราจะมาจำลองเครือข่ายอย่างง่าย โดยการใช้โปรแกรม EVE-NG
วิธีการทำ Virtual Windows, Mikrotik, NOKIA 7750SR ตามลิ้งนี้ครับ https://www.eve-ng.net/index.php/documentation/howtos/

EVE-NG LAB Broadband Network


ส่วนประกอบของเครือข่ายที่เราจะทำก็จะมี
  • PC คือ Window7 ที่จำลองใน EVE-NG เอาทำไว้ทดลองเข้า Internet เหมือนคอมที่ตั้งอยู่ที่บ้าน
  • Mikrotik คือ Home router ที่ขอ PPPoE session กับ BNG หรือก็คือ Subscriber Host ผมจะควบคุม Mikrotik ผ่านโปรแกรม Winbox ได้จึงจำเป็นต้องต่อ Interface eth1 ของ Mikrotik ให้ออก Management Interface ของ EVE-NG จากนั้น Router จริงๆ ที่บ้านจะแจกไอพีให้  Mikrotik.ฺ
  • BNG ในที้นี้ใช้ NOKIA 7750SR-12 Timos version 12 สามารถหาได้จากใน Internet โดย Router จะ Reboot ทุกๆ 60 นาทีเพราะไม่มี License.
  • NAT คือ PC Window7 ที่ทำหน้าที่ Shared Internet จาก e0 ให้ e1 และทำหน้าที่ NAT ออกด้วย IP Address ที่ e0
  • Internet Cloud คือ Management ของ EVE-NG ปลายทางก็คือ Router จริงๆที่บ้าน เพื่อเป็นทางออก Internet
  • Management Cloud คือ Management ของ EVE-NG. Mikrotik จะได้รับการแจก IP จาก Router จริงๆที่บ้าน เพื่อที่จะใช้ Winbox ในการเซ็ต Mikrotik

1 BNG Configuration 


 1.1  BNG คอนฟิก Router Name กับ Provisioning Card
ปกติใน router ยี่ห้ออื่นๆ จะไม่ต้อง provisioning card คือถ้าปลั๊กการ์ดไปที่ router ก็จะสามารถคอนฟิกพอร์ทหรือ Interface ได้เลย แต่ Router ของ Nokia ต้อง provisioning card ก่อน


/configure system name BNG
/configure card 1 card-type "iom-xp-b
/configure card 1 mcm 1 mcm-type "mcm-xp"


 1.2 BNG คอนฟิก Physical Port 

port mode: access ของ NOKIA นี้ไม่เหมือนคอนฟิก Cisco นะครับคนละความหมายกันเลย. ในที่นี้พอร์ทจะถูกใช้กับ VPRN จึงต้องเป็น mode access ( Mode: network ใช้กับ router base, mode: hybrid ใช้กับ router base และ vprn.) ลิ้งค์ระหว่าง BNG กับ Mikrotik จะให้เป็น dot1q (tag vlan ด้วย)

/configure 
    port 1/1/1 
        description "To_NAT_eth1"
        ethernet
            mode access
        exit
        no shutdown
    exit
    port 1/1/2
        description "To_Mikrotik_eth1"
        ethernet
            mode access
            encap-type dot1q
        exit
        no shutdown
    exit
 
1.3 BNG คอนฟิก sla-profile และ sub-profile
sla-profile คือส่วนที่ควบคุม speed ของ subscriber หรือ user นั่นเอง ปกติแล้วก็จะมีคอนฟิก Qos อยู่ในนั้น แต่ขอข้ามส่วนของ QoS ไปก่อน เพราะฉนั้นคอนฟิกนี้ก็จะหมายถึง ไม่ได้จำกัด speed ของ user sub-profile ปกติคอฟฟิกนี้จะเกียวกับ accouting เช่น อัพเดทข้อมูลของ subscriber เป็นให้ Server ระยะๆ เพื่อความคุมการใช้และการคิดตังค์
sub-ident-policy เอาไว้ map sla-profile/ sub-profile ระหว่าง Radius กับ BNG.

A:BNG# configure subscriber-mgmt 
A:BNG>config>subscr-mgmt# info 
----------------------------------------------
        sla-profile "SLA-D100-U10" create
            description "Sla-profile Download 100M Upload 10M"
        exit
        sla-profile "SLA-DEFAULT" create
            description "Default Sla Profile"
        exit
        sub-profile "SUB-D100-U10" create
            description "Sub-profile Download 100M Upload 10M"
        exit
        sub-profile "SUB-DEFAULT" create
            description "Default Subscriber Profile"
        exit
        sub-ident-policy "SUB-IDEN" create
            sub-profile-map
                use-direct-map-as-default
            exit
            sla-profile-map
                use-direct-map-as-default
            exit
        exit
----------------------------------------------

 1.4 BNG คอนฟิก Local-user-db 
 ในการทำแล็บนี้เราจะใช้ Local-User-Database หรือ Local Radius Server ซึ่งเป็นฟังก์ชันที่มีอยู่แล้วใน BNG  แล็บถัดไป อาจจะใช้ External Radius Server นะครับ ในขั้นตอนการ authentication username/password ของ Subscriber ก็จะถูกส่งให้ Local-user-db จากนั้น เมื่อ authentication ผ่านแล้ว Local-user-db ก็จะส่งค่าเช่น sla-profile:"SLA-D100-U10" กับ sub-profile:"SUB-D100-U10" มาให้ด้วย ตรงนี้ก็เหมือนกับเราไปซื้อ package internet ก็จะได้ username/password ผูกกับ package.

ตัวอย่างนี้จะใช้
username: bnet@abc.com
password: abc1234

A:BNG# configure subscriber-mgmt 
A:BNG>config>subscr-mgmt# info 
----------------------------------------------
        local-user-db "LOCAL-DB" create
            ppp                       
                match-list username 
                host "Mikrotik" create
                    host-identification
                        username "bnet@abc.com"
                    exit
                    password chap "IpDZVgHclD7e1WF3fzruZ8yuxUsHKS3Y" hash2 
                    identification-strings 100 create
                        subscriber-id "SUB-IDEN"
                        sla-profile-string "SLA-D100-U10"
                        sub-profile-string "SUB-D100-U10"
                    exit
                    no shutdown
                exit
            exit
            no shutdown
        exit
----------------------------------------------

 1.5 BNG คอนฟิก Local DHCP Server
 DHCP เป็นได้ทั้ง External DHCP Server และ Local DHCP Server ในที่นี้จะใช้แบบ Local นะครับ
 เมื่อ authentication ผ่านแล้วขั้นตอนสุดท้ายคือการแจก IP Address ให้กับ Subscriber Host. โดย Local DHCP Server นี้คอนฟิกไว้คือ แจกด้วย IP วง 172.16.10.0/24 ตั้งแต่ IP 172.16.10.2/24 ถึง IP 172.16.10.254/24 gateway 172.16.10.1 dns 8.8.8.8
ส่วน interface loopback_DHCP ก็คือ Logical Interface ที่ทำหน้าที่เป็น Address ของ DHCP server


A:BNG# configure service vprn 100 customer 1 create 
A:BNG>config>service>vprn# info 
----------------------------------------------
            route-distinguisher 65000:100
            service-name "BNG"
            dhcp
                local-dhcp-server "LOCAL_DHCP_SERVER" create
                    use-gi-address 
                    pool "pool1" create
                        options
                            dns-server 8.8.8.8
                        exit
                        subnet 172.16.10.0/24 create
                            options
                                default-router 172.16.10.1
                            exit
                            address-range 172.16.10.2 172.16.10.254 
                        exit
                    exit
                    no shutdown
                exit
            exit
            interface "Loopback_DHCP" create
                address 10.10.10.1/32
                local-dhcp-server "LOCAL_DHCP_SERVER"
                loopback              
            exit

 1.6 BNG คอนฟิก Subscriber-Interface และ Group-Interface 
Subscriber-Interface เป็น Interface ที่เอาไว้คุยกับ Subscriber Host มีคอนฟิก address เพื่อเป็น ip-gateway ของ subscriber 
Group-interface จะเป็น interface ที่ผูกกับ physical interface (1/1/2:10) และเป็นตัวกำหนด parameter ต่างๆ ของ subscriber ที่จะเข้ามาทาง interface นี้ เช่น กำหนดว่าจะให้ใช้ dhcp server ตัวใหน. authentication กับ Radius server ใหน
 ในตัวอย่างนี้ Mikrotik ต้อง tag ด้วย vlan 10 เพื่อที่จะเข้ามาทาง Group-interface นี้ได้. โดยเริ่มต้นจะได้ sla-profile: "SLA-DEFAULT" และ sub-profile:"SUB-DEFAULT"

A:BNG# configure service vprn 100
A:BNG>config>service>vprn#  info      
----------------------------------------------
            subscriber-interface "SUB-INT-1" create
                address 172.16.10.1/24
                group-interface "GRP-INT-1" create
                    dhcp
                        server 10.10.10.1 
                        lease-populate 32767
                        client-applications ppp
                        gi-address 172.16.10.1
                        user-db "LOCAL-DB"
                        no shutdown
                    exit
                    sap 1/1/2:10 create
                        sub-sla-mgmt
                            def-sub-id use-auto-id
                            def-sub-profile "SUB-DEFAULT"
                            def-sla-profile "SLA-DEFAULT"
                            sub-ident-policy "SUB-IDEN"
                            multi-sub-sap 32767
                            no shutdown
                        exit
                    exit
                    pppoe             
                        session-limit 32767
                        sap-session-limit 32767
                        no shutdown
                    exit
                exit
            exit

 1.7 BNG คอนฟิกทางออก Internet
 เมื่อ Subscriber Host authentication ผ่านแล้ว ได้ IP แล้ว ก็จำเป็นที่จะต้องมีทางออกไป Internet. ในแล็บนี้ได้คอนฟิกเป็น Static-route Default Route ส่งไปที่ NAT (PC)  จากนั้น NAT PC ก็จำทำการ NAT และส่ง Traffic ไปที่ Router จริงที่บ้านเพื่อออก Internet อีกที ( ดูซับซ้อนนะ  )

A:BNG# configure service vprn 100
A:BNG>config>service>vprn#  info      
----------------------------------------------
            interface "to_NAT" create
                description "Way to the Internet"
                address 20.20.20.2/30
                sap 1/1/1 create
                exit
            exit
            static-route 0.0.0.0/0 next-hop 20.20.20.1 description "Default-Route to NAT"
   
สำหรับ Config บน BNG ก็จะหมดเพียงเท่านี้ครับ ที่เหลือก็จะเป็นการคอนฟิกส่วนประกอบอื่นๆ ของเครือข่ายเช่น  Mikrotik กับ NAT (PC)

2 Mikrotik  Configuration 

  Mikrotik จะคอนฟิกแบ่งออกเป็น 3 ส่วนนะครับ คือ
2.1 Mikrotik PPPoE Client คือ เพื่อสร้าง PPPoE Session เพื่อขอการใช้งาน Internet กับ ISP
2.2 Mikrotik DHCP Server คือ ทำหน้าที่แจก IP ให้กับ PC ในบ้าน
2.3 Mikrotik NAT คือ ทำหน้าที่ NAT ออกไปด้วย IP Address ของ interface pppoe



  2.1. Mikrotik PPPoE Client. 
 Mikrotik คอนฟิก interface eth2 ให้ tag vlan 10โดยคลิกที่ Interface > New Interface (เครืองหมาย + สีน้ำเงิน ) > VLAN จากนั้นตั้งค่าตามรูป

Mikrotik interface with vlan


สร้าง pppoe client  โดยคลิกที่ Interface > New Interface  > PPPoE client

Mikrotik PPPoE Client.

2.2 Mikrotik DHCP Server 
 เพื่อแจก IP ให้กับ PC ในบ้าน ในที่นี้จะแจก IP ด้วยวง 192.168.1.0/24   เริ่มจากสร้าง ip pool ที่จะแจก IP ก่อน โดยเข้าไปที่ IP > Pool ในตัวอย่างนี้ตั้งค่า address เป็น 192.168.1.10-192.168.1.254
Mikrotik IP Pool

จากนั้นก็คอนฟิกเป็น DHCP Server โดยเข้าไปที่ IP > DHCP Server

Mikrotik DHCP Server

 2.3 Mikrotik NAT
เพื่อ NAT source address จาก PC ( 192.168.1.0/24) ให้เป็น IP ของ pppoe-out1 ที่เราคอนฟิกด้านบน โคยคลิกที่ IP > Firewall
Mikrotik NAT


3 NAT(PC) internet shared  

เนื่องจากต้องการทำให้ PC ที่อยู่ในแล๊บออก Internet ได้จริง และ LAB ก็มีข้อจำกัดเกี่ยวกับการจำลองเครือข่าย ในที่นี้ผมเลือกที่จะทำ NAT PC (Windows 7 ใน EVE-NG ) และทำการ shared internet ในเครือข่ายจริงจะไม่มีในส่วนนี้นะครับ

 3.1  NAT PC share internet
 NAT PC จะต้องมีอย่างน้อย 2 interface   ในที่นี้มี
 Local Area Connection 3 หรือ e0 ใน EVE-NG ที่ต่อเข้ากับ management ของ EVE-NG. Interface นี้จะได้รับการแจก IP จาก Router จริงที่บ้าน (เหมือนกับ Mikrotic eth1)
 Local Area Connection 4 คือ e1 ที่ต่อไปหา BNG
 จากนั้นก็ทำการ Share โดยการคลิกขวาที่ Local Area Connection 3 > Properties > Sharing แล้วก็คลิก Allow ตามรูปด้านล่าง

PC share internet

Local Area Connection 4 คือ e1 ใน EVE-NG ที่ต่อไปหา BNG ก็ต้องเซ็ต IP address กับ Subnet mask ให้ตรงกัน ตามรูป

 3.2 NAT PC Routes
 NAT PC ต้องทำ route 172.16.10.0/24 next-hop 20.20.20.2 ด้วยเพื่อให้รูปเส้นทางในการส่งข้อมูลกลับไปหา Subscriber Host
 การคอนฟิก Route ที่ NAT PC ต้อง run cmd as Administration นะครับ แล้วก็ใส่คำสั่งตามในรูป แล้วก็เช็ค route-table ด้วยเลย เห็นว่า default gateway คือ10.10.1.1 หรือก็คือ IP ของ Router จริงที่อยู่บ้าน ส่วน network 172.16.10.0/24 next-hop ไปที่ BNG
PC Routes

NAT PC  ก็มีการตั้งค่าแค่ทำนี้ แล้วก็อย่าลืมปิด Firewall ด้วยนะครับเอาไว้ Ping test


ผลลัพธ์

  • ทดสอบ PC ในแล็บเพื่อออก Internet 
  • แสดงผลสถานะของ Subscriber บน BNG
  • ผล Capture Traffic ในขั้นตอนการสร้าง PPPoE session ด้วยโปรแกรม Wireshark

 ผลลัพธ์ PC ในแล็บเพื่อออก Internet 

 แสดงผลลัพธ์บน Mikrotik
Mikrotik Result


 แสดงผลสถานะของ Subscriber บน BNG

*A:BNG#   show router 100 route-table 

===============================================================================
Route Table (Service: 100)
===============================================================================
Dest Prefix[Flags]                            Type    Proto     Age        Pref
      Next Hop[Interface Name]                                    Metric   
-------------------------------------------------------------------------------
0.0.0.0/0                                     Remote  Static    02d02h26m  5
       20.20.20.1                                                   1
10.10.10.1/32                                 Local   Local     04d21h41m  0
       Loopback_DHCP                                                0
20.20.20.0/30                                 Local   Local     02d02h26m  0
       to_NAT                                                       0
172.16.10.0/24                                Local   Local     04d21h41m  0
       SUB-INT-1                                                    0
172.16.10.13/32                               Remote  Sub Mgmt  00h05m47s  0
       [GRP-INT-1]                                                  0
-------------------------------------------------------------------------------
No. of Routes: 5
Flags: n = Number of times nexthop is repeated
       B = BGP backup route available
       L = LFA nexthop available
       S = Sticky ECMP requested      
===============================================================================
*A:BNG# 

*A:BNG# show service active-subscribers hierarchy 

===============================================================================
Active Subscriber hierarchy
===============================================================================
-- 50:04:00:02:00:01|1/1/2:10|1 (SUB-DEFAULT)
   |
   |-- sap:1/1/2:10 - sla:SLA-DEFAULT
   |   |
   |   |-- 172.16.10.13
   |   |   50:04:00:02:00:01 - 1 (IPCP)
   |   |

===============================================================================
*A:BNG# show router 100 dhcp local-dhcp-server "LOCAL_DHCP_SERVER" leases 

===============================================================================
Leases for DHCP server LOCAL_DHCP_SERVER router 100
===============================================================================
IP Address      Lease State       Mac Address       Remaining   Clnt  Fail
  PPP user name/Opt82 Circuit Id                    LifeTime    Type  Ctrl
  User-db-hostname                                                      
-------------------------------------------------------------------------------
172.16.10.13    stable            50:04:00:02:00:01 0h47m18s    ppp   local
  BNG|100|GRP-INT-1|1/1/2:10
-------------------------------------------------------------------------------
1 leases found
===============================================================================
*A:BNG# 

ผล Capture Traffic ระหว่าง Mikrotik กับ BNG
 ดาวน์โหลดไฟล์ .pcapng https://drive.google.com/open?id=1hKqwkc3Plfy8o44AEdAk6YB4zYabWRX2
*IP ที่แสดงไม่ตรงกันนะครับ เพราะเก็บคนละรอบกัน
PPPoE Wireshark capture


จบแล้บครับสำหรับการจำลองเครือข่าย Broadband Internet รอบนี้
เราสามารถปรับปรุงเครือข่ายนี้ให้ดีขึ้นได้ โดยใช้ External Radius Server, Radius Server Redundancy,  External DHCP Server. Implement BNG Large Scale NAT. BNG Redundancy หรืออื่นๆ อีก
สำหรับการให้บริการ WiFi ของ ISP ปกติก็จะเป็น Protocol IPoE (Internet Protocol over Ethernet)
ลิ้งค์ระหว่าง Mikrotik กับ BNG ปกติจะผ่าน ISP Transmission ด้วยเทคโนโลยี MPLS L2VPN

จากที่กล่าวมาผมจะเอาไว้เขียนในบทความถัดไปครับ


การใช้งาน Secure crt เพื่อรัน Python-Script และ VBScript

   สำหรับใครที่ใช้งาน Secure CRT อยู่เป็นประจำและมีงานที่ต้องดึงข้อมูลโดยใช้ command line อยู่เป็นประจำหรือต้องดึงข้อมูลปริมาณมาก การใช้งาน ...