У меня есть следующая линейная архитектура SDN с контроллером ODL:
Host1 -- ZodiacFX1 -- ZodiacFX2 --- Host2
Я использую 2 ноутбука в качестве хостов и 2 переключателя открытого потока ZodiacFX.
Я хочу, чтобы ZodiacFX1 выдвинулТег MPLS для всех IP-пакетов, полученных от Host1 и ZodiacFX2, для извлечения тега MPLS и отправки IP-пакетов на Host2.
Я добавил поток для передачи MPLS на ZodiacFX1, и я вижупоток активен в ZodiacFX1, а также в оперативном хранилище данных ODL.Но если я пингую h1-> h2, то пуша нет.
Поток такой:
ПРИМЕЧАНИЕ: (Host1 подключен к порту 1 ZodiacFX1, а порт ZodiacFX1 подключен к порту ZodiacFX2 port1.)
GET http://192.168.21.147:8181/restconf/operational/opendaylight-inventory:nodes/node/openflow:123917682137538/table/2
{
"flow-node-inventory:table": [
{
"id": 2,
"opendaylight-flow-table-statistics:flow-table-statistics": {
"active-flows": 1,
"packets-looked-up": 0,
"packets-matched": 0
},
"flow": [
{
"id": "125",
"idle-timeout": 0,
"cookie": 401,
"flags": "",
"hard-timeout": 0,
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 2,
"output-action": {
"output-node-connector": "2",
"max-length": 0
}
},
{
"order": 1,
"set-field": {
"protocol-match-fields": {
"mpls-label": 27
}
}
},
{
"order": 0,
"push-mpls-action": {
"ethernet-type": 34887
}
}
]
}
}
]
},
"cookie_mask": 0,
"opendaylight-flow-statistics:flow-statistics": {
"duration": {
"nanosecond": 0,
"second": 7
},
"byte-count": 0,
"packet-count": 0
},
"priority": 0,
"table_id": 2,
"match": {
"in-port": "1",
"ethernet-match": {
"ethernet-type": {
"type": 2048
}
}
}
},
{
"id": "124",
"idle-timeout": 0,
"cookie": 401,
"flags": "",
"hard-timeout": 0,
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 2,
"output-action": {
"output-node-connector": "2",
"max-length": 0
}
},
{
"order": 1,
"set-field": {
"protocol-match-fields": {
"mpls-label": 27
}
}
},
{
"order": 0,
"push-mpls-action": {
"ethernet-type": 34887
}
}
]
}
}
]
},
"cookie_mask": 0,
"opendaylight-flow-statistics:flow-statistics": {
"duration": {
"nanosecond": 0,
"second": 180
},
"byte-count": 0,
"packet-count": 0
},
"priority": 8,
"table_id": 2,
"match": {
"in-port": "1",
"ethernet-match": {
"ethernet-type": {
"type": 2048
}
}
}
}
]
}
]
}
И я тоже вижу в интерфейсе консоли Zodiac:
Flow 6
Match:
In Port: 1
ETH Type: IPv4
Attributes:
Table ID: 2 Cookie:0x191
Priority: 8 Duration: 247 secs
Hard Timeout: 0 secs Idle Timeout: 0 secs
Byte Count: 0 Packet Count: 0
Last Match: 00:04:07
Instructions:
Apply Actions:
Push MPLS tag
Set MPLS Label: 27
Output Port: 2
В чем может быть проблема?Я думаю, что основная проблема заключается в том, что в этом случае Zodiac следует этому потоку, я тоже попробовал свой поток с приоритетом 0, и MPLS не происходит.
Flow 5
Match:
In Port: 1
Attributes:
Table ID: 0 Cookie:0x2b00000000000008
Priority: 2 Duration: 2845 secs
Hard Timeout: 0 secs Idle Timeout: 0 secs
Byte Count: 576265 Packet Count: 5246
Last Match: 00:00:00
Instructions:
Apply Actions:
Output Port: 3
Output Port: 2
Output: CONTROLLER