Hi Andrew and Ben,

Thanks for your responses.

Following your suggestions, I modified the flow rules.


mininet> sh ovs-ofctl dump-flows s1
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=1456.805s, table=0, n_packets=0, n_bytes=0,
idle_age=1456,
icmp,dl_src=00:00:00:00:00:03,dl_dst=00:00:00:00:00:02,nw_src=10.0.0.3,nw_dst=10.0.0.2,icmp_type=8
actions=mod_vlan_vid:200,output:3
 cookie=0x0, duration=1456.805s, table=0, n_packets=0, n_bytes=0,
idle_age=1456,
icmp,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:03,nw_src=10.0.0.2,nw_dst=10.0.0.3,icmp_type=0
actions=strip_vlan,output:1
 cookie=0x0, duration=1456.805s, table=0, n_packets=3, n_bytes=306,
idle_age=321,
icmp,dl_src=00:00:00:00:00:04,dl_dst=00:00:00:00:00:03,nw_src=10.0.0.4,nw_dst=10.0.0.3,icmp_type=0
actions=strip_vlan,output:1
 cookie=0x0, duration=1456.805s, table=0, n_packets=3, n_bytes=294,
idle_age=321,
icmp,dl_src=00:00:00:00:00:03,dl_dst=00:00:00:00:00:04,nw_src=10.0.0.3,nw_dst=10.0.0.4,icmp_type=8
actions=mod_vlan_vid:100,output:3
 cookie=0x0, duration=723.716s, table=0, n_packets=14, n_bytes=588,
idle_age=196, arp,dl_dst=ff:ff:ff:ff:ff:ff,arp_op=1 actions=NORMAL
 cookie=0x0, duration=367.527s, table=0, n_packets=1, n_bytes=42,
idle_age=321,
arp,dl_dst=00:00:00:00:00:03,arp_spa=10.0.0.4,arp_tpa=10.0.0.3,arp_op=2
actions=output:1
 cookie=0x0, duration=201.576s, table=0, n_packets=0, n_bytes=0,
idle_age=201,
arp,dl_dst=00:00:00:00:00:03,arp_spa=10.0.0.2,arp_tpa=10.0.0.3,arp_op=2
actions=output:1
mininet> sh ovs-ofctl dump-flows s2
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=1537.392s, table=0, n_packets=3, n_bytes=294,
idle_age=325,
icmp,dl_src=00:00:00:00:00:04,dl_dst=00:00:00:00:00:03,icmp_type=0
actions=mod_vlan_vid:100,output:1
 cookie=0x0, duration=1537.392s, table=0, n_packets=3, n_bytes=306,
idle_age=325,
icmp,dl_src=00:00:00:00:00:03,dl_dst=00:00:00:00:00:04,icmp_type=8
actions=strip_vlan,output:2
 cookie=0x0, duration=1537.391s, table=0, n_packets=0, n_bytes=0,
idle_age=1537,
icmp,dl_src=00:00:00:00:00:02,dl_dst=00:00:00:00:00:03,icmp_type=0
actions=mod_vlan_vid:100,output:1
 cookie=0x0, duration=1537.392s, table=0, n_packets=0, n_bytes=0,
idle_age=1537,
icmp,dl_src=00:00:00:00:00:03,dl_dst=00:00:00:00:00:02,icmp_type=8
actions=strip_vlan,output:3
 cookie=0x0, duration=732.817s, table=0, n_packets=14, n_bytes=612,
idle_age=201, arp,dl_dst=ff:ff:ff:ff:ff:ff,arp_op=1 actions=NORMAL
 cookie=0x0, duration=369.775s, table=0, n_packets=1, n_bytes=42,
idle_age=325,
arp,dl_dst=00:00:00:00:00:03,arp_spa=10.0.0.4,arp_tpa=10.0.0.3,arp_op=2
actions=output:1
 cookie=0x0, duration=207.948s, table=0, n_packets=0, n_bytes=0,
idle_age=207,
arp,dl_dst=00:00:00:00:00:03,arp_spa=10.0.0.2,arp_tpa=10.0.0.3,arp_op=2
actions=output:1


I am now able to ping red2 from red1.

But, I am still not able to establish communication between the red1 and
blue2. In fact, I could see in the wireshark, no ARP response is generated.

mininet> red1 ping -c1 blue2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
>From 10.0.0.3 icmp_seq=1 Destination Host Unreachable

--- 10.0.0.2 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

Any suggestions on making the inter VLAN communication work.

Thanks,
Shruti


On Tue, Jun 24, 2014 at 11:53 AM, Andrew Mann <and...@divvycloud.com> wrote:

