如何為同一 LAN 上具有不同 Internet 連接的兩家公司設置路由?
這是設置:
兩家公司 (A & B) 共享辦公空間和一個區域網路。引入了第二個 ISP,A 公司想要自己的 Internet 連接 (ISP A),而 B 公司想要自己的 Internet 連接 (ISP B)。
VLAN 在內部部署以分隔兩家公司的網路(公司 A:VLAN 1,公司 B:VLAN 2,共享 VOIP:VLAN 3)。
使用單獨的 VLAN,使用單獨的 DHCP 伺服器(或同一伺服器上的單獨作用域)將預設網關分配給每個公司的網關以進行 Internet 連接非常簡單。可以在每個網關上創建靜態路由,將流量指向另一家公司的 VLAN 或語音 VLAN,以便所有節點都可以按預期訪問。
但是,我認為這是一種非對稱路由的形式,對吧?(從節點 A1 到節點 B1 的路徑與從節點 B1 到節點 A1 的返迴路徑不同)。
我可以設置基於策略的路由來糾正這個問題嗎?在這種情況下,我是否可以為所有 VLAN 上的每個設備分配相同的預設網關,並在 L3 交換機上創建路由策略以查看源地址並將流量轉發到適當的下一跳?在這種情況下,我希望路由邏輯如下所示:
- 如果目標地址已知,則轉發流量(發往不同 VLAN 的流量)。
- 如果目的地址未知,如果源地址在 VLAN A 上,則將流量轉發到 ISP A 的網關;如果源地址是 VLAN B,則將流量轉發到 ISP B 的網關。
我是否以正確的方式思考這個問題?還有另一種方法可以解決我忽略的這個問題嗎?
更新
我在下面嘗試了 Kyle 的解決方案,但遇到了一些問題。這是我配置的相關位(我正在使用 2821 BTW 進行測試):
interface GigabitEthernet0/0 ip address 10.0.1.1 255.255.255.0 no ip proxy-arp duplex auto speed auto no mop enabled ! interface GigabitEthernet0/0.100 description VoIP VLAN stub encapsulation dot1Q 100 ip address 10.0.100.1 255.255.255.0 no ip proxy-arp ! interface GigabitEthernet0/0.110 description RT VLAN stub encapsulation dot1Q 110 ip address 10.0.110.1 255.255.255.0 no ip proxy-arp ip policy route-map RT-out ! interface GigabitEthernet0/0.120 description TCI VLAN stub encapsulation dot1Q 120 ip address 10.0.120.1 255.255.255.0 no ip proxy-arp ip policy route-map TCI-out ! interface GigabitEthernet0/1 ip address 192.168.1.20 255.255.255.0 no ip proxy-arp duplex auto speed auto ! ip route 192.168.0.0 255.255.0.0 192.168.1.2 ! ip access-list extended match-RT-out permit ip 10.0.110.0 0.0.0.255 any ip access-list extended match-TCI-out permit ip 10.0.120.0 0.0.0.255 any ! route-map TCI-out permit 11 match ip address match-TCI-out set ip next-hop 192.168.12.2 ! route-map RT-out permit 10 match ip address match-RT-out set ip next-hop 192.168.11.2 !
和輸出
show ip route
:10.0.0.0/24 is subnetted, 4 subnets C 10.0.1.0 is directly connected, GigabitEthernet0/0 C 10.0.110.0 is directly connected, GigabitEthernet0/0.110 C 10.0.100.0 is directly connected, GigabitEthernet0/0.100 C 10.0.120.0 is directly connected, GigabitEthernet0/0.120 C 192.168.1.0/24 is directly connected, GigabitEthernet0/1 S 192.168.0.0/16 [1/0] via 192.168.1.2
這就是問題所在:我的路線圖似乎不起作用(好吧,我認為它們是匹配的,但它們似乎沒有修改下一跳結果)。
debug ip policy
一次 ping 到外部 IP 地址的輸出:*May 5 21:26:11.631: IP: s=10.0.120.100 (GigabitEthernet0/0.120), d=209.85.225.100, len 52, FIB policy match *May 5 21:26:11.631: CEF-IP-POLICY: fib for address 192.168.12.2 is with flag 0 *May 5 21:26:11.631: IP: s=10.0.120.100 (GigabitEthernet0/0.120), d=209.85.225.100, len 52, FIB policy rejected - normal forwarding *May 5 21:26:11.631: IP: s=10.0.120.100 (GigabitEthernet0/0.120), d=209.85.225.100, len 52, policy match *May 5 21:26:11.631: IP: route map TCI-out, item 11, permit *May 5 21:26:11.631: IP: s=10.0.120.100 (GigabitEthernet0/0.120), d=209.85.225.100, len 52, policy rejected -- normal forwarding
因此,您可以在該輸出中看到它看起來像是匹配…後跟一個立即數
FIB policy rejected - normal forwarding
. 在這種情況下(當我嘗試 ping 209.85.225.100 時),我從我的路由器 (10.0.120.1) 取回了無法訪問的 ICMP 目標主機。這越來越長,但希望它能解釋我遇到麻煩的地方。
由於它們是不同的網路,您可以使用基於策略的路由設置基於源的路由,以根據傳出數據包的源 IP 地址路由不同的介面。
對於 Cisco IOS 基本上如下(我認為,未經測試)(F0/0 是內部介面,12.12.12.12 和 13.13.13.13 是您的兩個 IP 網關,您有兩個 LAN 192.168.0.0/16 和 10.0.0.0 /8):
interface FastEthernet0/0 ip policy route-map foo-out route-map foo-out permit 10 match ip address match-foo-out set ip next-hop 12.12.12.12 route-map foo-out permit 11 match ip address match-foo2-out set ip next-hop 13.13.13.13 ip access-list extended match-foo-out deny ip 10.0.0.0 0.255.255.255 any permit ip 192.168.0.0 0.0.255.255 any ip access-list extended match-foo2-out deny ip 192.168.0.0 0.0.255.255 any permit ip 10.0.0.0 0.255.255.255 any
如果這些只是幀中繼,那麼設置介面而不是下一個希望也可以。
對於您的公司間通信,您實際上不需要做任何事情,只需更改這些 acl,以便它們否認 source 和 dest 是同一家公司,即:
deny ip 192.168.0.0 0.0.255.255 10.0.0.0 0.255.255.255
. 此外,如果這些是兩個 lan 介面,則每個介面的不同路由映射可能更有意義或需要,這只是一個範例,可以將您推向正確的方向,希望 :-)