DMZ 子網:到 NAT 還是不到 NAT?
我正在考慮在 Cisco ASA 後面設置一個 DMZ,該 DMZ 將包含大量 HTTP 前端負載均衡器和 SSL 解除安裝服務——超過 100 個 IP,集中在少數主機上。
過去,我將所有主機都保留在 RFC1918 私有 IP 上,並為我通常在 DMZ 中公開的每個服務添加靜態映射(IP-by-IP)。這變得很煩人,因為我們已經開始以足夠快的速度添加額外的 DMZ IP,以至於單獨設置每個 IP 變得很煩人。我想更改它,以便將整個 DMZ 子網設置為允許來自外部的 HTTP 和 HTTPS –> dmz,以便負載均衡器可以根據需要獲取新的 IP,而無需每次都更新 ASA 配置。
我現在想知道的是讓 DMZ 位於 RFC1918 子網上並在整個子網中使用靜態 NAT 是否有意義,或者我是否應該讓 DMZ 直接成為我的外部 IP 分配,並且完全依賴訪問列表和身份 NAT/NAT 豁免。
一些粗略的 ASCII 藝術品:
使用直接外部 IP 地址的範例: 網際網路 ---> ASA ---> 內部 (10.1.0.0/16) | +-----> 非軍事區 (1.2.3.0/24) 使用 NATed IP 地址的範例: 網際網路 ---> ASA ---> 內部 (10.1.0.0/16) | (1.2.3.0/24) +-----> 非軍事區 (10.99.0.0/24)
我看到使用 NATed 地址的優勢是可移植性 - 如果我的上游提供商和分配發生變化,我不需要重新編號我的內部 DMZ。缺點是複雜性 - 現在我必須處理我自己網路中的內部和外部 IP 地址等。根據您的經驗,哪種設置效果更好?
你和其他人提到的任何一個方向都有理由去。
以靜態 1:1 NAT 的形式擁有一個抽象層(一種雙關語)有點好,因為如果您的 WAN IP 塊發生變化,您可能不必重新編號內部主機。但是,與簡單的路由和 ACL 檢查相比,NAT 為通過 ASA 的數據包流引入的複雜性和細微差別可能會帶來問題。
我個人的觀點是,NAT 將與 IPv4 保持一致。對於主機上的 IPv4 堆棧,我對上游防火牆上的靜態 NAT 沒有任何疑慮。然而,對於主機上的 IPv6 堆棧,沒有 NAT。在 ASA 上,IPv4 和 IPv6 可以並行執行,NAT 用於 IPv4,傳統路由用於 IPv6。
您可能想要使用靜態 NAT 並處理增長的另一個原因。 ASA 不支持
secondary
介面上的 IP 地址。假設您的上游為您分配了一個直接路由到 ASA 外部介面的 /26。您使用 IP 子網中的第一個主機 IP 配置 ASA 的 dmz 介面,使您的子網中有 64 - 2 - 1 = 61 個有效主機 IP 供伺服器使用。如果您使用了所有剩餘的 61 個主機 IP 並且需要更多,您可以去上游並說嘿我需要另一個 /26。他們將其提供給您並再次將其路由到您的 ASA 的外部 IP。您不能
secondary
像使用 IOS 那樣將第二個塊中的第一個主機 IP 作為 IP 地址分配給 ASA 的 dmz 介面。這給你留下了幾個選擇——
- 在 ASA 上創建另一個介面 dmz2(不可取)
- 歸還 /26,要求 /25,並在內部重新編號(不可取)
- 執行靜態 NAT(我們在此範例中反對這樣做)
接下來採用相同的範例——這次從一開始就在 <-> dmz 之外使用 1:1 靜態 NAT。我們在 1:1 靜態 NAT 中的第一個 /26 中使用了所有可用的 IP。我們要求第二個 /26 –
- 您可以直接請求上游路由直接到您的 ASA 外部介面 IP - 為您節省一些地址,因為上游不必在塊中分配地址作為其
secondary
設備上的 IP 地址以用作網關,即使你不需要它。請注意,大多數提供商將前 3 個主機 IP 地址作為 VRRP/HSRP 的一部分,從而減少了您的可用資源。- 如果您不請求直接路由塊,則上游通常會執行上一個選項的後半部分。然後 ASA 為外部介面所屬的廣播域上的那些 IP 的本地傳送流量代理 ARP(就像它可能與您的第一個塊一樣,具體取決於它的設置方式)。
***教訓:***如果您的外部介面上已經有一個公共 IP 塊,請始終請求將後續塊直接路由到您的外部介面 IP。這將為您提供額外的可用 IP,並且您仍然可以很好地使用靜態 NAT。
無論是直接路由還是 ASA 代理 arp——使用 1:1 靜態 NAT,您都可以開始使用第二個 /26,而無需使用 dmz 子網。一旦超出了 dmz 子網,您將不得不做出一些調整——但同樣有一個抽象層,您不必在 WAN 端亂搞。
***最終答案:***這取決於,但在您的情況下,對於 IPv4,我傾向於使用 NAT。