ในเนื้อหาที่เราจะพูดถึงนี้ประกอบไปด้วย 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
- 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
1. PPPoE Active Discovery
2. LCP Link Estrablish
3. (PAP/CHAP) Authentication
4. IPCP Address Assignment
ผมขอข้ามรายละเอียดแต่ละ Packet ไปนะครับเดี๋ยวมันจะยาวเกินไป
การคอนฟิก BNG และอุปกรณ์อื่นๆ
คราวนี้เราจะมาจำลองเครือข่ายอย่างง่าย โดยการใช้โปรแกรม EVE-NGวิธีการทำ Virtual Windows, Mikrotik, NOKIA 7750SR ตามลิ้งนี้ครับ https://www.eve-ng.net/index.php/documentation/howtos/
ส่วนประกอบของเครือข่ายที่เราจะทำก็จะมี
- 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
ปกติใน 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"
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 จากนั้นตั้งค่าตามรูป
สร้าง pppoe client โดยคลิกที่ Interface > New Interface > 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
จากนั้นก็คอนฟิกเป็น DHCP Server โดยเข้าไปที่ IP > DHCP Server
2.3 Mikrotik NAT
เพื่อ NAT source address จาก PC ( 192.168.1.0/24) ให้เป็น IP ของ pppoe-out1 ที่เราคอนฟิกด้านบน โคยคลิกที่ IP > Firewall
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 ตามรูปด้านล่าง
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
NAT PC ก็มีการตั้งค่าแค่ทำนี้ แล้วก็อย่าลืมปิด Firewall ด้วยนะครับเอาไว้ Ping test
ผลลัพธ์
- ทดสอบ PC ในแล็บเพื่อออก Internet
- แสดงผลสถานะของ Subscriber บน BNG
- ผล Capture Traffic ในขั้นตอนการสร้าง PPPoE session ด้วยโปรแกรม Wireshark
ผลลัพธ์ PC ในแล็บเพื่อออก Internet
แสดงผลลัพธ์บน Mikrotik
แสดงผลสถานะของ 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 ที่แสดงไม่ตรงกันนะครับ เพราะเก็บคนละรอบกัน
จบแล้บครับสำหรับการจำลองเครือข่าย 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
จากที่กล่าวมาผมจะเอาไว้เขียนในบทความถัดไปครับ
No comments:
Post a Comment