Hello,

I am trying to do some packet rerouting, and not sure if I am attacking the 
problem correctly.

I have a network such as:

     A              
     |
    B  — C
     |        |
    D —  E
     |
    F

Where:
   A, B, C are on 192.168.0.0
   D, E, F are on 192.168.1.0
   B, C, D, E are on 192.158.2.0 (each are running an instance of OpenFlow)

A can communicate with F using the route: A -> B -> D -> F

To achieve this, I use these two flows:

NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=2509.307s, table=0, n_packets=337, n_bytes=26658, 
idle_age=529, in_port=LOCAL actions=output:1
 cookie=0x0, duration=2499.588s, table=0, n_packets=0, n_bytes=0, 
idle_age=2499, in_port=1 actions=LOCAL

Now, I would like to alter the route and have traffic flow: A -> B -> C -> D -> 
F

To do that, I created a 192.168.3.0 network that contains only B and C, and 
added these NICs to OpenFlow as a new port:

[B: ~]$ sudo ovs-vsctl show
2eb2aa7f-7527-46d6-bedf-0806cf112183
    Bridge "s3br1"
        Controller "tcp:192.168.2.1:6633"
        fail_mode: secure
        Port "p8p1"
            Interface "p8p1"
        Port "p16p1"
            Interface "p16p1"
        Port "s3br1"
            Interface "s3br1"
                type: internal
    ovs_version: "2.1.2"

[B: ~]$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 82  bytes 7888 (7.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 82  bytes 7888 (7.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

p16p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.3.13  netmask 255.255.255.0  broadcast 192.168.3.255
        inet6 fe80::a00:27ff:fe3f:99a  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3f:09:9a  txqueuelen 1000  (Ethernet)
        RX packets 146  bytes 12378 (12.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1152  bytes 95833 (93.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

p8p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::a00:27ff:fe3e:773c  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3e:77:3c  txqueuelen 1000  (Ethernet)
        RX packets 1079  bytes 83131 (81.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8401  bytes 695450 (679.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s3br1: flags=67<UP,BROADCAST,RUNNING>  mtu 1500
        inet 192.168.2.13  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::b057:33ff:fe72:8945  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:3e:77:3c  txqueuelen 0  (Ethernet)
        RX packets 1170  bytes 88919 (86.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 9353  bytes 760406 (742.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[B: ~]$ sudo ovs-ofctl dump-ports-desc s3br1
OFPST_PORT_DESC reply (xid=0x2):
 1(p8p1): addr:08:00:27:3e:77:3c
     config:     0
     state:      0
     current:    1GB-FD COPPER AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG
     speed: 1000 Mbps now, 1000 Mbps max
 2(p16p1): addr:08:00:27:3f:09:9a
     config:     0
     state:      0
     current:    1GB-FD COPPER AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD COPPER AUTO_NEG
     speed: 1000 Mbps now, 1000 Mbps max
 LOCAL(s3br1): addr:08:00:27:3e:77:3c
     config:     0
     state:      0
     speed: 0 Mbps now, 0 Mbps max

I setup a similar configuration on C.
I then altered the flows  so instead of:
    B:LOCAL -> B:1
I have:
    B:LOCAL -> B:2

I expected the path:
   A -> B:LOCAL -> B:1 -> D -> F
to become:
   A -> B:LOCAL -> B:2 -> C -> D -> F

However, traffic is not getting to the second rule:

NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=2509.307s, table=0, n_packets=337, n_bytes=26658, 
idle_age=529, in_port=LOCAL actions=output:2
 cookie=0x0, duration=2499.588s, table=0, n_packets=0, n_bytes=0, 
idle_age=2499, in_port=2 actions=LOCAL

While I understand there might be issues with C not routing correctly to D, 
from the output above, it appears the packet never leaves B.

Am I misunderstanding how ports work? I have been using tshark to inspect the 
packets, and have not been able to locate any
possible issue. I can see the packet from A -> F arrive on the bridge, but 
there is no further information.

Thanks for any help.

Brian



_______________________________________________
openflow-discuss mailing list
openflow-discuss@lists.stanford.edu
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to