Routing

如何為同一 LAN 上具有不同 Internet 連接的兩家公司設置路由?

  • June 27, 2014

這是設置:

兩家公司 (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 交換機上創建路由策略以查看源地址並將流量轉發到適當的下一跳?在這種情況下,我希望路由邏輯如下所示:

  1. 如果目標地址已知,則轉發流量(發往不同 VLAN 的流量)。
  2. 如果目的地址未知,如果源地址在 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 介面,則每個介面的不同路由映射可能更有意義或需要,這只是一個範例,可以將您推向正確的方向,希望 :-)

引用自:https://serverfault.com/questions/138442