Quản lý điểm cuối Office 365

Khả năng kết nối mạng của Office 365

06/07/2018 Các kết nối với Office 365 bao gồm các yêu cầu mạng lưu lượng lớn, đáng tin cậy hoạt động tốt nhất với đầu ra có độ trễ thấp gần người dùng. Một số kết nối Office 365 có thể được hưởng lợi từ việc tối ưu hóa kết nối.

  1. Đảm bảo danh sách cho phép tường lửa của bạn cho phép kết nối tới điểm cuối Office 365.

  2. Sử dụng cơ sở hạ tầng proxy của bạn để cho phép kết nối Internet tới ký tự đại diện và đích chưa được phát hành.

  3. Duy trì một cấu hình mạng ngoại vi tối ưu.

  4. Đảm bảo rằng bạn đang có kết nối tối nhất.

  5. Hãy đọc Nguyên tắc kết nối mạng Office 365 để hiểu các nguyên tắc kết nối nhằm quản lý lưu lượng truy cập Office 365 một cách bảo mật và đạt hiệu suất tốt nhất có thể.

Kết nối với Office 365 thông qua tường lửa và proxy.

Cập nhật danh sách cho phép thư đi của tường lửa

Bạn có thể tối ưu hóa mạng bằng cách gửi trực tiếp toàn bộ yêu cầu mạng Office 365 tin cậy thông qua tường lửa, bỏ qua toàn bộ quy trình kiểm tra hay xử lý cấp độ gói bổ sung. Thao tác này sẽ giảm hiệu suất thấp do độ trễ và giảm yêu cầu công suất ngoại vi của bạn. Cách dễ nhất để chọn được yêu cầu mạng đáng tin cậy là sử dụng tệp PAC tích hợp sẵn trên tab Proxy ở trên.

Nếu tường lửa của bạn chặn lưu lượng ngoài, bạn sẽ muốn đảm bảo rằng tất cả IP và FQDN được liệt kê dưới dạng Bắt buộc trong tệp XML nằm trên danh sách cho phép. Nhận dạng tất cả các dịch vụ yêu cầu sử dụng một số dịch vụ của bên thứ 3. Chúng tôi không cung cấp địa chỉ IP cho những dịch vụ này của bên thứ 3, chẳng hạn như nhà cung cấp chứng chỉ, Mạng Phân phối Nội dung, nhà cung cấp DNS và v.v. Để có chức năng Office 365 đầy đủ, bạn phải đi tới tất cả các đích được Office 365yêu cầu, bất kể lượng thông tin chúng tôi phát hành về đích đó.

Nhiều đích không có địa chỉ IP được phát hành hoặc liệt kê dưới dạng một miền ký tự đại diện không có tên miền đủ điều kiện cụ thể, để sử dụng chức năng này, bạn phải giải quyết các yêu cầu mạng này cho địa chỉ IP hiện tại được yêu cầu và gửi mạng yêu cầu đó qua Internet.

Tự động hóa quy trình của bạn bằng cách sử dụng tường lửa phân tích tệp XML thay cho bạn và tự động cập nhật quy tắc của bạn dựa trên dịch vụ hoặc tính năng bạn dự kiến định tuyến trực tiếp qua tường lửa. Bạn cũng có thể sử dụng công cụ Azure Range do cộng đồng xây dựng và phân tích tệp XML cho bạn với các tùy chọn xuất cho Cisco XE Route hay cấu hình danh sách ACL, văn bản thuần hoặc CSV.

Nội dung giải thích rõ hơn về đích mạng có trên site tài liệu tham khảo cũng như thông qua nhật ký thay đổi dựa trên RSS của chúng tôi để bạn có thể đăng ký các thay đổi.

Đặt cấu hình đường dẫn đi với tệp PAC

Sử dụng các tệp PAC hoặc WPAD để quản lý các yêu cầu mạng đã được liên kết với Office 365 nhưng không được cung cấp địa chỉ IP. Các yêu cầu mạng được gửi qua proxy hoặc thiết bị ngoại vi thường bị trễ thêm. Mặc dù việc xác thực proxy phát sinh khoản thuế lớn nhất, những dịch vụ khác như tra cứu uy tín và thử các gói kiểm tra có thể sẽ là một trải nghiệm tồi tệ với người dùng. Ngoài ra, các thiết bị mạng ngoại vi này cần có đủ khả năng để xử lý toàn bộ yêu cầu mạng. Chúng tôi khuyên bạn nên bỏ qua cơ sở hạ tầng proxy hoặc cơ sở hạ tầng kiểm tra đối với những yêu cầu mạng Office 365 trực tiếp.

Sử dụng một trong các tệp PAC của chúng tôi làm điểm bắt đầu để xác định lưu lượng mạng sẽ được gửi đến proxy và lưu lượng mạng sẽ được gửi đến tường lửa. Nếu bạn mới làm việc với các tệp PAC hoặc WPAD, hãy đọc bài đăng về việc triển khai tệp PAC từ một trong những chuyên gia tư vấn Office 365 của chúng tôi. Bạn sẽ muốn xem xét những tệp này làm điểm khởi đầu và chỉnh sửa để phù hợp với môi trường của bạn.

Các tệp PAC được cập nhật vào 10/07/2018.

Ví dụ đầu tiên minh họa phương pháp tiếp cận do chúng tôi đề xuất để chỉ quản lý điểm cuối qua Internet. Bỏ qua proxy cho các đích Office 365 mà địa chỉ IP đã được phát hành và gửi các yêu cầu mạng còn lại đến proxy.

Đoạn mã:

// JavaScript source code