> I'm still learning OVS, but I'll take a stab:
>
> 1) Before the ping starts, an ARP request will be sent which will be
> broadcast. It won't match the destination MAC because the purpose of the
> ARP is to find out what the MAC is.  Normally the VLAN would take care of
> broadcasting the packet out to all hosts on the VLAN, but I think your
> manual flows have effectively torn down the VLAN handling.  To make this
> work you could try adding a flow that matches dest mac ff:ff:ff:ff:ff:ff
> and send the packets out to all ports. Be sure to strip the vlan tag as
> well before sending the packets out of the access ports (at least I think
> that's necessary).
>
> 2) Add strip_vlan to your first flow rule on your second switch.
>
> 3) Ping is a round-trip, so you need the reverse path as well. You need to
> tag vlan 100 or 200 in traffic going from S2 back to S1 as is appropriate
> for the host you're trying to reach. If you didn't want to make traffic
> work across VLANs you could just forward the packets as-is
>
> In this configuration having the VLANs configured on S1 just gets in your
> way.
>
>
>
> On Tue, Jun 24, 2014 at 12:08 PM, shruti rao <shrutira...@gmail.com>
> wrote:
>
>> Hi,
>>
>> I am new to Open vSwitch and am trying to create a VLAN with two switches
>> (s1, s2) having 2 hosts (s1 having red1 and blue1 and s2 having red2 and
>> blue2) each and no controller. My configuration is as mentioned below:
>>
>> mininet> net
>> s1 lo:  s1-eth1:red1-eth0 s1-eth2:blue1-eth0 s1-eth3:s2-eth1
>> s2 lo:  s2-eth1:s1-eth3 s2-eth2:red2-eth0 s2-eth3:blue2-eth0
>> blue1 blue1-eth0:s1-eth2
>> blue2 blue2-eth0:s2-eth3
>> red1 red1-eth0:s1-eth1
>> red2 red2-eth0:s2-eth2
>>
>> I have created VLAN by assigning tag ids as below
>>
>> mininet> sh ovs-vsctl show
>> de0d6311-08a0-4eba-aad8-d91ae2df8483
>>     Bridge "s1"
>>         Controller "ptcp:6634"
>>         fail_mode: secure
>>         Port "s1-eth3"
>>             trunks: [100, 200]
>>             Interface "s1-eth3"
>>         Port "s1-eth2"
>>             tag: 200
>>             Interface "s1-eth2"
>>         Port "s1"
>>             Interface "s1"
>>                 type: internal
>>         Port "s1-eth1"
>>             tag: 100
>>             Interface "s1-eth1"
>>     Bridge "s2"
>>         Controller "ptcp:6635"
>>         fail_mode: secure
>>         Port "s2-eth1"
>>             trunks: [100, 200]
>>             Interface "s2-eth1"
>>         Port "s2"
>>             Interface "s2"
>>                 type: internal
>>         Port "s2-eth3"
>>             tag: 200
>>             Interface "s2-eth3"
>>         Port "s2-eth2"
>>             tag: 100
>>             Interface "s2-eth2"
>> mininet> sh ovs-ofctl show s1
>> OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000000000001
>> n_tables:254, n_buffers:256
>> capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
>> actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC
>> SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE
>>  1(s1-eth1): addr:56:eb:cf:57:2c:f2
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  2(s1-eth2): addr:ae:1b:e0:f8:63:7e
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  3(s1-eth3): addr:72:e7:6a:a3:cd:92
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  LOCAL(s1): addr:ba:7c:3d:45:92:4c
>>      config:     0
>>      state:      0
>>      speed: 0 Mbps now, 0 Mbps max
>> OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
>> mininet> sh ovs-ofctl show s2
>> OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000000000002
>> n_tables:254, n_buffers:256
>> capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
>> actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC
>> SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE
>>  1(s2-eth1): addr:ae:84:0c:3d:74:42
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  2(s2-eth2): addr:ba:3b:f5:9d:47:01
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  3(s2-eth3): addr:52:45:27:b8:d5:96
>>      config:     0
>>      state:      0
>>      current:    10GB-FD COPPER
>>      speed: 10000 Mbps now, 0 Mbps max
>>  LOCAL(s2): addr:16:7f:2d:db:99:40
>>      config:     0
>>      state:      0
>>      speed: 0 Mbps now, 0 Mbps max
>> OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0
>>
>> When I install flow rule giving *actions=normal* in s1 and s2, the
>> functionality works as expected. Red1 can ping Red2 but cannot reach Blue1
>> and Blue2 and vice versa.
>> Then I am deleting these flow rules and am adding a flow rules based on
>> the MAC Address and it is not working.
>>
>> mininet> sh ovs-ofctl dump-flows s1
>> NXST_FLOW reply (xid=0x4):
>>  cookie=0x0, duration=160.318s, table=0, n_packets=0, n_bytes=0,
>> idle_age=160, actions=NORMAL
>> mininet> sh ovs-ofctl dump-flows s2
>> NXST_FLOW reply (xid=0x4):
>>  cookie=0x0, duration=50.296s, table=0, n_packets=0, n_bytes=0,
>> idle_age=50, in_port=1,dl_dst=ba:3b:f5:9d:47:01 actions=output:2
>>  cookie=0x0, duration=12.639s, table=0, n_packets=0, n_bytes=0,
>> idle_age=12, in_port=1,dl_dst=52:45:27:b8:d5:96 actions=strip_vlan,output:3
>> mininet> red1 ping red2
>> PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
>> From 10.0.0.3 icmp_seq=1 Destination Host Unreachable
>> From 10.0.0.3 icmp_seq=2 Destination Host Unreachable
>> From 10.0.0.3 icmp_seq=3 Destination Host Unreachable
>> ^C
>> --- 10.0.0.4 ping statistics ---
>> 5 packets transmitted, 0 received, +3 errors, 100% packet loss, time
>> 4024ms
>> pipe 3
>> mininet> red1 ping blue2
>> PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
>> From 10.0.0.3 icmp_seq=1 Destination Host Unreachable
>> From 10.0.0.3 icmp_seq=2 Destination Host Unreachable
>> From 10.0.0.3 icmp_seq=3 Destination Host Unreachable
>> ^C
>> --- 10.0.0.2 ping statistics ---
>> 5 packets transmitted, 0 received, +3 errors, 100% packet loss, time
>> 4000ms
>> pipe 3
>>
>> Where am I going wrong while adding the flow rule?
>>
>> Is it possible to install a flow rule that would enable Red1 to
>> communicate with Blue2?
>>
>> Any help on this would really be appreciated.
>>
>> Thanks,
>> Shruti
>>
>> _______________________________________________
>> discuss mailing list
>> discuss@openvswitch.org
>> http://openvswitch.org/mailman/listinfo/discuss
>>
>>
>
>
> --
> Andrew Mann
> DivvyCloud Inc.
> www.divvycloud.com
>
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to