//July 2018 - Updates go live 1st August2018
//This PAC file contains all FQDNs needed for all services and splits the traffic between those which Microsoft can provide IPs for (so can be sent through a managed firewall with conditional access if desired) and those which IPs cannot be provided for, so need to go to an unrestricted proxy or egress. 
//Due to the use of wildcards, some extra logic is provided to send traffic to the proxy before a 'direct' wildcard is hit.
//Includes Core ProPlus URLs but not Office Mobile/IPAD/IOS/ANDROID fqdns from https://support.office.com/en-gb/article/Network-requests-in-Office-365-ProPlus-eb73fcd1-ca88-4d02-a74b-2dd3a9f3364d
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your needs and the Office 365 URL & IP page
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    var proxyserver2 = "PROXY 10.10.10.11:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;

    //Catch explicit FQDNs which need the proxy but are covered under wildcarded FQDNs which have IPs. This has to be done first before the wildcard is hit

    if ((shExpMatch(host, "quicktips.skypeforbusiness.com"))    
        || (shExpMatch(host, "*.um.outlook.com"))
        || (shExpMatch(host, "r3.res.office365.com"))
        || (shExpMatch(host, "r3.res.outlook.com"))
        || (shExpMatch(host, "r4.res.office365.com"))
        || (shExpMatch(host, "xsi.outlook.com"))
        || (shExpMatch(host, "r1.res.office365.com")))


    {
        return proxyserver;
    }
        //Send FQDNs which Microsoft provide IPs for direct, so they can be sent via a firewall

    else if ((isPlainHostName(host))
    || (shExpMatch(host, "*.aria.microsoft.com"))    
    || (shExpMatch(host, "*.dc.trouter.io"))
    || (shExpMatch(host, "*.lync.com"))
    || (shExpMatch(host, "*.manage.office.com"))
    || (shExpMatch(host, "*.office365.com"))
    || (shExpMatch(host, "*.onenote.com"))
    || (shExpMatch(host, "*.outlook.com"))
    || (shExpMatch(host, "*.outlook.office.com"))
    || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
    || (shExpMatch(host, "*.protection.office.com"))
    || (shExpMatch(host, "*.sharepoint.com"))
    || (shExpMatch(host, "*.skype.com"))
    || (shExpMatch(host, "*.skypeforbusiness.com"))
    || (shExpMatch(host, "*.svc.ms"))
    || (shExpMatch(host, "*.teams.microsoft.com"))
    || (shExpMatch(host, "*.yammer.com"))
    || (shExpMatch(host, "*.yammerusercontent.com"))    
    || (shExpMatch(host, "*broadcast.officeapps.live.com"))
    || (shExpMatch(host, "*excel.officeapps.live.com"))
    || (shExpMatch(host, "*onenote.officeapps.live.com"))
    || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
    || (shExpMatch(host, "*view.officeapps.live.com"))
    || (shExpMatch(host, "*visio.officeapps.live.com"))
    || (shExpMatch(host, "*word-edit.officeapps.live.com"))
    || (shExpMatch(host, "*word-view.officeapps.live.com"))
    || (shExpMatch(host, "admin.microsoft.com"))    
    || (shExpMatch(host, "account.office.net"))
    || (shExpMatch(host, "adminwebservice.microsoftonline.com"))
    || (shExpMatch(host, "agent.office.net"))
    || (shExpMatch(host, "api.login.microsoftonline.com"))
    || (shExpMatch(host, "api.passwordreset.microsoftonline.com"))
    || (shExpMatch(host, "apc.delve.office.com"))
    || (shExpMatch(host, "aus.delve.office.com"))
    || (shExpMatch(host, "autologon.microsoftazuread-sso.com"))  
    || (shExpMatch(host, "becws.microsoftonline.com"))
    || (shExpMatch(host, "browser.pipe.aria.microsoft.com"))  
    || (shExpMatch(host, "can.delve.office.com"))
    || (shExpMatch(host, "ccs.login.microsoftonline.com"))
    || (shExpMatch(host, "ccs-sdf.login.microsoftonline.com"))
    || (shExpMatch(host, "clientconfig.microsoftonline-p.net"))
    || (shExpMatch(host, "clientlog.portal.office.com"))
    || (shExpMatch(host, "companymanager.microsoftonline.com"))
    || (shExpMatch(host, "cus-000.tasks.osi.office.net"))
    || (shExpMatch(host, "delve.office.com"))
    || (shExpMatch(host, "device.login.microsoftonline.com"))    
    || (shExpMatch(host, "ea-000.tasks.osi.office.net"))
    || (shExpMatch(host, "eur.delve.office.com"))
    || (shExpMatch(host, "eus-zzz.tasks.osi.office.net"))
    || (shExpMatch(host, "gbr.delve.office.com"))    
    || (shExpMatch(host, "hip.microsoftonline-p.net"))
    || (shExpMatch(host, "hipservice.microsoftonline.com"))
    || (shExpMatch(host, "home.office.com"))
    || (shExpMatch(host, "ind.delve.office.com"))
    || (shExpMatch(host, "jpn.delve.office.com"))
    || (shExpMatch(host, "kor.delve.office.com"))
    || (shExpMatch(host, "lam.delve.office.com"))
    || (shExpMatch(host, "login.microsoft.com"))
    || (shExpMatch(host, "login.microsoftonline.com"))
    || (shExpMatch(host, "login.microsoftonline-p.com"))
    || (shExpMatch(host, "login.windows.net"))
    || (shExpMatch(host, "logincert.microsoftonline.com"))
    || (shExpMatch(host, "loginex.microsoftonline.com"))
    || (shExpMatch(host, "login-us.microsoftonline.com"))     
    || (shExpMatch(host, "manage.office.com"))
    || (shExpMatch(host, "mobile.pipe.aria.microsoft.com"))
    || (shExpMatch(host, "nam.delve.office.com"))
    || (shExpMatch(host, "neu-000.tasks.osi.office.net"))
    || (shExpMatch(host, "nexus.microsoftonline-p.com"))
    || (shExpMatch(host, "nexus.officeapps.live.com"))
    || (shExpMatch(host, "nexusrules.officeapps.live.com"))
    || (shExpMatch(host, "office.live.com"))
    || (shExpMatch(host, "officeapps.live.com"))
    || (shExpMatch(host, "passwordreset.microsoftonline.com"))
    || (shExpMatch(host, "portal.microsoftonline.com"))
    || (shExpMatch(host, "portal.office.com"))
    || (shExpMatch(host, "protection.office.com"))
    || (shExpMatch(host, "provisioningapi.microsoftonline.com"))
    || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net"))   
    || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net")) 
    || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
    || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net"))
    || (shExpMatch(host, "sea-000.tasks.osi.office.net"))    
    || (shExpMatch(host, "stamp2.login.microsoftonline.com"))
    || (shExpMatch(host, "suite.office.net"))    
    || (shExpMatch(host, "tasks.office.com"))
    || (shExpMatch(host, "teams.microsoft.com"))
    || (shExpMatch(host, "testconnectivity.microsoft.com"))
    || (shExpMatch(host, "webshell.suite.office.com"))
    || (shExpMatch(host, "weu-000.tasks.osi.office.net"))
    || (shExpMatch(host, "wus-000.tasks.osi.office.net"))
    || (shExpMatch(host, "www.office.com")))

      
    {
        return "DIRECT";
    }
    else

        // Send all unknown IP traffic to Proxy for unrestricted access. This section is not necessary if you have a catchall for all other traffic to go to an unfiltered proxy. 
        //However the fqdns required, but for which we dont have IPs for, are listed here incase you need an explicit list.

   if          ((shExpMatch(host, "*.aadrm.com"))
        || (shExpMatch(host, "*.adhybridhealth.azure.com")) 
        || (shExpMatch(host, "*.adl.windows.com"))   
        || (shExpMatch(host, "*.api.microsoftstream.com"))      
        || (shExpMatch(host, "*.assets-yammer.com"))   
        || (shExpMatch(host, "*.azureedge.net"))            
        || (shExpMatch(host, "*.azurerms.com"))
        || (shExpMatch(host, "*.cloudapp.net"))
        || (shExpMatch(host, "*.entrust.net")) 
        || (shExpMatch(host, "*.geotrust.com"))   
        || (shExpMatch(host, "*.helpshift.com"))   
        || (shExpMatch(host, "*.hockeyapp.net"))    
        || (shExpMatch(host, "*.localytics.com"))    
        || (shExpMatch(host, "*.log.optimizely.com"))    
        || (shExpMatch(host, "*.microsoft.com"))
        || (shExpMatch(host, "*.microsoftonline.com"))
        || (shExpMatch(host, "*.microsoftonline-p.com"))
        || (shExpMatch(host, "*.microsoftonline-p.net"))
        || (shExpMatch(host, "*.msecnd.net"))
        || (shExpMatch(host, "*.msedge.net"))      
        || (shExpMatch(host, "*.msocdn.com")) 
        || (shExpMatch(host, "*.mstea.ms"))    
        || (shExpMatch(host, "*.notification.api.microsoftstream.com")) 
        || (shExpMatch(host, "*.o365weve.com"))     
        || (shExpMatch(host, "*.office.com"))   
        || (shExpMatch(host, "*.office.net"))
        || (shExpMatch(host, "*.omniroot.com"))
        || (shExpMatch(host, "*.onmicrosoft.com"))
        || (shExpMatch(host, "*.phonefactor.net"))
        || (shExpMatch(host, "*.public-trust.com"))
        || (shExpMatch(host, "*.search.production.apac.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.emea.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.us.trafficmanager.net"))
        || (shExpMatch(host, "*.secure.skypeassets.com"))  
        || (shExpMatch(host, "*.sfbassets.com"))
        || (shExpMatch(host, "*.sharepointonline.com"))
        || (shExpMatch(host, "*.sway.com"))
        || (shExpMatch(host, "*.symcb.com"))
        || (shExpMatch(host, "*.teams.microsoft.com"))  
        || (shExpMatch(host, "*.tenor.com"))  
        || (shExpMatch(host, "*.symcd.com"))     
        || (shExpMatch(host, "*.users.storage.live.com"))
        || (shExpMatch(host, "*.verisign.com"))
        || (shExpMatch(host, "*.verisign.net"))
        || (shExpMatch(host, "*.windows.net"))
        || (shExpMatch(host, "*cdn.onenote.net"))
        || (shExpMatch(host, "account.activedirectory.windowsazure.com"))
        || (shExpMatch(host, "ad.atdmt.com"))
        || (shExpMatch(host, "admin.onedrive.com"))
        || (shExpMatch(host, "ajax.aspnetcdn.com"))
        || (shExpMatch(host, "aka.ms"))
        || (shExpMatch(host, "amp.azure.net"))
        || (shExpMatch(host, "api.microsoftstream.com"))
        || (shExpMatch(host, "apis.live.net"))  
        || (shExpMatch(host, "apps.identrust.com"))  
        || (shExpMatch(host, "assets.onestore.ms"))
        || (shExpMatch(host, "auth.gfx.ms"))
        || (shExpMatch(host, "cacerts.digicert.com"))        
        || (shExpMatch(host, "cdn.odc.officeapps.live.com"))  
        || (shExpMatch(host, "cdn.onenote.net"))
        || (shExpMatch(host, "cdn.optimizely.com")) 
        || (shExpMatch(host, "cert.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "client.hip.live.com"))
        || (shExpMatch(host, "connect.facebook.net"))        
        || (shExpMatch(host, "crl.globalsign.com"))
        || (shExpMatch(host, "crl.globalsign.net"))
        || (shExpMatch(host, "crl.identrust.com"))    
        || (shExpMatch(host, "crl3.digicert.com"))  
        || (shExpMatch(host, "crl4.digicert.com"))
        || (shExpMatch(host, "cus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "cus-roaming.officeapps.live.com"))
        || (shExpMatch(host, "dc.services.visualstudio.com"))
        || (shExpMatch(host, "domains.live.com"))
        || (shExpMatch(host, "ea-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ea-roaming.officeapps.live.com"))          
        || (shExpMatch(host, "ecn.dev.virtualearth.net "))   
        || (shExpMatch(host, "eus2-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "eus2-roaming.officeapps.live.com"))             
        || (shExpMatch(host, "eus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "eus-www.sway-cdn.com"))
        || (shExpMatch(host, "eus-www.sway-extensions.com"))        
        || (shExpMatch(host, "firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "g.live.com"))
        || (shExpMatch(host, "groupsapi2-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi3-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi4-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi-prod.outlookgroups.ms"))   
        || (shExpMatch(host, "isrg.trustid.ocsp.identrust.com"))   
        || (shExpMatch(host, "liverdcxstorage.blob.core.windowsazure.com"))
        || (shExpMatch(host, "management.azure.com"))        
        || (shExpMatch(host, "mem.gfx.ms"))
        || (shExpMatch(host, "mrodevicemgr.officeapps.live.com"))      
        || (shExpMatch(host, "ncus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ncus-roaming.officeapps.live.com"))                
        || (shExpMatch(host, "neu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "neu-odc.officeapps.live.com"))         
        || (shExpMatch(host, "neu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "nexus.officeapps.live.com"))
        || (shExpMatch(host, "nexusrules.officeapps.live.com"))
        || (shExpMatch(host, "nps.onyx.azure.net"))
        || (shExpMatch(host, "ocsa.officeapps.live.com"))
        || (shExpMatch(host, "ocsp.digicert.com"))
        || (shExpMatch(host, "ocspx.digicert.com"))
        || (shExpMatch(host, "ocsp.globalsign.com"))
        || (shExpMatch(host, "ocsp.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "ocsp.msocsp.com"))       
        || (shExpMatch(host, "ocsp2.globalsign.com"))
        || (shExpMatch(host, "ocsredir.officeapps.live.com"))
        || (shExpMatch(host, "ocws.officeapps.live.com"))
        || (shExpMatch(host, "odc.officeapps.live.com"))  
        || (shExpMatch(host, "officecdn.microsoft.com.edgekey.net"))            
        || (shExpMatch(host, "officecdn.microsoft.com.edgesuite.net"))              
        || (shExpMatch(host, "ols.officeapps.live.com"))  
        || (shExpMatch(host, "oneclient.sfx.ms"))
        || (shExpMatch(host, "outlook.uservoice.com"))
        || (shExpMatch(host, "platform.linkedin.com"))
        || (shExpMatch(host, "policykeyservice.dc.ad.msft.net"))
        || (shExpMatch(host, "prod.firstpartyapps.oaspapps.com.akadns.net")) 
        || (shExpMatch(host, "r1.res.office365.com"))
        || (shExpMatch(host, "r3.res.office365.com"))
        || (shExpMatch(host, "r4.res.office365.com"))
        || (shExpMatch(host, "s.ytimg.com"))
        || (shExpMatch(host, "scus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "scus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "scus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "sea-odc.officeapps.live.com"))         
        || (shExpMatch(host, "sea-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "secure.globalsign.com"))
        || (shExpMatch(host, "site-cdn.onenote.net"))
        || (shExpMatch(host, "skydrive.wns.windows.com"))
        || (shExpMatch(host, "skypemaprdsitus.trafficmanager.net"))   
        || (shExpMatch(host, "spoprod-a.akamaihd.net"))  
        || (shExpMatch(host, "ssw.live.com"))
        || (shExpMatch(host, "staffhub.ms"))
        || (shExpMatch(host, "staffhub.uservoice.com"))
        || (shExpMatch(host, "storage.live.com"))
        || (shExpMatch(host, "sway.com")) 
        || (shExpMatch(host, "teams.microsoft.com"))              
        || (shExpMatch(host, "telemetry.remoteapp.windowsazure.com"))         
        || (shExpMatch(host, "telemetryservice.firstpartyapps.oaspapps.com"))    
        || (shExpMatch(host, "web.microsoftstream.com"))         
        || (shExpMatch(host, "weu-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "weu-odc.officeapps.live.com"))         
        || (shExpMatch(host, "weu-roaming.officeapps.live.com"))
        || (shExpMatch(host, "wu.client.hip.live.com"))
        || (shExpMatch(host, "wus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "wus-firstpartyapps.oaspapps.com"))  
        || (shExpMatch(host, "wus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "wus-roaming.officeapps.live.com"))
        || (shExpMatch(host, "wus-www.sway-cdn.com"))
        || (shExpMatch(host, "wus-www.sway-extensions.com"))   
        || (shExpMatch(host, "www.digicert.com"))
        || (shExpMatch(host, "www.google-analytics.com"))
        || (shExpMatch(host, "www.onedrive.com"))
        || (shExpMatch(host, "www.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "www.youtube.com"))
        || (shExpMatch(host, "xsi.outlook.com")))


        

    {
        return proxyserver;
    }

    //Catchall for all other traffic to another proxy 

else return proxyserver;
}

Ví dụ thứ hai minh họa phương pháp tiếp cận được chúng tôi đề xuất để quản lý kết nối khi mạch ExpressRoute và Internet sẵn dùng. Gửi đích được quảng cáo của ExpressRoute đến mạch ExpressRoute và chỉ gửi các đích được quảng cáo của Internet đến proxy.

Đoạn mã:

// JavaScript source code
//July 2018 Update
// Consolidated FQDNs of URLS which are reachable via Microsoft peering over ExpressRoute. All other traffic sent to a proxy in this example. 
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your traffic flow needs and the Office 365 URL & IP page. 
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using
//PAC presumes all Office 365 BGP communities/route filters are allowed.

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;
    //SUB-FQDNs of ExpressRoutable wildcards which need to be explicitly sent to the proxy at the top of the PAC because they arent ER routable
    if ((shExpMatch(host, "xsi.outlook.com"))
        || (shExpMatch(host, "r3.res.outlook.com"))
        || (shExpMatch(host, "quicktips.skypeforbusiness.com"))
        || (shExpMatch(host, "*.um.outlook.com")))					
    {
        return proxyserver;
    }
        //EXPRESS ROUTE DIRECT
    else if ((isPlainHostName(host))  
            || (shExpMatch(host, "*.aria.microsoft.com"))             
            || (shExpMatch(host, "*.dc.trouter.io"))
            || (shExpMatch(host, "*.lync.com"))
            || (shExpMatch(host, "*.manage.office.com"))
            || (shExpMatch(host, "*.outlook.com"))
            || (shExpMatch(host, "*.outlook.office.com"))
            || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
            || (shExpMatch(host, "*.protection.office.com"))
            || (shExpMatch(host, "*.protection.outlook.com"))
            || (shExpMatch(host, "*.sharepoint.com")) 
            || (shExpMatch(host, "*.skype.com")) 
            || (shExpMatch(host, "*.skypeforbusiness.com")) 
            || (shExpMatch(host, "*.svc.ms"))   
            || (shExpMatch(host, "*.teams.microsoft.com"))  
            || (shExpMatch(host, "*broadcast.officeapps.live.com"))
            || (shExpMatch(host, "*excel.officeapps.live.com"))
            || (shExpMatch(host, "*onenote.officeapps.live.com"))
            || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
            || (shExpMatch(host, "*view.officeapps.live.com"))                                 
            || (shExpMatch(host, "*visio.officeapps.live.com"))
            || (shExpMatch(host, "*word-edit.officeapps.live.com"))
            || (shExpMatch(host, "*word-view.officeapps.live.com"))
            || (shExpMatch(host, "account.office.net"))
            || (shExpMatch(host, "adminwebservice.microsoftonline.com"))
            || (shExpMatch(host, "agent.office.net"))  
            || (shExpMatch(host, "apc.delve.office.com"))
            || (shExpMatch(host, "api.login.microsoftonline.com"))
            || (shExpMatch(host, "api.passwordreset.microsoftonline.com"))
            || (shExpMatch(host, "aus.delve.office.com"))
            || (shExpMatch(host, "autologon.microsoftazuread-sso.com")) 
            || (shExpMatch(host, "becws.microsoftonline.com"))
            || (shExpMatch(host, "browser.pipe.aria.microsoft.com"))  
            || (shExpMatch(host, "can.delve.office.com")) 
            || (shExpMatch(host, "ccs.login.microsoftonline.com"))  
            || (shExpMatch(host, "ccs-sdf.login.microsoftonline.com"))
            || (shExpMatch(host, "clientconfig.microsoftonline-p.net"))
            || (shExpMatch(host, "companymanager.microsoftonline.com"))
            || (shExpMatch(host, "delve.office.com"))
            || (shExpMatch(host, "device.login.microsoftonline.com"))
            || (shExpMatch(host, "domains.live.com")) 
            || (shExpMatch(host, "eur.delve.office.com"))
            || (shExpMatch(host, "gbr.delve.office.com"))
            || (shExpMatch(host, "hip.microsoftonline-p.net"))
            || (shExpMatch(host, "hipservice.microsoftonline.com"))
            || (shExpMatch(host, "home.office.com"))
            || (shExpMatch(host, "ind.delve.office.com"))
            || (shExpMatch(host, "jpn.delve.office.com"))
            || (shExpMatch(host, "kor.delve.office.com"))
            || (shExpMatch(host, "lam.delve.office.com"))
            || (shExpMatch(host, "login.microsoft.com"))
            || (shExpMatch(host, "login.microsoftonline.com"))
            || (shExpMatch(host, "login.microsoftonline-p.net"))
            || (shExpMatch(host, "login.windows.net"))
            || (shExpMatch(host, "logincert.microsoftonline.com"))
            || (shExpMatch(host, "loginex.microsoftonline.com"))
            || (shExpMatch(host, "login-us.microsoftonline.com"))
            || (shExpMatch(host, "manage.office.com"))
            || (shExpMatch(host, "mobile.pipe.aria.microsoft.com"))
            || (shExpMatch(host, "nam.delve.office.com"))
            || (shExpMatch(host, "nexus.microsoftonline-p.net"))
            || (shExpMatch(host, "office.live.com")) 
            || (shExpMatch(host, "officeapps.live.com")) 
            || (shExpMatch(host, "outlook.office365.com")) 
            || (shExpMatch(host, "passwordreset.microsoftonline.com"))
            || (shExpMatch(host, "portal.office.com"))
            || (shExpMatch(host, "protection.office.com"))
            || (shExpMatch(host, "provisioningapi.microsoftonline.com"))
            || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net")) 
            || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net"))
            || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
            || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net"))  
            || (shExpMatch(host, "signup.microsoft.com"))
            || (shExpMatch(host, "smtp.office365.com"))  
            || (shExpMatch(host, "stamp2.login.microsoftonline.com"))
            || (shExpMatch(host, "suite.office.net")) 
            || (shExpMatch(host, "teams.microsoft.com")) 
            || (shExpMatch(host, "webshell.suite.office.com")) 
            || (shExpMatch(host, "www.office.com")))             

       
    {
        return "DIRECT";
    }

        //Catchall for all other traffic to proxy
    else
    {
        return proxyserver;
    }
}

Ví dụ thứ ba minh họa cách gửi tất cả các yêu cầu mạng được liên kết với Office 365 đến một đích duy nhất. Thao tác này thường được sử dụng để bỏ qua toàn bộ quy trình kiểm tra yêu cầu mạng Office 365, đồng thời cung cấp cho bạn một định dạng khi tất cả các điểm cuối đã phát hành đều nằm trong danh sách ở định dạng PAC để sử dụng cho tùy chỉnh của bạn.

Đoạn mã:

// JavaScript source code
//July 2018 Update new URLS go live 1st August 2018 -
//Consolidated FQDNs required to access Office 365 - All services including optional components covered and elements covered under wildcards removed. 
//Some repeated domains have been consoliodated into unpublished wildcards in order to keep the file as small as possible.
//Includes Core ProPlus URLs but not Office Mobile/IPAD/IOS/ANDROID fqdns from https://support.office.com/en-gb/article/Network-requests-in-Office-365-ProPlus-eb73fcd1-ca88-4d02-a74b-2dd3a9f3364d
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your needs and the Office 365 URL & IP page
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;

   if  ((shExpMatch(host, "*.aadrm.com"))
        || (shExpMatch(host, "*.adhybridhealth.azure.com"))
        || (shExpMatch(host, "*.adl.windows.com"))
        || (shExpMatch(host, "*.api.microsoftstream.com"))  
        || (shExpMatch(host, "*.assets-yammer.com"))
        || (shExpMatch(host, "autologon.microsoftazuread-sso.com"))  
        || (shExpMatch(host, "*.azureedge.net"))   
        || (shExpMatch(host, "*.azurerms.com"))
        || (shExpMatch(host, "*.cloudapp.net")) 
        || (shExpMatch(host, "*.dc.trouter.io"))
        || (shExpMatch(host, "*.entrust.net")) 
        || (shExpMatch(host, "*.geotrust.com"))
        || (shExpMatch(host, "*.helpshift.com"))
        || (shExpMatch(host, "*.hockeyapp.net"))       
        || (shExpMatch(host, "*.localytics.com"))
        || (shExpMatch(host, "*.log.optimizely.com"))     
        || (shExpMatch(host, "*.lync.com"))
        || (shExpMatch(host, "*.microsoft.com"))
        || (shExpMatch(host, "*.microsoftonline.com"))
        || (shExpMatch(host, "*.microsoftonline-p.com"))
        || (shExpMatch(host, "*.microsoftonline-p.net"))
        || (shExpMatch(host, "*.msecnd.net"))
        || (shExpMatch(host, "*.msedge.net"))
        || (shExpMatch(host, "*.msocdn.com"))
        || (shExpMatch(host, "*.mstea.ms"))
        || (shExpMatch(host, "*.o365weve.com"))
        || (shExpMatch(host, "*.office.com"))
        || (shExpMatch(host, "*.office.net"))
        || (shExpMatch(host, "*.office365.com"))
        || (shExpMatch(host, "*.omniroot.com"))
        || (shExpMatch(host, "*.onenote.com"))
        || (shExpMatch(host, "*.onmicrosoft.com"))
        || (shExpMatch(host, "*.outlook.com"))
        || (shExpMatch(host, "*.phonefactor.net")) 
        || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
        || (shExpMatch(host, "*.public-trust.com"))
        || (shExpMatch(host, "*.search.production.apac.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.emea.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.us.trafficmanager.net"))
        || (shExpMatch(host, "*.secure.skypeassets.com"))
        || (shExpMatch(host, "*.sfbassets.com"))  
        || (shExpMatch(host, "*.sharepoint.com"))
        || (shExpMatch(host, "*.sharepointonline.com"))
        || (shExpMatch(host, "*.skype.com"))
        || (shExpMatch(host, "*.skypeforbusiness.com"))
        || (shExpMatch(host, "*.svc.ms")) 
        || (shExpMatch(host, "*.sway.com"))
        || (shExpMatch(host, "*.symcb.com"))
        || (shExpMatch(host, "*.symcd.com"))
        || (shExpMatch(host, "*.tenor.com"))
        || (shExpMatch(host, "*.users.storage.live.com"))
        || (shExpMatch(host, "*.verisign.com"))
        || (shExpMatch(host, "*.verisign.net"))
        || (shExpMatch(host, "*.windows.net"))
        || (shExpMatch(host, "*.yammer.com"))
        || (shExpMatch(host, "*.yammerusercontent.com"))         
        || (shExpMatch(host, "*broadcast.officeapps.live.com"))
        || (shExpMatch(host, "*cdn.onenote.net"))
        || (shExpMatch(host, "*excel.officeapps.live.com"))
        || (shExpMatch(host, "*onenote.officeapps.live.com"))
        || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
        || (shExpMatch(host, "*view.officeapps.live.com"))
        || (shExpMatch(host, "*visio.officeapps.live.com"))
        || (shExpMatch(host, "*word-edit.officeapps.live.com"))
        || (shExpMatch(host, "*word-view.officeapps.live.com"))    
        || (shExpMatch(host, "account.activedirectory.windowsazure.com"))
        || (shExpMatch(host, "ad.atdmt.com"))
        || (shExpMatch(host, "admin.onedrive.com"))
        || (shExpMatch(host, "ajax.aspnetcdn.com"))
        || (shExpMatch(host, "aka.ms"))
        || (shExpMatch(host, "amp.azure.net"))
        || (shExpMatch(host, "api.microsoftstream.com"))
        || (shExpMatch(host, "apis.live.net"))
        || (shExpMatch(host, "apps.identrust.com")) 
        || (shExpMatch(host, "assets.onestore.ms"))
        || (shExpMatch(host, "auth.gfx.ms"))
        || (shExpMatch(host, "cacerts.digicert.com"))    
        || (shExpMatch(host, "cdn.odc.officeapps.live.com"))  
        || (shExpMatch(host, "cdn.onenote.net"))
        || (shExpMatch(host, "cdn.optimizely.com"))
        || (shExpMatch(host, "cert.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "client.hip.live.com"))     
        || (shExpMatch(host, "connect.facebook.net"))
        || (shExpMatch(host, "crl.globalsign.com"))
        || (shExpMatch(host, "crl.globalsign.net"))
        || (shExpMatch(host, "crl.identrust.com"))    
        || (shExpMatch(host, "crl3.digicert.com"))  
        || (shExpMatch(host, "crl4.digicert.com"))
        || (shExpMatch(host, "cus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "cus-roaming.officeapps.live.com"))      
        || (shExpMatch(host, "dc.services.visualstudio.com"))
        || (shExpMatch(host, "domains.live.com"))
        || (shExpMatch(host, "ea-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "ea-roaming.officeapps.live.com"))           
        || (shExpMatch(host, "ecn.dev.virtualearth.net"))
        || (shExpMatch(host, "eus2-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "eus2-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "eus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "eus-www.sway-cdn.com"))
        || (shExpMatch(host, "eus-www.sway-extensions.com"))
        || (shExpMatch(host, "firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "g.live.com"))
        || (shExpMatch(host, "groupsapi2-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi3-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi4-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "isrg.trustid.ocsp.identrust.com"))
        || (shExpMatch(host, "liverdcxstorage.blob.core.windowsazure.com"))
        || (shExpMatch(host, "management.azure.com"))
        || (shExpMatch(host, "mem.gfx.ms"))
        || (shExpMatch(host, "mrodevicemgr.officeapps.live.com"))               
        || (shExpMatch(host, "ncus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ncus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "neu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "neu-odc.officeapps.live.com"))              
        || (shExpMatch(host, "neu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "nexus.officeapps.live.com"))
        || (shExpMatch(host, "nexusrules.officeapps.live.com"))
        || (shExpMatch(host, "nps.onyx.azure.net"))   
        || (shExpMatch(host, "ocsa.officeapps.live.com"))
        || (shExpMatch(host, "ocsp.digicert.com"))
        || (shExpMatch(host, "ocsp.globalsign.com"))
        || (shExpMatch(host, "ocsp.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "ocsp.msocsp.com"))     
        || (shExpMatch(host, "ocsp2.globalsign.com")) 
        || (shExpMatch(host, "ocspx.digicert.com"))
        || (shExpMatch(host, "ocsredir.officeapps.live.com"))
        || (shExpMatch(host, "ocws.officeapps.live.com"))
        || (shExpMatch(host, "odc.officeapps.live.com"))  
        || (shExpMatch(host, "office.live.com"))
        || (shExpMatch(host, "officeapps.live.com"))
        || (shExpMatch(host, "officecdn.microsoft.com.edgekey.net"))              
        || (shExpMatch(host, "officecdn.microsoft.com.edgesuite.net"))
        || (shExpMatch(host, "ols.officeapps.live.com"))  
        || (shExpMatch(host, "oneclient.sfx.ms"))
        || (shExpMatch(host, "outlook.uservoice.com"))
        || (shExpMatch(host, "platform.linkedin.com"))
        || (shExpMatch(host, "policykeyservice.dc.ad.msft.net"))
        || (shExpMatch(host, "prod.firstpartyapps.oaspapps.com.akadns.net"))
        || (shExpMatch(host, "s.ytimg.com"))
        || (shExpMatch(host, "s0.assets-yammer.com"))  
        || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net")) 
        || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net"))
        || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
        || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net")) 
        || (shExpMatch(host, "scus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "scus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "scus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "sea-odc.officeapps.live.com"))              
        || (shExpMatch(host, "sea-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "secure.globalsign.com"))
        || (shExpMatch(host, "site-cdn.onenote.net"))
        || (shExpMatch(host, "skydrive.wns.windows.com"))
        || (shExpMatch(host, "skypemaprdsitus.trafficmanager.net"))
        || (shExpMatch(host, "spoprod-a.akamaihd.net"))
        || (shExpMatch(host, "ssw.live.com"))
        || (shExpMatch(host, "staffhub.ms"))
        || (shExpMatch(host, "staffhub.uservoice.com"))    
        || (shExpMatch(host, "storage.live.com"))
        || (shExpMatch(host, "telemetry.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "telemetryservice.firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "web.microsoftstream.com"))   
        || (shExpMatch(host, "weu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "weu-odc.officeapps.live.com"))              
        || (shExpMatch(host, "weu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "wu.client.hip.live.com"))
        || (shExpMatch(host, "wus-000.ocws.officeapps.live.com"))  
        || (shExpMatch(host, "wus-firstpartyapps.oaspapps.com"))  
        || (shExpMatch(host, "wus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "wus-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "wus-www.sway-cdn.com"))
        || (shExpMatch(host, "wus-www.sway-extensions.com"))        
        || (shExpMatch(host, "www.digicert.com"))
        || (shExpMatch(host, "www.google-analytics.com"))
        || (shExpMatch(host, "www.onedrive.com"))
        || (shExpMatch(host, "www.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "www.youtube.com")))




    {
        return proxyserver;
    }

        //Catchall for all other traffic to another proxy

    else return "PROXY 10.10.10.11:8080";
}

Sau đây là một vài công cụ khác từ cộng đồng, nếu bạn đã xây dựng nội dung nào đó để chia sẻ, hãy để lại ghi chú trong nhận xét. Microsoft không chính thức hỗ trợ hay duy trì công cụ cộng đồng nào được giới thiệu trong bài viết này, cũng như được cung cấp tại đây để thuận tiện cho bạn.

  • Đây là công cụ cũ nhất do cộng đồng tạo ra nhằm giúp quản lý quy trình, công cụ này do một thành viên của cộng đồng Office 365 xây dựng. Đây là liên kết tải xuống.

  • Bản in thử của Khái niệm chứa các quy tắc tường lửa có thể xuất chuyển: Microsoft Cloud IP API.

  • Từ IT Praktyk: Chuyển đổi RSSchuyển đổi XML.

  • Từ Peter Abele: Tải xuống.

  • Sử dụng phân tích mạng của bạn để xác định các yêu cầu mạng sẽ cấp phép truy nhập cơ sở hạ tầng proxy của bạn. Các FQDN phổ biến nhất được sử dụng để cấp phép truy nhập gồm những mục sau đây do khối lượng lưu lượng mạng được gửi và nhận từ các điểm cuối này.

    outlook.office365.com
    outlook.office.com
    <tenant-name>.sharepoint.com
    <tenant-name>-my.sharepoint.com
    <tenant-name>-<app>.sharepoint.com
    *.Lync.com
    
  • Đảm bảo mọi yêu cầu mạng được gửi trực tiếp đến tường lửa của bạn đều có mục nhập tương ứng trong danh sách cho phép của tường lửa để cho phép yêu cầu đi qua.

Tích hợp mạng ngoại vi

Bạn có biết mạng WAN của Microsoft là một trong những mạng chính lớn nhất trên thế giới?

Đó là sự thật, mạng quy mô lớn này là yếu tố giúp cho Office 365 và các dịch vụ đám mây khác của chúng tôi hoạt động bất kể bạn đang ở đâu trên thế giới. Mạng của chúng tôi bao gồm băng thông cao, độ trễ thấp, liên kết có khả năng chuyển đổi dự phòng với hàng nghìn dặm đường cáp quang tối thuộc sở hữu tư nhân và kết nối nhiều Terabit giữa các trung tâm dữ liệu và các nút cạnh, tất cả nhằm giúp bạn sử dụng dịch vụ đám mây dễ dàng hơn.

Với một mạng như này, bạn sẽ muốn kết nối thiết bị của tổ chức với mạng của chúng tôi ngay khi có thể. Với trên 2500 quan hệ ngang hàng ISP trên toàn cầu và 70 điểm hiện diện, quá trình chuyển từ mạng của bạn sang mạng của chúng tôi sẽ được thực hiện liền mạch. Không ảnh hưởng gì nếu bạn dành một vài phút để đảm bảo quan hệ ngang hàng ISP của mình là tối ưu nhất, sau đây là một vài ví dụ chuyển giao ngang hàng tốt và không tốt tới mạng của chúng tôi.

Bạn có thể đặt cấu hình thiết bị trên mạng của mình theo cách thủ công hoặc tự động để xử lý các yêu cầu mạng của ứng dụng Office 365 một cách tối ưu, tùy theo thiết bị. Thay đổi cấu hình mà bạn cần thực hiện để xử lý lưu lượng mạng Office 365 tối ưu sẽ phụ thuộc vào môi trường. Các yêu cầu mạng Office 365 có thể hưởng lợi từ các cấu hình mạng cho phép:

  • Ưu tiên lưu lượng mạng quan trọng hơn.

  • Định tuyến đến một đầu ra cục bộ để tránh truyền dữ liệu từ mạng chính trên một liên kết WAN chậm trong khi tận dụng độ trễ thấp sẵn có trên mạng Microsoft. Sau đây là nội dung thảo luận tốt dựa trên các hoạt động gắn kết khách hàng.

  • Sử dụng DNS gần một đầu ra cục bộ để đảm bảo các yêu cầu mạng rời khỏi đầu ra cục bộ đến tại vị trí ngang hàng gần nhất của Microsoft.

  • Loại trừ khỏi quá trình kiểm tra kỹ gói hoặc quá trình xử lý gói mạng chuyên sâu khác để đáp ứng các yêu cầu độ trễ theo tỷ lệ.

Các thiết bị mạng hiện đại bao gồm chức năng quản lý yêu cầu mạng cho ứng dụng tin cậy, chẳng hạn như Office 365, khác với lưu lượng Internet chung chung, không đáng tin cậy. Với bối cảnh phát triển của giải pháp SD-WAN, sự phân biệt về lưu lượng và lựa chọn đường dẫn cũng có thể được thực hiện với nhận thức về trạng thái thay đổi của mạng, chẳng hạn như điểm trong thời gian có sẵn, độ trễ hoặc hiệu suất của các đường dẫn kết nối khác nhau giữa người dùng và đám mây.

Xem mục Lập kế hoạch mạng và di chuyển cho Office 365, Kế hoạch khắc phục sự cố về hiệu suất cho Office 365Danh mục kiểm tra lập kế hoạch triển khai cho Office 365 để được hướng dẫn thêm về cách lập kế hoạch cho cấu hình mạng.

Cách triển khai kịch bản này:

Kiểm tra với nhà cung cấp dịch vụ hoặc giải pháp mạng xem liệu họ có thể sử dụng định nghĩa URL và IP Office 365 từ XML để tạo điều kiện cho các đầu ra mạng cục bộ (với người dùng), có chi phí chung thấp cho lưu lượng Office 365, quản lý ưu tiên liên quan đến các ứng dụng khác và điều chỉnh đường dẫn mạng cho các kết nối Office 365 vào mạng Microsoft, dựa vào các điều kiện mạng thay đổi. Một số giải pháp sẽ tải xuống và tự động hóa định nghĩa XML của URL và IP Office 365 trong ngăn xếp của chúng.

Luôn đảm bảo rằng giải pháp đã thực thi có mức độ phục hồi cần thiết, mức dư thừa đường dẫn mạng về địa lý phù hợp cho lưu lượng Office 365 và thích ứng với các thay đổi đối với URL và IP Office 365 khi chúng được phát hành.

Dịch vụ web

Nhằm giúp bạn xác định và phân biệt lưu lượng truy nhập mạng Office 365 tốt hơn, một dịch vụ web mới đã phát hành các điểm cuối Office 365, giúp bạn dễ dàng đánh giá, đặt cấu hình và duy trì cập nhật các thay đổi. Dịch vụ web mới này (hiện đang ở dạng bản xem trước) sẽ dần thay thế danh sách điểm cuối trong bài viết URL và dải địa chỉ IP của Office 365, cùng với các phiên bản RSS và XML của dữ liệu đó. Những định dạng dữ liệu điểm cuối này dự kiến sẽ ngừng hoạt động vào 02/10/2018.

Với tư cách là khách hàng hoặc nhà cung cấp thiết bị mạng ngoại vi, bạn có thể thiết lập dịch vụ web dựa trên REST mới cho địa chỉ IP của Office 365 và các mục nhập FQDN.

Với tư cách là khách hàng, bạn có thể sử dụng dịch vụ web này để:

  • Cập nhật các tập lệnh PowerShell để nhận dữ liệu điểm cuối Office 365 và sửa đổi mọi định dạng cho các thiết bị kết nối mạng của bạn.

  • Sử dụng thông tin này để cập nhật các tệp PAC được triển khai cho máy tính khách.

Với tư cách là nhà cung cấp thiết bị mạng ngoại vi, bạn có thể sử dụng dịch vụ web này để:

  • Tạo và kiểm tra phần mềm thiết bị để tải xuống danh sách cho cấu hình tự động hóa.

  • Kiểm tra phiên bản hiện tại.

  • Nhận các thay đổi hiện tại.

Các mục sau mô tả bản xem trước của dịch vụ web này, có thể thay đổi theo thời gian cho đến khi dịch vụ được phát hành rộng rãi.

Dữ liệu trên dịch vụ web được cập nhật và hiện chúng tôi không có dự định sẽ thực hiện thêm thay đổi cho URL dịch vụ web hay sơ đồ dữ liệu được trả về trước khi phát hành rộng rãi dịch vụ web này.

Để biết thêm thông tin, hãy xem:

Tham số phổ biến

Những tham số này rất phổ biến trên mọi phương thức dịch vụ web:

  • format=CSV | JSON – Tham số chuỗi truy vấn. Theo mặc định, định dạng dữ liệu được trả về là JSON. Đưa vào tham số tùy chọn này để trả về dữ liệu ở định dạng giá trị được phân tách bằng dấu phẩy (CSV).

  • ClientRequestId – Tham số chuỗi truy vấn. GUID bắt buộc mà bạn tạo cho liên kết phiên máy khách. Bạn nên tạo một GUID cho mỗi máy khách gọi dịch vụ web. Không sử dụng các GUID có trong các ví dụ sau vì chúng có thể bị dịch vụ web chặn trong tương lai. Định dạng GUID là xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, trong đó x thể hiện một số thập lục phân. Để tạo một GUID, hãy sử dụng lệnh PowerShell New-Guid.

Phương thức web phiên bản

Microsoft cập nhật địa chỉ IP của Office 365 cùng các mục nhập FQDN vào cuối mỗi tháng và đôi khi sẽ không thực hiện theo chu kỳ đối với các yêu cầu hoạt động hoặc hỗ trợ. Dữ liệu cho mỗi phiên bản được phát hành sẽ được gán một số phiên bản. Phương thức web phiên bản cho phép bạn kiểm soát vòng để biết phiên bản mới nhất của từng phiên bản dịch vụ Office 365. Chúng tôi khuyên bạn nên kiểm tra phiên bản hàng ngày hoặc tối đa là hàng giờ.

Có một tham số cho phương thức web phiên bản:

  • AllVersions=true – Tham số chuỗi truy vấn. Theo mặc định, phiên bản được trả về là bản mới nhất. Đưa vào tham số tùy chọn này để yêu cầu mọi phiên bản đã phát hành.

  • Instance – Tham số định tuyến. Tham số tùy chọn này chỉ định phiên bản cần trả về phiên bản. Nếu bỏ qua thì mọi phiên bản đều sẽ được trả về. Các phiên bản hợp lệ là: Worldwide, China, Germany, USGovDoD, USGovGCCHigh

Kết quả từ phương thức web phiên bản có thể là một bản ghi hoặc một chuỗi bản ghi. Các thành phần của mỗi bản ghi là:

  • instance – Tên rút gọn của phiên bản dịch vụ Office 365.

  • latest – Phiên bản dịch vụ cho các điểm cuối của phiên bản được chỉ định.

  • versions – Danh sách toàn bộ các phiên bản trước đó cho phiên bản được chỉ định. Thành phần này chỉ xuất hiện khi tham số AllVersions là true.

Ví dụ:

Ví dụ 1 yêu cầu URI: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này trả về phiên bản mới nhất của mỗi phiên bản dịch vụ Office 365. Kết quả ví dụ:

[
 {
  "instance": "Worldwide", 
  "latest": "2018063000"
 },
 {
  "instance": "USGovDoD", 
  "latest": "2018063000"
 },
 {
  "instance": "USGovGCCHigh",
  "latest": "2018063000"
 },
 {
  "instance": "China",
  "latest": "2018063000"
 },
 {
  "instance": "Germany",
  "latest": "2018063000"
 }
] 

Quan trọng: GUID cho tham số ClientRequestID trong các URI này chỉ là ví dụ. Để dùng thử các URI dịch vụ web, hãy tạo GUID của riêng bạn. Các GUID có trong các ví dụ sau có thể bị dịch vụ web chặn trong tương lai.

Ví dụ 2 về URI yêu cầu: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này trả về phiên bản mới nhất của phiên bản dịch vụ Office 365 được chỉ định. Kết quả ví dụ:

{
 "instance": "Worldwide",
 "latest": "2018063000"
}

Ví dụ 3 về URI yêu cầu: https://endpoints.office.com/version/Worldwide?Format=CSV&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này hiển thị đầu ra ở định dạng CSV. Kết quả ví dụ:

instance,latest
Worldwide,2018063000

Ví dụ 4 về URI yêu cầu: https://endpoints.office.com/version/Worldwide?AllVersions=true&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này hiển thị tất cả các phiên bản trước đây đã được phát hành cho phiên bản dịch vụ Office 365 trên toàn thế giới. Kết quả ví dụ:

{
  "instance": "Worldwide",
  "latest": "2018063000",
  "versions": [
    "2018063000",
    "2018062000"
  ]
}

Phương thức web điểm cuối

Phương thức web điểm cuối trả về tất cả bản ghi cho các URL và dải địa chỉ IP tạo nên dịch vụ Office 365. Tham số cho phương thức web điểm cuối là:

  • ServiceAreas – Tham số chuỗi truy vấn. Danh sách các khu vực dịch vụ được phân tách bằng dấu phẩy. Các mục hợp lệ là Common, Exchange, SharePoint, Skype. Do các mục khu vực dịch vụ Common là điều kiện tiên quyết cho mọi khu vực dịch vụ khác nên dịch vụ web sẽ luôn bao gồm chúng. Nếu bạn không đưa vào tham số này, mọi khu vực dịch vụ sẽ được trả về.

  • TenantName – Tham số chuỗi truy vấn. Tên đối tượng thuê Office 365 của bạn. Dịch vụ web lấy tên bạn đã cung cấp, rồi chèn tên đó vào các phần URL có chứa tên đối tượng thuê. Nếu bạn không cung cấp tên đối tượng thuê, những phần đó của URL sẽ có ký tự đại diện (*).

  • NoIPv6 – Tham số chuỗi truy vấn. Đặt tham số này thành true để loại trừ các địa chỉ IPv6 khỏi đầu ra, ví dụ: nếu bạn không sử dụng IPv6 trong mạng của mình.

  • Instance – Tham số định tuyến. Tham số bắt buộc này chỉ định phiên bản cần trả về điểm cuối. Các phiên bản hợp lệ là: Worldwide, China, Germany, USGovDoD, USGovGCCHigh.

Kết quả từ phương thức web điểm cuối là một chuỗi các bản ghi với mỗi bản ghi thể hiện một tập hợp điểm cuối. Các thành phần của mỗi bản ghi là:

  • id – Số id không thể thay đổi của tập hợp điểm cuối.

  • serviceArea – Khu vực dịch vụ có chứa tập hợp điểm cuối này: Common, Exchange, SharePoint hoặc Skype.

  • urls – URL của tập hợp điểm cuối. Một mảng JSON của bản ghi DNS. Bỏ qua nếu trống.

  • tcpPorts – Các cổng TCP của tập hợp điểm cuối. Toàn bộ các thành phần cổng được định dạng dưới dạng danh sách cổng được phân tách bằng dấu phẩy hoặc phạm vi cổng được phân tách bằng ký tự gạch nối (-). Cổng áp dụng cho mọi địa chỉ IP và mọi URL trong tập hợp điểm cuối đó của danh mục đó. Bỏ qua nếu trống.

  • udpPorts – Các cổng UDP của dải địa chỉ IP trong tập hợp điểm cuối này. Bỏ qua nếu trống.

  • ips – Dải địa chỉ IP được liên kết với tập hợp điểm cuối này như được liên kết với các cổng TCP hoặc UDP được liệt kê. Bỏ qua nếu trống.

  • category – Danh mục khả năng kết nối cho tập hợp điểm cuối. Các giá trị hợp lệ là Optimize, Allow và Default. Bắt buộc.

  • expressRoute – True hoặc False nếu tập hợp điểm cuối này được định tuyến qua ExpressRoute.

  • required – True nếu tập hợp điểm cuối này cần phải có khả năng kết nối với Office 365 để được hỗ trợ. Bỏ qua nếu false.

  • notes - Đối với các điểm cuối tùy chọn, văn bản này mô tả chức năng Office 365 sẽ bị thiếu nếu không truy nhập được các địa chỉ IP hoặc URL trong tập hợp điểm cuối này ở lớp mạng. Bỏ qua nếu trống.

Ví dụ:

Ví dụ 1 về URI yêu cầu: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này nhận mọi điểm cuối của phiên bản Office 365 trên toàn thế giới cho mọi tải công việc. Kết quả ví dụ hiển thị trích dẫn của đầu ra:

[ 
 { 
  "id": 1, 
  "serviceArea": "Exchange", 
  "serviceAreaDisplayName": "Exchange Online", 
  "urls": 
   [ 
    "*.protection.outlook.com" 
   ], 
  "ips": 
   [ 
    "2a01:111:f403::/48", "23.103.132.0/22", "23.103.136.0/21", "23.103.198.0/23", "23.103.212.0/22", "40.92.0.0/14", "40.107.0.0/17", "40.107.128.0/18", "52.100.0.0/14", "213.199.154.0/24", "213.199.180.128/26", "94.245.120.64/26", "207.46.163.0/24", "65.55.88.0/24", "216.32.180.0/23", "23.103.144.0/20", "65.55.169.0/24", "207.46.100.0/24", "2a01:111:f400:7c00::/54", "157.56.110.0/23", "23.103.200.0/22", "104.47.0.0/17", "2a01:111:f400:fc00::/54", "157.55.234.0/24", "157.56.112.0/24", "52.238.78.88/32" 
   ], 
  "tcpPorts": "443", 
  "expressRoute": true, 
  "category": "Allow" 
 }, 
 { 
  "id": 2, 
  "serviceArea": "Exchange", 
  "serviceAreaDisplayName": "Exchange Online", 
  "urls": 
   [ 
    "*.mail.protection.outlook.com" 
   ],
...

Tập hợp điểm cuối bổ sung không được đưa vào trong ví dụ này.

Ví dụ 2 về URI yêu cầu: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ví dụ này nhận các điểm cuối cho phiên bản Office 365 trên toàn thế giới chỉ dành cho Exchange Online và các đối tượng phụ thuộc.

Đầu ra cho ví dụ 2 tương tự như ví dụ 1, ngoại trừ các kết quả sẽ không bao gồm các điểm cuối cho SharePoint Online hoặc Skype for Business Online.

Phương thức web thay đổi

Phương thức web thay đổi trả về các bản cập nhật gần đây nhất đã được phát hành. Đây thường là những thay đổi của tháng trước với dải địa chỉ IP và URL.

Lưu ý: Dữ liệu từ API thay đổi là chuẩn xác trong bản xem trước và chỉ nên được sử dụng cho các mục đích phát triển và thử nghiệm.

Tham số cho phương thức web thay đổi là:

  • Version – Tham số định tuyến URL bắt buộc. Phiên bản hiện bạn đã áp dụng và muốn xem các thay đổi kể từ phiên bản đó. Định dạng là YYYYMMDDNN.

Kết quả từ phương thức web thay đổi là một chuỗi các bản ghi với mỗi bản ghi thể hiện một thay đổi trong một phiên bản cụ thể của các điểm cuối. Các thành phần của mỗi bản ghi là:

  • id – Id không thể thay đổi của bản ghi thay đổi.

  • endpointSetId – ID của bản ghi tập hợp điểm cuối đã được thay đổi. Bắt buộc.

  • disposition – Đây có thể là thay đổi, thêm hoặc loại bỏ và mô tả tác động của thay đổi đến bản ghi tập hợp điểm cuối.

  • version – Phiên bản tập hợp điểm cuối đã phát hành có chứa thay đổi. Số phiên bản có định dạng YYYYMMDDNN, trong đó NN là số tự nhiên tăng theo gia số, nếu cần phát hành nhiều phiên bản trong một ngày.

  • previous – Một cấu trúc con trình bày chi tiết các giá trị trước đó của các thành phần thay đổi trên tập hợp điểm cuối. Cấu trúc con này sẽ không xuất hiện với các tập hợp điểm cuối mới được thêm. Bao gồm tcpPorts, udpPorts, ExpressRoute, category, required, notes.

  • current – Cấu trúc con trình bày chi tiết các giá trị cập nhật của các thành phần thay đổi trên tập hợp điểm cuối. Bao gồm tcpPorts, udpPorts, ExpressRoute, category, required, notes.

  • add – Cấu trúc con trình bày chi tiết các mục cần thêm vào tuyển tập tập hợp điểm cuối. Bỏ qua nếu không có bổ sung nào.

    • effectiveDate – Xác định dữ liệu về thời điểm nội dung bổ sung xuất hiện trong dịch vụ.

    • ips – Các mục cần thêm vào chuỗi ip.

    • urls- Các mục cần thêm vào mảng url.

  • remove – Cấu trúc con trình bày chi tiết các mục cần loại bỏ khỏi tập hợp điểm cuối. Bỏ qua nếu không có loại bỏ nào.

    • ips – Các mục cần loại bỏ khỏi mảng ips.

    • urls- Các mục cần loại bỏ khỏi mảng url.

Ví dụ:

Ví dụ 1 về URI yêu cầu: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này yêu cầu mọi thay đổi trước đây với phiên bản dịch vụ Office 365 trên toàn thế giới. Kết quả ví dụ:

[ 
 { 
  "id": 424, 
  "endpointSetId": 32, 
  "disposition": "Change", 
  "version": "2018062700", 
  "remove": 
   { 
    "urls": 
     [ 
      "*.api.skype.com", "skypegraph.skype.com" 
     ] 
   } 
 }, 
 { 
  "id": 426, 
  "endpointSetId": 31, 
  "disposition": "Change", 
  "version": "2018062700", 
  "add": 
   { 
    "effectiveDate": "20180609", 
    "ips": 
     [ 
      "51.140.203.190/32" 
     ]
   },
  "remove": 
   { 
    "ips": 
     [
...

Ví dụ 2 yêu cầu URI: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

URI này yêu cầu các thay đổi với phiên bản Office 365 Trên toàn thế giới kể từ phiên bản được chỉ định. Trong trường hợp này, phiên bản được chỉ định chính là phiên bản mới nhất. Kết quả ví dụ:

[
  {
    "id":3,
    "endpointSetId":33,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["65.55.127.0/24","66.119.157.192/26","66.119.158.0/25",
      "111.221.76.128/25","111.221.77.0/26","207.46.5.0/24"]
    }
  },
  {
    "id":4,
    "endpointSetId":45,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["13.78.93.8/32","40.113.87.220/32","40.114.149.220/32",
      "40.117.100.83/32","40.118.214.164/32","104.208.31.113/32"]
    }
  }
]

Tập lệnh PowerShell ví dụ

Đây là tập lệnh PowerShell mà bạn có thể chạy để xem liệu bạn có cần thực hiện hành động nào nhằm cập nhật dữ liệu không. Tập lệnh này kiểm tra số phiên bản cho các điểm cuối phiên bản Office 365 Trên toàn thế giới. Khi có thay đổi, tập lệnh này sẽ tải xuống các điểm cuối và lọc để tìm những điểm cuối thuộc danh mục “Cho phép” và “Tối ưu hóa”. Tập lệnh này cũng sử dụng ClientRequestId đơn nhất cho nhiều cuộc gọi và lưu phiên bản mới nhất tìm thấy trong tệp tạm thời. Bạn nên gọi tập lệnh này mỗi giờ một lần để kiểm tra bản cập nhật phiên bản.

# webservice root URL
$ws = "https://endpoints.office.com"

# path where client ID and latest version number will be stored
$datapath = $Env:TEMP + "\endpoints_clientid_latestversion.txt"

# fetch client ID and version if data file exists; otherwise create new file
if (Test-Path $datapath) {
    $content = Get-Content $datapath
    $clientRequestId = $content[0]
    $lastVersion = $content[1]
}
else {
    $clientRequestId = [GUID]::NewGuid().Guid
    $lastVersion = "0000000000"
    @($clientRequestId, $lastVersion) | Out-File $datapath
}

# call version method to check the latest version, and pull new data if version number is different
$version = Invoke-RestMethod -Uri ($ws + "/version/Worldwide?clientRequestId=" + $clientRequestId)
if ($version.latest -gt $lastVersion) {
    Write-Host "New version of Office 365 worldwide commercial service instance endpoints detected"
    
    # write the new version number to the data file
    @($clientRequestId, $version.latest) | Out-File $datapath

    # invoke endpoints method to get the new data
    $endpointSets = Invoke-RestMethod -Uri ($ws + "/endpoints/Worldwide?clientRequestId=" + $clientRequestId)

    # filter results for Allow and Optimize endpoints, and transform these into custom objects with port and category
    $flatUrls = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $urls = $(if ($endpointSet.urls.Count -gt 0) { $endpointSet.urls } else { @() })

        $urlCustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $urlCustomObjects = $urls | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    url      = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $urlCustomObjects
    }

    $flatIps = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv4 strings have dots while IPv6 strings have colons
        $ip4s = $ips | Where-Object { $_ -like '*.*' }
        
        $ipCustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $ipCustomObjects = $ip4s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ipCustomObjects
    }

    Write-Output "IPv4 Firewall IP Address Ranges"
    ($flatIps.ip | Sort-Object -Unique) -join "," | Out-String

    Write-Output "URLs for Proxy Server"
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-String

    # TODO Call Send-MailMessage with new endpoints data
}
else {
    Write-Host "Office 365 worldwide commercial service instance endpoints are up-to-date"
}

Tập lệnh Python ví dụ

Đây là tập lệnh Python, được kiểm tra bằng Python 3.6.3 trên Windows 10 mà bạn có thể chạy để xem liệu bạn có cần thực hiện hành động nào nhằm cập nhật dữ liệu không. Tập lệnh này kiểm tra số phiên bản cho các điểm cuối phiên bản Office 365 Trên toàn thế giới. Khi có thay đổi, tập lệnh này sẽ tải xuống các điểm cuối và lọc để tìm các điểm cuối thuộc danh mục “Cho phép” và “Tối ưu hóa”. Tập lệnh này cũng sử dụng ClientRequestId đơn nhất cho nhiều cuộc gọi và lưu phiên bản mới nhất tìm thấy trong tệp tạm thời. Bạn nên gọi tập lệnh này mỗi giờ một lần để kiểm tra bản cập nhật phiên bản.

import json
import os
import urllib.request
import uuid

# helper to call the webservice and parse the response
def webApiGet(methodName, instanceName, clientRequestId):
    ws = "https://endpoints.office.com"
    requestPath = ws + '/' + methodName + '/' + instanceName + '?clientRequestId=' + clientRequestId
    request = urllib.request.Request(requestPath)
    with urllib.request.urlopen(request) as response:
        return json.loads(response.read().decode())

# path where client ID and latest version number will be stored
datapath = os.environ['TEMP'] + '\endpoints_clientid_latestversion.txt'

# fetch client ID and version if data exists; otherwise create new file
if os.path.exists(datapath):
    with open(datapath, 'r') as fin:
        clientRequestId = fin.readline().strip()
        latestVersion = fin.readline().strip()
else:
    clientRequestId = str(uuid.uuid4())
    latestVersion = '0000000000'
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + latestVersion)

# call version method to check the latest version, and pull new data if version number is different
version = webApiGet('version', 'Worldwide', clientRequestId)
if version['latest'] > latestVersion:
    print('New version of Office 365 worldwide commercial service instance endpoints detected')

    # write the new version number to the data file
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + version['latest'])

    # invoke endpoints method to get the new data
    endpointSets = webApiGet('endpoints', 'Worldwide', clientRequestId)

    # filter results for Allow and Optimize endpoints, and transform these into tuples with port and category
    flatUrls = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            category = endpointSet['category']
            urls = endpointSet['urls'] if 'urls' in endpointSet else []
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatUrls.extend([(category, url, tcpPorts, udpPorts) for url in urls])

    flatIps = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            ips = endpointSet['ips'] if 'ips' in endpointSet else []
            category = endpointSet['category']
            # IPv4 strings have dots while IPv6 strings have colons
            ip4s = [ip for ip in ips if '.' in ip]
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatIps.extend([(category, ip, tcpPorts, udpPorts) for ip in ip4s])

    print('IPv4 Firewall IP Address Ranges')
    print(','.join(sorted(set([ip for (category, ip, tcpPorts, udpPorts) in flatIps]))))

    print('URLs for Proxy Server')
    print(','.join(sorted(set([url for (category, url, tcpPorts, udpPorts) in flatUrls]))))
    
    # TODO send mail (e.g. with smtplib/email modules) with new endpoints data

else:
    print('Office 365 worldwide commercial service instance endpoints are up-to-date')

Lập phiên bản giao diện Dịch vụ web

Có thể cần các bản cập nhật cho tham số hoặc kết quả cho những phương thức dịch vụ web này trong tương lai. Sau khi phiên bản phát hành rộng rãi của các dịch vụ web này được phát hành, Microsoft sẽ thực hiện những nỗ lực hợp lý để cung cấp thông báo trước về các bản cập nhật tài liệu cho dịch vụ web. Khi Microsoft cho rằng bản cập nhật sẽ yêu cầu thay đổi đối với máy khách sử dụng dịch vụ web, Microsoft sẽ giữ phiên bản trước đây (cũ hơn một phiên bản) của dịch vụ web sẵn dùng trong ít nhất mười hai (12) tháng sau khi phát hành phiên bản mới. Khách hàng không nâng cấp trong thời gian đó có thể không truy nhập được dịch vụ web và các phương thức. Khách hàng phải đảm bảo rằng các máy khách của dịch vụ web sẽ tiếp tục hoạt động mà không gặp phải lỗi nếu những thay đổi sau được thực hiện cho chữ ký giao diện dịch vụ web:

  • Thêm một tham số tùy chọn mới vào phương thức web hiện có, không bắt buộc phải do máy khách cũ hơn cung cấp và không ảnh hưởng đến kết quả mà máy khách cũ hơn nhận được.

  • Thêm một thuộc tính có tên mới vào một trong các mục REST phản hồi hoặc các cột bổ sung vào CSV phản hồi.

  • Thêm một phương thức web mới với tên mới không được gọi bởi các máy khách cũ hơn.

Câu hỏi thường gặp

Câu hỏi thường gặp dành cho người quản trị về khả năng kết nối:

Bấm vào liên kết ở cuối để cho biết bài viết này có hữu ích hay không và gửi câu hỏi bổ sung bất kỳ. Chúng tôi theo dõi phản hồi và cập nhật các câu hỏi thường gặp nhất vào những câu hỏi tại đây.

Khi thông báo các điểm cuối mới, thường có thời gian đệm hơn 30 ngày trước khi các điểm cuối có hiệu lực và yêu cầu mạng bắt đầu đi đến điểm cuối. Thời gian đệm này giúp đảm bảo khách hàng và đối tác có cơ hội cập nhật hệ thống. Việc thêm và loại bỏ tiền tố FQDN và IP được xử lý trong tệp XML cùng lúc với việc thông báo, nghĩa là một FQDN mới sẽ nằm trong tệp XML 30 ngày trước khi sử dụng. Vì chúng tôi ngừng gửi yêu cầu mạng tới những điểm cuối mà chúng tôi sẽ loại bỏ trước khi thông báo loại bỏ điểm cuối, khi chúng tôi loại bỏ điểm cuối khỏi tệp XML cùng lúc với thông báo, điểm cuối sẽ không được sử dụng nữa.

Các điểm cuối Office 365 được phát hành vào cuối mỗi tháng với thông báo 30 ngày. Đôi khi thay đổi sẽ diễn ra nhiều hơn một lần/tháng hoặc có thời gian thông báo ngắn hơn. Khi có điểm cuối được thêm, ngày bắt đầu có hiệu lực được liệt kê trong nguồn cấp RSS là ngày mà sau thời điểm đó, các yêu cầu mạng sẽ được gửi tới điểm cuối đó. Nếu bạn mới sử dụng RSS thì đây là cách đăng ký qua Outlook hoặc bạn có thể nhận các bản cập nhật nguồn cấp RSS qua email.

Sau khi bạn đăng ký nguồn cấp RSS, bạn có thể tự phân tích các thông tin hoặc bằng một tập lệnh. Bảng sau mô tả định dạng nguồn cấp RSS giúp tạo nguồn cấp dễ dàng hơn.

Mục

Phần 1

Phần 2

Phần 3

Phần 4

Phần 5

Phần 6

Mô tả

Số đếm

Ngày sau đó, bạn có thể đợi các yêu cầu mạng cần gửi tới điểm cuối.

Mô tả cơ bản về tính năng hoặc dịch vụ yêu cầu phải có điểm cuối.

Bạn có thể kết nối tới điểm cuối này trên một Mạch ExpressRoute ngoài internet hay không?

- bạn có thể kết nối tới điểm cuối này trên internet và ExpressRoute.

Không - bạn chỉ có thể kết nối tới điểm cuối này trên internet.

Đích FQDN hoặc dải IP được thêm hoặc loại bỏ.

Ví dụ

1/

[Effective xx/xx/xxx.

Bắt buộc: <mô tả>.

ExpressRoute:

<Yes/No>.

<FQDN/IP>],

Một số điều khác cần lưu ý là mỗi mục nhập đều có một tập hợp các dấu tách chung:

  • / - sau số đếm

  • [ - để thể hiện mục nhập dành cho số đếm

  • . - được sử dụng ở giữa mỗi mục riêng biệt của mục nhập

  • ], - để thể hiện phần kết thúc của một mục nhập đơn

  • ]. - Để thể hiện phần kết thúc của mọi mục nhập

Vị trí của đối tượng thuê được xác định tốt nhất bằng bản đồ trung tâm dữ liệu.

Vị trí ngang hàng được mô tả chi tiết hơn trong ngang hàng với Microsoft.

Với trên 2500 quan hệ ngang hàng ISP trên toàn cầu và 70 điểm hiện diện, quá trình chuyển từ mạng của bạn sang mạng của chúng tôi sẽ được thực hiện liền mạch. Không ảnh hưởng gì nếu bạn dành một vài phút để đảm bảo quan hệ ngang hàng ISP của mình là tối ưu nhất, sau đây là một vài ví dụ chuyển giao ngang hàng tốt và không tốt tới mạng của chúng tôi.

Định tuyến ExpressRoute được chấp nhận được xác định theo dải IP của Microsoft và các Office 365cộng đồng BGP cụ thể.

Chúng tôi thường xuyên thêm các tính năng và dịch vụ mới vào bộ Office 365, giúp mở rộng khoảng kết nối. Nếu bạn đã đăng ký SKU E3 hoặc E5, cách đơn giản để hiểu về danh sách các điểm cuối là bạn cần tất cả những điểm cuối này để có được toàn bộ chức năng cho bộ sản phẩm. Nếu bạn chưa đăng ký SKU nào trong số này thì sẽ có sự khác biệt rất nhỏ về mặt số lượng điểm cuối.

Hãy đọc Nguyên tắc kết nối mạng Office 365 để biết thêm thông tin về các danh mục điểm cuối Office 365 và hiểu các nguyên tắc kết nối để quản lý lưu lượng truy cập Office 365 một cách bảo mật và đạt hiệu suất tốt nhất có thể.

Trong hình ảnh dưới đây, bạn có thể xem ví dụ từ một phần trong bảng FQDN ở mục Office Online. Các hàng được sắp xếp theo tính năng và các điểm khác biệt về tính kết nối. Hai hàng đầu tiên thể hiện Office Online dựa trên các điểm cuối được đánh dấu là Bắt buộc trong mục Xác thực và Danh tính của Office 365, mục cổng thông tin và các mục dùng chung. Đây là đặc trưng đối với một dịch vụ trong Office 365 để dựa vào các dịch vụ dùng chung này. Hàng thứ ba thể hiện các máy tính khách phải có khả năng truy nhập *.officeapps.live.com để sử dụng Office Online và hàng thứ tư thể hiện các máy tính cũng phải có khả năng truy nhập *.cdn.office.net để sử dụng Office Online.

Ngay cả khi cả hai hàng thứ ba và thứ tư là bắt buộc để sử dụng Office Online, các hàng này vẫn được phân tách để thể hiện đích đến là khác nhau:

  1. *.officeapps.live.com không đại diện cho CDN, nghĩa là các yêu cầu đến không gian tên này sẽ đi thẳng đến trung tâm dữ liệu Microsoft.

  2. *. officeapps.live.com có khả năng truy nhập trên các mạch ExpressRoute bằng tính năng Chuyển đổi dữ liệu ngang hàng Microsoft.

  3. Bạn có thể tìm thấy các địa chỉ IP được liên kết với Office Online và *. officeapps.live.com bằng cách truy nhập theo liên kết này.

  4. *. cdn.office.net đại diện cho một CDN do Akamai lưu trữ, nghĩa là các yêu cầu đến không gian tên này sẽ đi đến một trung tâm dữ liệu Akamai.

  5. Bạn không thể truy nhập *. cdn.office.net trên các mạch ExpressRoute.

  6. Các địa chỉ IP được liên kết với Office Online và *.cdn.office.net đều không khả dụng.

Chụp màn hình trang điểm cuối

Chúng tôi chỉ cung cấp địa chỉ IP cho máy chủ Office 365 mà bạn cần định tuyến trực tiếp trên Internet hoặc ExpressRoute. Đây không phải là danh sách đầy đủ tất cả địa chỉ IP mà bạn sẽ thấy trong yêu cầu mạng. Bạn sẽ thấy các yêu cầu mạng đối với Microsoft và các địa chỉ IP chưa phát hành, thuộc sở hữu của bên thứ ba. Các địa chỉ IP này được tạo hoặc quản lý theo cách thay đổi không ngừng, ngăn cản việc thông báo kịp thời khi có thay đổi. Nếu tường lửa của bạn không cho phép truy nhập dựa trên FQDN cho các yêu cầu mạng này, hãy sử dụng tệp PAC hoặc WPAD để quản lý yêu cầu.

Bạn muốn biết thêm thông tin về một IP được liên kết với Office 365?

  1. Kiểm tra xem địa chỉ IP có được nằm trong phạm vi đã phát hành lớn hơn hay không bằng cách sử dụng máy tính tay CIDR.

  2. Xem liệu một đối tác có sở hữu IP không bằng truy vấn whois. Nếu IP thuộc sở hữu của Microsoft thì đây có thể là một đối tác nội bộ.

  3. Kiểm tra chứng chỉ, trong trình duyệt, hãy kết nối với địa chỉ IP bằng cách sử dụng HTTPS://<ĐỊA_CHỈ_IP>, kiểm tra các miền được liệt kê trên chứng chỉ để nắm được miền nào được gắn với địa chỉ IP. Nếu đó là một địa chỉ IP thuộc sở hữu của Microsoft nhưng chưa có trên danh sách các địa chỉ IP của Office 365 thì có khả năng địa chỉ IP này được liên kết với một CDN của Microsoft, chẳng hạn như MSOCDN.NET hoặc một miền Microsoft khác mà không có thông tin IP đã phát hành. Nếu bạn thấy miền trên chứng chỉ là miền chúng tôi yêu cầu liệt kê địa chỉ IP, vui lòng cho chúng tôi biết.

Office 365 và các dịch vụ Microsoft khác sử dụng một vài dịch vụ của bên thứ ba, chẳng hạn như Akamai và MarkMonitor để cải thiện trải nghiệm Office 365 của bạn. Để tiếp tục mang đến cho bạn trải nghiệm tốt nhất có thể, chúng tôi có thể thay đổi các dịch vụ này trong tương lai. Khi làm như vậy, chúng tôi thường phát hành bản ghi CNAME trỏ đến miền thuộc sở hữu của bên thứ ba, bản ghi A hoặc địa chỉ IP. Miền của bên thứ ba có thể lưu trữ nội dung, chẳng hạn như một CDN hoặc chúng có thể lưu trữ một dịch vụ, chẳng hạn như dịch vụ quản lý lưu lượng địa lý. Khi bạn thấy kết nối với các bên thứ ba này, chúng thường ở dạng chuyển hướng hoặc tham chiếu, thay vì yêu cầu ban đầu từ máy khách. Một số khách hàng cần đảm bảo hình thức tham chiếu và chuyển hướng này được cho phép thông qua mà không cần thêm trực tiếp danh sách dài các FQDN tiềm ẩn mà các dịch vụ của bên thứ ba có thể sử dụng.

Danh sách dịch vụ có thể thay đổi bất cứ lúc nào. Một số dịch vụ hiện đang được sử dụng bao gồm:

MarkMonitor được sử dụng khi bạn thấy các yêu cầu có bao gồm *.nsatc.net. Dịch vụ này cung cấp tính năng bảo vệ tên miền và giám sát để bảo vệ trước hành vi nguy hiểm.

ExactTarget được sử dụng khi bạn thấy các yêu cầu tới *.exacttarget.com. Dịch vụ này cung cấp khả năng quản lý liên kết email và giám sát trước hành vi nguy hiểm.

Akamai được sử dụng khi bạn thấy các yêu cầu có bao gồm một trong các FQDN sau. Dịch vụ cung cấp DNS địa lý và dịch vụ mạng phân phối nội dung.

*.akadns.net
*.akam.net
*.akamai.com
*.akamai.net
*.akamaiedge.net
*.akamaihd.net
*.akamaized.net
*.edgekey.net
*.edgesuite.net

  • Bạn kết nối với dịch vụ của bên thứ ba để truy xuất các dịch vụ internet cơ bản như tra cứu DNS và truy xuất nội dung CDN. Bạn còn kết nối với các dịch vụ của bên thứ ba để thực hiện các kiểu tích hợp như kết hợp các video YouTube trong sổ tay OneNote.

  • Bạn kết nối với các dịch vụ thứ cấp được lưu trữ và được vận hành bởi Microsoft, chẳng hạn như nút cạnh cho phép yêu cầu mạng đi vào mạng toàn cầu của Microsoft tại vị trí internet gần nhất với máy tính của bạn. Là mạng lớn thứ ba trên hành tinh, mạng này sẽ giúp cải thiện trải nghiệm kết nối. Bạn cũng kết nối với các dịch vụ Microsoft Azure, chẳng hạn như Azure Media Services hiện đang được một loạt các dịch vụ Office 365 sử dụng.

  • Bạn kết nối với các dịch vụ Office 365 chính, chẳng hạn như máy chủ hộp thư Exchange Online hoặc máy chủ Skype for Business Online, nơi lưu trữ dữ liệu duy nhất và độc quyền của bạn. Bạn có thể kết nối với các dịch vụ Office 365 chính bằng FQDN hoặc địa chỉ IP và sử dụng mạch internet hoặc ExpressRoute. Bạn chỉ có thể kết nối với dịch vụ của bên thứ ba và dịch vụ thứ cấp bằng cách sử dụng các FQDN trên mạch internet.

Sơ đồ sau đây cho thấy sự khác biệt giữa các khu vực dịch vụ. Trong sơ đồ này, mạng tại chỗ của khách hàng ở góc dưới bên trái có nhiều thiết bị mạng để hỗ trợ quản lý kết nối mạng. Các cấu hình như này phổ biến với khách hàng doanh nghiệp. Nếu mạng của bạn chỉ có tường lửa giữa máy tính khách và internet, tường lửa được hỗ trợ và bạn sẽ muốn đảm bảo tường lửa của bạn có thể hỗ trợ các FQDN và ký tự đại diện trong các quy tắc về danh sách cho phép này.

Hãy đọc Nguyên tắc kết nối mạng Office 365 để biết thêm thông tin về các danh mục điểm cuối Office 365 và hiểu các nguyên tắc kết nối để quản lý lưu lượng truy cập Office 365 một cách bảo mật và đạt hiệu suất tốt nhất có thể.

Hiển thị ba loại điểm cuối mạng khác nhau khi sử dụng Office 365

Office 365 là bộ dịch vụ được xây dựng để hoạt động trên internet, cam kết về độ tin cậy và tính sẵn có phụ thuộc vào nhiều dịch vụ internet tiêu chuẩn đang sẵn dùng. Ví dụ: các dịch vụ internet tiêu chuẩn như DNS, CRL và CDN phải có thể tiếp cận để sử dụng được Office 365 cũng như chúng phải có thể tiếp cận để sử dụng được các dịch vụ internet hiện đại nhất.

Ngoài những dịch vụ internet cơ bản này, có các dịch vụ bên thứ ba chỉ được sử dụng để tích hợp chức năng. Ví dụ: sử dụng Giphy.com bên trong Microsoft Teams cho phép khách hàng đưa Gif một cách liền mạch vào trong Nhóm. Tương tự, YouTube và Flickr là các dịch vụ bên thứ ba được sử dụng để tích hợp liền mạch video và hình ảnh vào các máy khách Office từ internet. Mặc dù những dịch vụ này cần thiết để tích hợp nhưng chúng được đánh dấu là tùy chọn trong bài viết về điểm cuối của Office 365, nghĩa là chức năng cốt lõi của dịch vụ vẫn tiếp tục hoạt động nếu không truy nhập được điểm cuối này.

Nếu bạn đang tìm cách sử dụng Office 365 và nhận thấy mình không thể truy nhập các dịch vụ của bên thứ ba, bạn nên đảm bảo tất cả FQDN được đánh dấu là bắt buộc hoặc tùy chọn trong bài viết này đều được cho phép thông qua proxy và tường lửa.

Dịch vụ thứ cấp là các dịch vụ Microsoft không thuộc sự kiểm soát của Office 365. Đó là các dịch vụ như mạng rìa, Azure Media Services và Azure Content Delivery Networks. Đây là tất cả những điều bắt buộc để sử dụng Office 365 và chúng phải có thể tiếp cận được.

Nếu bạn đang tìm cách sử dụng Office 365 và nhận thấy mình không thể truy nhập các dịch vụ của bên thứ ba, bạn nên đảm bảo tất cả FQDN được đánh dấu là bắt buộc hoặc tùy chọn trong bài viết này đều được cho phép thông qua proxy và tường lửa.

Bạn cần chịu toàn bộ trách nhiệm về việc hạn chế quyền truy nhập vào các dịch vụ người dùng của chúng tôi, cách đáng tin cậy duy nhất để chặn dịch vụ người dùng là hạn chế quyền truy nhập vào FQDN của login.live.com. FQDN này được sử dụng bởi một loạt dịch vụ, bao gồm dịch vụ không phải dịch vụ người dùng như MSDN, TechNet và các dịch vụ khác. Việc hạn chế quyền truy nhập vào FQDN này có thể dẫn đến nhu cầu đưa cả các ngoại lệ vào quy tắc về yêu cầu mạng được liên kết với các dịch vụ này.

Xin nhớ rằng việc chặn riêng quyền truy nhập vào các dịch vụ người dùng của Microsoft sẽ không ngăn chặn khả năng có người nào đó trên mạng của bạn lén loại bỏ thông tin bằng cách sử dụng dịch vụ của đối tượng thuê Office 365 hoặc dịch vụ khác.

Chủ đề liên quan

Dải IP của Trung tâm dữ liệu Microsoft Azure
Không gian IP công khai của Microsoft
Yêu cầu cơ sở hạ tầng mạng đối với Microsoft Intune
Power BI và ExpressRoute
URL và dải địa chỉ IP của Office 365
Quản lý ExpressRoute cho khả năng kết nối Office 365
Nguyên tắc kết nối mạng Office 365

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×